diff --git a/src/main/java/org/prebid/server/auction/bidderrequestpostprocessor/BidderRequestCleaner.java b/src/main/java/org/prebid/server/auction/bidderrequestpostprocessor/BidderRequestCleaner.java index e470fcbbdd0..6b311f878d1 100644 --- a/src/main/java/org/prebid/server/auction/bidderrequestpostprocessor/BidderRequestCleaner.java +++ b/src/main/java/org/prebid/server/auction/bidderrequestpostprocessor/BidderRequestCleaner.java @@ -1,13 +1,27 @@ package org.prebid.server.auction.bidderrequestpostprocessor; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.iab.openrtb.request.BidRequest; import io.vertx.core.Future; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.prebid.server.auction.aliases.BidderAliases; import org.prebid.server.auction.model.AuctionContext; import org.prebid.server.auction.model.BidderRequest; +import org.prebid.server.model.UpdateResult; import org.prebid.server.proto.openrtb.ext.request.ExtRequest; +import org.prebid.server.proto.openrtb.ext.request.ExtRequestBidAdjustmentFactors; import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebid; +import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebidAlternateBidderCodes; +import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebidAlternateBidderCodesBidder; +import org.prebid.server.proto.openrtb.ext.request.ImpMediaType; + +import java.math.BigDecimal; +import java.util.Collections; +import java.util.EnumMap; +import java.util.Iterator; +import java.util.Map; public class BidderRequestCleaner implements BidderRequestPostProcessor { @@ -17,21 +31,168 @@ public Future process(BidderRequest bidderReq AuctionContext auctionContext) { final BidRequest bidRequest = bidderRequest.getBidRequest(); - final ExtRequest ext = bidRequest.getExt(); + final UpdateResult cleanedExt = cleanExt(bidRequest.getExt(), bidderRequest.getBidder()); + + final BidderRequest cleanedBidderRequest = cleanedExt.isUpdated() + ? bidderRequest.with(bidRequest.toBuilder().ext(cleanedExt.getValue()).build()) + : bidderRequest; + + return Future.succeededFuture(BidderRequestPostProcessingResult.withValue(cleanedBidderRequest)); + } + + private UpdateResult cleanExt(ExtRequest ext, String bidder) { final ExtRequestPrebid extPrebid = ext != null ? ext.getPrebid() : null; - final ObjectNode bidderControls = extPrebid != null ? extPrebid.getBiddercontrols() : null; + if (extPrebid == null) { + return UpdateResult.unaltered(ext); + } - if (bidderControls == null) { - return resultOf(bidderRequest); + final UpdateResult cleanedBidAdjustmentFactors = + cleanBidAdjustmentFactors(extPrebid.getBidadjustmentfactors(), bidder); + final UpdateResult cleanedBidAdjustments = + cleanBidAdjustments(extPrebid.getBidadjustments(), bidder); + final UpdateResult cleanedAlternateCodes = + cleanAlternateCodes(extPrebid.getAlternateBidderCodes(), bidder); + + if (!cleanedBidAdjustmentFactors.isUpdated() + && !cleanedBidAdjustments.isUpdated() + && !cleanedAlternateCodes.isUpdated() + && ObjectUtils.allNull( + extPrebid.getReturnallbidstatus(), + extPrebid.getAliasgvlids(), + extPrebid.getAdservertargeting(), + extPrebid.getCache(), + extPrebid.getEvents(), + extPrebid.getNosale(), + extPrebid.getBiddercontrols(), + extPrebid.getAnalytics(), + extPrebid.getPassthrough(), + extPrebid.getKvps())) { + + return UpdateResult.unaltered(ext); } - final ExtRequest cleanedExt = ExtRequest.of(extPrebid.toBuilder().biddercontrols(null).build()); + final ExtRequest cleanedExt = ExtRequest.of(extPrebid.toBuilder() + .returnallbidstatus(null) + .aliasgvlids(null) + .bidadjustmentfactors(cleanedBidAdjustmentFactors.getValue()) + .bidadjustments(cleanedBidAdjustments.getValue()) + .adservertargeting(null) + .cache(null) + .events(null) + .nosale(null) + .biddercontrols(null) + .analytics(null) + .passthrough(null) + .kvps(null) + .alternateBidderCodes(cleanedAlternateCodes.getValue()) + .build()); cleanedExt.addProperties(ext.getProperties()); - return resultOf(bidderRequest.with(bidRequest.toBuilder().ext(cleanedExt).build())); + return UpdateResult.updated(cleanedExt); + } + + private static UpdateResult cleanBidAdjustmentFactors( + ExtRequestBidAdjustmentFactors bidAdjustmentFactors, + String bidder) { + + if (bidAdjustmentFactors == null) { + return UpdateResult.unaltered(null); + } + + final Map cleanedAdjustments = + cleanBidderMap(bidAdjustmentFactors.getAdjustments(), bidder); + final EnumMap> cleanedMediaTypes = + cleanMediaTypes(bidAdjustmentFactors.getMediatypes(), bidder); + + if (cleanedAdjustments == null && cleanedMediaTypes == null) { + return UpdateResult.updated(null); + } + + final ExtRequestBidAdjustmentFactors cleanedBidAdjustmentFactors = ExtRequestBidAdjustmentFactors.builder() + .mediatypes(cleanedMediaTypes) + .build(); + if (cleanedAdjustments != null) { + cleanedAdjustments.forEach(cleanedBidAdjustmentFactors::addFactor); + } + + return UpdateResult.updated(cleanedBidAdjustmentFactors); + } + + private static Map cleanBidderMap(Map map, String bidder) { + if (map == null) { + return null; + } + + for (Map.Entry entry : map.entrySet()) { + if (StringUtils.equalsIgnoreCase(entry.getKey(), bidder)) { + return Collections.singletonMap(entry.getKey(), entry.getValue()); + } + } + + return null; } - private static Future resultOf(BidderRequest bidderRequest) { - return Future.succeededFuture(BidderRequestPostProcessingResult.withValue(bidderRequest)); + private static EnumMap> cleanMediaTypes( + EnumMap> mediaTypes, + String bidder) { + + if (mediaTypes == null) { + return null; + } + + final EnumMap> cleanedMediaTypes = new EnumMap<>(ImpMediaType.class); + for (Map.Entry> entry : mediaTypes.entrySet()) { + final Map cleanedMap = cleanBidderMap(entry.getValue(), bidder); + if (cleanedMap != null) { + cleanedMediaTypes.put(entry.getKey(), cleanedMap); + } + } + + return !cleanedMediaTypes.isEmpty() ? cleanedMediaTypes : null; + } + + private static UpdateResult cleanBidAdjustments(ObjectNode bidAdjustments, String bidder) { + if (bidAdjustments == null) { + return UpdateResult.unaltered(null); + } + + final ObjectNode cleanedBidAdjustments = bidAdjustments.deepCopy(); + final JsonNode mediaTypeToBidAdjustments = cleanedBidAdjustments.path("mediatype"); + for (Iterator maps = mediaTypeToBidAdjustments.elements(); maps.hasNext(); ) { + final JsonNode bidderMap = maps.next(); + if (!bidderMap.isObject()) { + continue; + } + + for (Iterator bidders = bidderMap.fieldNames(); bidders.hasNext(); ) { + if (!StringUtils.equalsIgnoreCase(bidders.next(), bidder)) { + bidders.remove(); + } + } + + if (bidderMap.isEmpty()) { + maps.remove(); + } + } + + return !mediaTypeToBidAdjustments.isEmpty() + ? UpdateResult.updated(cleanedBidAdjustments) + : UpdateResult.updated(null); + } + + private static UpdateResult cleanAlternateCodes( + ExtRequestPrebidAlternateBidderCodes alternateBidderCodes, + String bidder) { + + final Map bidders = alternateBidderCodes != null + ? alternateBidderCodes.getBidders() + : null; + if (bidders == null) { + return UpdateResult.unaltered(alternateBidderCodes); + } + + return UpdateResult.updated(ExtRequestPrebidAlternateBidderCodes.of( + alternateBidderCodes.getEnabled(), + cleanBidderMap(bidders, bidder))); } } diff --git a/src/test/java/org/prebid/server/auction/bidderrequestpostprocessor/BidderRequestCleanerTest.java b/src/test/java/org/prebid/server/auction/bidderrequestpostprocessor/BidderRequestCleanerTest.java index 62e50c146bf..8e3781c469b 100644 --- a/src/test/java/org/prebid/server/auction/bidderrequestpostprocessor/BidderRequestCleanerTest.java +++ b/src/test/java/org/prebid/server/auction/bidderrequestpostprocessor/BidderRequestCleanerTest.java @@ -9,8 +9,22 @@ import org.prebid.server.VertxTest; import org.prebid.server.auction.model.BidderRequest; import org.prebid.server.proto.openrtb.ext.request.ExtRequest; +import org.prebid.server.proto.openrtb.ext.request.ExtRequestBidAdjustmentFactors; import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebid; +import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebidAlternateBidderCodes; +import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebidAlternateBidderCodesBidder; +import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebidCache; +import org.prebid.server.proto.openrtb.ext.request.ImpMediaType; +import java.math.BigDecimal; +import java.util.EnumMap; +import java.util.Map; +import java.util.function.UnaryOperator; + +import static java.util.Collections.emptyList; +import static java.util.Collections.emptyMap; +import static java.util.Collections.singleton; +import static java.util.function.UnaryOperator.identity; import static org.assertj.core.api.Assertions.assertThat; @ExtendWith(MockitoExtension.class) @@ -28,7 +42,7 @@ public void setUp() { @Test public void processShouldReturnSameRequest() { // given - final BidderRequest bidderRequest = givenBidderRequest(null); + final BidderRequest bidderRequest = givenBidderRequest(identity()); // when final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); @@ -39,9 +53,245 @@ public void processShouldReturnSameRequest() { } @Test - public void processShouldReturnCleanedRequest() { + public void processShouldCleanBidAdjustmentFactors() { + // given + final EnumMap> mediaTypes = new EnumMap<>(ImpMediaType.class); + mediaTypes.put(ImpMediaType.banner, Map.of("other", BigDecimal.ONE)); + mediaTypes.put(ImpMediaType.video, Map.of( + "other", BigDecimal.ONE, + "biddEr", BigDecimal.ONE)); + final ExtRequestBidAdjustmentFactors factors = ExtRequestBidAdjustmentFactors.builder() + .mediatypes(mediaTypes) + .build(); + factors.addFactor("bIdder", BigDecimal.ONE); + + final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.bidadjustmentfactors(factors)); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getBidadjustmentfactors) + .satisfies(factorsResult -> { + assertThat(factorsResult.getAdjustments()).containsExactly(Map.entry("bIdder", BigDecimal.ONE)); + assertThat(factorsResult.getMediatypes()).containsExactly( + Map.entry(ImpMediaType.video, Map.of("biddEr", BigDecimal.ONE))); + }); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldRemoveBidAdjustmentFactors() { + // given + final EnumMap> mediaTypes = new EnumMap<>(ImpMediaType.class); + mediaTypes.put(ImpMediaType.banner, Map.of("other", BigDecimal.ONE)); + final ExtRequestBidAdjustmentFactors factors = ExtRequestBidAdjustmentFactors.builder() + .mediatypes(mediaTypes) + .build(); + factors.addFactor("other", BigDecimal.ONE); + + final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.bidadjustmentfactors(factors)); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getBidadjustmentfactors) + .isNull(); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldCleanBidAdjustments() { + // given + final ObjectNode bidAdjustments = mapper.valueToTree(Map.of( + "mediatype", Map.of( + "banner", Map.of("other", 1), + "video", Map.of("other", 1, "biddEr", 1)))); + + final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.bidadjustments(bidAdjustments)); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getBidadjustments) + .isEqualTo(mapper.valueToTree(Map.of("mediatype", Map.of("video", Map.of("biddEr", 1))))); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldRemoveBidAdjustments() { + // given + final ObjectNode bidAdjustments = mapper.valueToTree(Map.of( + "mediatype", Map.of("banner", Map.of("other", 1)))); + + final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.bidadjustments(bidAdjustments)); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getBidadjustments) + .isNull(); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldCleanAlternateBidderCodes() { + // given + final ExtRequestPrebidAlternateBidderCodes codes = ExtRequestPrebidAlternateBidderCodes.of( + true, Map.of( + "other", ExtRequestPrebidAlternateBidderCodesBidder.of(true, singleton("otherV")), + "biddEr", ExtRequestPrebidAlternateBidderCodesBidder.of(true, singleton("bidderV")))); + + final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.alternateBidderCodes(codes)); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getAlternateBidderCodes) + .isEqualTo(ExtRequestPrebidAlternateBidderCodes.of(true, Map.of( + "biddEr", ExtRequestPrebidAlternateBidderCodesBidder.of(true, singleton("bidderV"))))); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldRemoveReturnAllBidStatus() { + // given + final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.returnallbidstatus(true)); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getReturnallbidstatus) + .isNull(); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldRemoveAliasGvlIds() { + // given + final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.aliasgvlids(emptyMap())); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getAliasgvlids) + .isNull(); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldRemoveAdServerTargeting() { + // given + final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.adservertargeting(emptyList())); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getAdservertargeting) + .isNull(); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldRemoveCache() { + // given + final BidderRequest bidderRequest = givenBidderRequest( + extPrebid -> extPrebid.cache(ExtRequestPrebidCache.EMPTY)); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getCache) + .isNull(); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldRemoveEvents() { + // given + final BidderRequest bidderRequest = givenBidderRequest( + extPrebid -> extPrebid.events(mapper.createObjectNode())); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getEvents) + .isNull(); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldRemoveNoSale() { + // given + final BidderRequest bidderRequest = givenBidderRequest(extPrebid -> extPrebid.nosale(emptyList())); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getNosale) + .isNull(); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldRemoveBidderControls() { // given - final BidderRequest bidderRequest = givenBidderRequest(mapper.createObjectNode()); + final BidderRequest bidderRequest = givenBidderRequest( + extPrebid -> extPrebid.biddercontrols(mapper.createObjectNode())); // when final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); @@ -56,12 +306,69 @@ public void processShouldReturnCleanedRequest() { assertThat(result.getErrors()).isEmpty(); } - private static BidderRequest givenBidderRequest(ObjectNode bidderControls) { + @Test + public void processShouldRemoveAnalytics() { + // given + final BidderRequest bidderRequest = givenBidderRequest( + extPrebid -> extPrebid.analytics(mapper.createObjectNode())); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getAnalytics) + .isNull(); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldRemovePassthrough() { + // given + final BidderRequest bidderRequest = givenBidderRequest( + extPrebid -> extPrebid.passthrough(mapper.createObjectNode())); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getPassthrough) + .isNull(); + assertThat(result.getErrors()).isEmpty(); + } + + @Test + public void processShouldRemoveKvps() { + // given + final BidderRequest bidderRequest = givenBidderRequest( + extPrebid -> extPrebid.kvps(mapper.createObjectNode())); + + // when + final BidderRequestPostProcessingResult result = target.process(bidderRequest, null, null).result(); + + // then + assertThat(result.getValue()) + .extracting(BidderRequest::getBidRequest) + .extracting(BidRequest::getExt) + .extracting(ExtRequest::getPrebid) + .extracting(ExtRequestPrebid::getKvps) + .isNull(); + assertThat(result.getErrors()).isEmpty(); + } + + private static BidderRequest givenBidderRequest( + UnaryOperator extPrebidCustomizer) { + return BidderRequest.builder() .bidRequest(BidRequest.builder() - .ext(ExtRequest.of(ExtRequestPrebid.builder() - .biddercontrols(bidderControls) - .build())) + .ext(ExtRequest.of(extPrebidCustomizer.apply(ExtRequestPrebid.builder()).build())) .build()) .bidder(BIDDER) .build(); diff --git a/src/test/java/org/prebid/server/it/ApplicationTest.java b/src/test/java/org/prebid/server/it/ApplicationTest.java index 3a3710c6e6e..f28c7d28939 100644 --- a/src/test/java/org/prebid/server/it/ApplicationTest.java +++ b/src/test/java/org/prebid/server/it/ApplicationTest.java @@ -130,18 +130,14 @@ public void openrtb2MultiBidAuctionShouldRespondWithMoreThanOneBid() throws IOEx WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/genericAlias-exchange")) .withRequestBody(equalToJson( - jsonFrom( - "openrtb2/multi_bid/test-genericAlias-bid-request-1.json" - ))) + jsonFrom("openrtb2/multi_bid/test-genericAlias-bid-request-1.json"))) .willReturn(aResponse().withBody(jsonFrom( "openrtb2/multi_bid/test-genericAlias-bid-response-1.json")))); // pre-bid cache WIRE_MOCK_RULE.stubFor(post(urlPathEqualTo("/cache")) .withRequestBody(equalToBidCacheRequest( - jsonFrom( - "openrtb2/multi_bid/test-cache-generic-genericAlias-request.json" - ))) + jsonFrom("openrtb2/multi_bid/test-cache-generic-genericAlias-request.json"))) .willReturn(aResponse() .withTransformers("cache-response-transformer") .withTransformerParameter("matcherName", diff --git a/src/test/resources/org/prebid/server/it/amp/test-generic-bid-request.json b/src/test/resources/org/prebid/server/it/amp/test-generic-bid-request.json index 4d45a82bbc0..fdba46fb7d2 100644 --- a/src/test/resources/org/prebid/server/it/amp/test-generic-bid-request.json +++ b/src/test/resources/org/prebid/server/it/amp/test-generic-bid-request.json @@ -104,9 +104,6 @@ "storedrequest": { "id": "test-amp-stored-request" }, - "cache": { - "bids": {} - }, "auctiontimestamp": 0, "amp": { "data": { @@ -124,13 +121,6 @@ "account": "accountId" } }, - "adservertargeting": [ - { - "key": "static_keyword1", - "source": "static", - "value": "static_value1" - } - ], "channel": { "name": "amp" }, diff --git a/src/test/resources/org/prebid/server/it/amp/test-genericAlias-bid-request.json b/src/test/resources/org/prebid/server/it/amp/test-genericAlias-bid-request.json index 65febdb9a16..afccf4ce628 100644 --- a/src/test/resources/org/prebid/server/it/amp/test-genericAlias-bid-request.json +++ b/src/test/resources/org/prebid/server/it/amp/test-genericAlias-bid-request.json @@ -102,9 +102,6 @@ "storedrequest": { "id": "test-amp-stored-request" }, - "cache": { - "bids": {} - }, "auctiontimestamp": 0, "amp": { "data": { @@ -122,13 +119,6 @@ "timeout": "10000000" } }, - "adservertargeting": [ - { - "key": "static_keyword1", - "source": "static", - "value": "static_value1" - } - ], "channel": { "name": "amp" }, diff --git a/src/test/resources/org/prebid/server/it/openrtb2/appnexus/test-video-appnexus-bid-request-1.json b/src/test/resources/org/prebid/server/it/openrtb2/appnexus/test-video-appnexus-bid-request-1.json index 5e19435fdc2..1d07d919797 100644 --- a/src/test/resources/org/prebid/server/it/openrtb2/appnexus/test-video-appnexus-bid-request-1.json +++ b/src/test/resources/org/prebid/server/it/openrtb2/appnexus/test-video-appnexus-bid-request-1.json @@ -303,9 +303,6 @@ "translatecategories": false } }, - "cache": { - "vastxml": {} - }, "channel": { "name": "web" } diff --git a/src/test/resources/org/prebid/server/it/openrtb2/appnexus/test-video-appnexus-bid-request-2.json b/src/test/resources/org/prebid/server/it/openrtb2/appnexus/test-video-appnexus-bid-request-2.json index 1b09479f3ea..43d91e2e81c 100644 --- a/src/test/resources/org/prebid/server/it/openrtb2/appnexus/test-video-appnexus-bid-request-2.json +++ b/src/test/resources/org/prebid/server/it/openrtb2/appnexus/test-video-appnexus-bid-request-2.json @@ -96,9 +96,6 @@ "translatecategories": false } }, - "cache": { - "vastxml": {} - }, "channel": { "name": "web" } diff --git a/src/test/resources/org/prebid/server/it/openrtb2/generic_core_functionality/test-generic-bid-request.json b/src/test/resources/org/prebid/server/it/openrtb2/generic_core_functionality/test-generic-bid-request.json index 754ed9ddfff..da6529ee46c 100644 --- a/src/test/resources/org/prebid/server/it/openrtb2/generic_core_functionality/test-generic-bid-request.json +++ b/src/test/resources/org/prebid/server/it/openrtb2/generic_core_functionality/test-generic-bid-request.json @@ -94,9 +94,6 @@ "includewinners" : true, "includebidderkeys" : true }, - "cache" : { - "bids" : { } - }, "auctiontimestamp" : 0, "server" : { "externalurl" : "http://localhost:8080", diff --git a/src/test/resources/org/prebid/server/it/openrtb2/multi_bid/test-generic-bid-request-1.json b/src/test/resources/org/prebid/server/it/openrtb2/multi_bid/test-generic-bid-request-1.json index 0c72e7ce2a4..19637b681f7 100644 --- a/src/test/resources/org/prebid/server/it/openrtb2/multi_bid/test-generic-bid-request-1.json +++ b/src/test/resources/org/prebid/server/it/openrtb2/multi_bid/test-generic-bid-request-1.json @@ -22,13 +22,6 @@ "ext": { "prebid": { "auctiontimestamp": 1000, - "cache": { - "bids": { - }, - "vastxml": { - "ttlseconds": 120 - } - }, "channel": { "name": "web" }, @@ -44,8 +37,6 @@ "usepbsrates": false }, "debug": 0, - "events": { - }, "multibid": [ { "bidder": "generic", diff --git a/src/test/resources/org/prebid/server/it/openrtb2/multi_bid/test-genericAlias-bid-request-1.json b/src/test/resources/org/prebid/server/it/openrtb2/multi_bid/test-genericAlias-bid-request-1.json index f44b91769f3..c4deb7877af 100644 --- a/src/test/resources/org/prebid/server/it/openrtb2/multi_bid/test-genericAlias-bid-request-1.json +++ b/src/test/resources/org/prebid/server/it/openrtb2/multi_bid/test-genericAlias-bid-request-1.json @@ -104,14 +104,6 @@ "includewinners": true, "includebidderkeys": true }, - "cache": { - "bids": { - }, - "vastxml": { - "ttlseconds": 120 - } - }, - "events": {}, "auctiontimestamp": 1000, "channel": { "name": "web"