diff --git a/src/main/java/org/prebid/server/bidder/nexx360/Nexx360Bidder.java b/src/main/java/org/prebid/server/bidder/nexx360/Nexx360Bidder.java index 180f545bf47..b4b643cc3eb 100644 --- a/src/main/java/org/prebid/server/bidder/nexx360/Nexx360Bidder.java +++ b/src/main/java/org/prebid/server/bidder/nexx360/Nexx360Bidder.java @@ -1,6 +1,7 @@ package org.prebid.server.bidder.nexx360; import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.iab.openrtb.request.BidRequest; import com.iab.openrtb.request.Imp; import com.iab.openrtb.response.Bid; @@ -81,7 +82,9 @@ private ExtImpNexx360 parseImpExt(Imp imp) { private Imp modifyImp(Imp imp) { return imp.toBuilder() - .ext(mapper.mapper().createObjectNode().set(BIDDER_NAME, imp.getExt().get("bidder"))) + .ext(imp.getExt().deepCopy() + .without("bidder") + .set(BIDDER_NAME, imp.getExt().get("bidder"))) .build(); } diff --git a/src/main/resources/bidder-config/nexx360.yaml b/src/main/resources/bidder-config/nexx360.yaml index 443ca7f5ab4..975dcd6a21e 100644 --- a/src/main/resources/bidder-config/nexx360.yaml +++ b/src/main/resources/bidder-config/nexx360.yaml @@ -19,4 +19,4 @@ adapters: - native - audio supported-vendors: - vendor-id: 0 + vendor-id: 965 diff --git a/src/test/java/org/prebid/server/bidder/nexx360/Nexx360BidderTest.java b/src/test/java/org/prebid/server/bidder/nexx360/Nexx360BidderTest.java index 09c50589e19..bb06e21635b 100644 --- a/src/test/java/org/prebid/server/bidder/nexx360/Nexx360BidderTest.java +++ b/src/test/java/org/prebid/server/bidder/nexx360/Nexx360BidderTest.java @@ -28,6 +28,7 @@ import java.math.BigDecimal; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.function.UnaryOperator; import static java.util.Collections.singletonList; @@ -133,6 +134,30 @@ public void makeHttpRequestsShouldModifyImpExt() { .containsExactly(expectedExt1, expectedExt2); } + @Test + public void makeHttpRequestsShouldPreserveCustomFieldsInImpExt() { + // given + final BidRequest bidRequest = givenBidRequest( + imp -> imp.id("imp1").ext(mapper.valueToTree(Map.of( + "bidder", ExtImpNexx360.of("tag1", "p1"), + "customField", "customValue")))); + + // when + final Result>> result = target.makeHttpRequests(bidRequest); + + // then + final ObjectNode expectedExt = mapper.valueToTree(Map.of( + "nexx360", ExtImpNexx360.of("tag1", "p1"), + "customField", "customValue")); + + assertThat(result.getErrors()).isEmpty(); + assertThat(result.getValue()).hasSize(1) + .extracting(HttpRequest::getPayload) + .flatExtracting(BidRequest::getImp) + .extracting(Imp::getExt) + .containsExactly(expectedExt); + } + @Test public void makeHttpRequestsShouldModifyRequestExt() { // given diff --git a/src/test/resources/org/prebid/server/it/openrtb2/easybid/test-easybid-bid-request.json b/src/test/resources/org/prebid/server/it/openrtb2/easybid/test-easybid-bid-request.json index a6a87d4012c..94c35c9da4d 100644 --- a/src/test/resources/org/prebid/server/it/openrtb2/easybid/test-easybid-bid-request.json +++ b/src/test/resources/org/prebid/server/it/openrtb2/easybid/test-easybid-bid-request.json @@ -9,6 +9,7 @@ }, "secure": 1, "ext": { + "tid": "${json-unit.any-string}", "nexx360": { "placement": "placement" } diff --git a/src/test/resources/org/prebid/server/it/openrtb2/nexx360/test-nexx360-bid-request.json b/src/test/resources/org/prebid/server/it/openrtb2/nexx360/test-nexx360-bid-request.json index a6a87d4012c..94c35c9da4d 100644 --- a/src/test/resources/org/prebid/server/it/openrtb2/nexx360/test-nexx360-bid-request.json +++ b/src/test/resources/org/prebid/server/it/openrtb2/nexx360/test-nexx360-bid-request.json @@ -9,6 +9,7 @@ }, "secure": 1, "ext": { + "tid": "${json-unit.any-string}", "nexx360": { "placement": "placement" } diff --git a/src/test/resources/org/prebid/server/it/openrtb2/oneaccord/test-1accord-bid-request.json b/src/test/resources/org/prebid/server/it/openrtb2/oneaccord/test-1accord-bid-request.json index a6a87d4012c..94c35c9da4d 100644 --- a/src/test/resources/org/prebid/server/it/openrtb2/oneaccord/test-1accord-bid-request.json +++ b/src/test/resources/org/prebid/server/it/openrtb2/oneaccord/test-1accord-bid-request.json @@ -9,6 +9,7 @@ }, "secure": 1, "ext": { + "tid": "${json-unit.any-string}", "nexx360": { "placement": "placement" } diff --git a/src/test/resources/org/prebid/server/it/openrtb2/prismassp/test-prismassp-bid-request.json b/src/test/resources/org/prebid/server/it/openrtb2/prismassp/test-prismassp-bid-request.json index a6a87d4012c..94c35c9da4d 100644 --- a/src/test/resources/org/prebid/server/it/openrtb2/prismassp/test-prismassp-bid-request.json +++ b/src/test/resources/org/prebid/server/it/openrtb2/prismassp/test-prismassp-bid-request.json @@ -9,6 +9,7 @@ }, "secure": 1, "ext": { + "tid": "${json-unit.any-string}", "nexx360": { "placement": "placement" }