diff --git a/extra/pom.xml b/extra/pom.xml
index 9ba138fb1a7..87a9ef24d4b 100644
--- a/extra/pom.xml
+++ b/extra/pom.xml
@@ -24,7 +24,7 @@
3.1.1
- 3.14.0
+ 3.14.1
3.5.3
${maven-surefire-plugin.version}
0.8.13
@@ -60,7 +60,7 @@
3.12.1
- 2.4-M5-groovy-4.0
+ 2.4-M6-groovy-4.0
5.15.0
diff --git a/pom.xml b/pom.xml
index d2851e0de74..325051ea9e9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
2.0.0
9.0.1
- 4.1.1
+ 4.2.1
1.7.1
3.6.0
0.6.1
diff --git a/src/main/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidder.java b/src/main/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidder.java
index 1603cdc855b..127d02ae000 100644
--- a/src/main/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidder.java
+++ b/src/main/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidder.java
@@ -52,6 +52,7 @@
import org.prebid.server.proto.openrtb.ext.request.ExtSite;
import org.prebid.server.proto.openrtb.ext.request.ExtUser;
import org.prebid.server.proto.openrtb.ext.request.adnuntius.ExtImpAdnuntius;
+import org.prebid.server.proto.openrtb.ext.request.adnuntius.ExtImpAdnuntiusTargeting;
import org.prebid.server.proto.openrtb.ext.response.BidType;
import org.prebid.server.proto.openrtb.ext.response.ExtBidDsa;
import org.prebid.server.util.BidderUtil;
@@ -158,12 +159,8 @@ private static String resolveNetwork(ExtImpAdnuntius extImpAdnuntius) {
}
private static AdnuntiusRequestAdUnit makeBannerAdUnit(Imp imp, ExtImpAdnuntius extImpAdnuntius) {
- final String auId = extImpAdnuntius.getAuId();
- return AdnuntiusRequestAdUnit.builder()
- .auId(auId)
- .targetId(targetId(auId, imp.getId(), "banner"))
+ return makeAdUnitBuilder(imp, extImpAdnuntius, "banner")
.dimensions(createDimensions(imp.getBanner()))
- .maxDeals(resolveMaxDeals(extImpAdnuntius))
.build();
}
@@ -197,13 +194,9 @@ private static List> createDimensions(Banner banner) {
}
private AdnuntiusRequestAdUnit makeNativeAdUnit(Imp imp, ExtImpAdnuntius extImpAdnuntius) {
- final String auId = extImpAdnuntius.getAuId();
- return AdnuntiusRequestAdUnit.builder()
- .auId(auId)
- .adType("NATIVE")
- .targetId(targetId(auId, imp.getId(), "native"))
- .maxDeals(resolveMaxDeals(extImpAdnuntius))
+ return makeAdUnitBuilder(imp, extImpAdnuntius, "native")
.nativeRequest(AdnuntiusNativeRequest.of(parseNativeRequest(imp)))
+ .adType("NATIVE")
.build();
}
@@ -215,6 +208,26 @@ private ObjectNode parseNativeRequest(Imp imp) {
}
}
+ private static AdnuntiusRequestAdUnit.AdnuntiusRequestAdUnitBuilder makeAdUnitBuilder(
+ Imp imp,
+ ExtImpAdnuntius extImpAdnuntius,
+ String bidType) {
+
+ final String auId = extImpAdnuntius.getAuId();
+ final ExtImpAdnuntiusTargeting targeting = ObjectUtils.defaultIfNull(
+ extImpAdnuntius.getTargeting(),
+ ExtImpAdnuntiusTargeting.builder().build());
+ return AdnuntiusRequestAdUnit.builder()
+ .auId(auId)
+ .targetId(targetId(auId, imp.getId(), bidType))
+ .maxDeals(resolveMaxDeals(extImpAdnuntius))
+ .category(targeting.getCategory())
+ .segments(targeting.getSegments())
+ .keywords(targeting.getKeywords())
+ .keyValues(targeting.getKeyValues())
+ .adUnitMatchingLabel(targeting.getAdUnitMatchingLabel());
+ }
+
private static Integer resolveMaxDeals(ExtImpAdnuntius extImpAdnuntius) {
final Integer maxDeals = extImpAdnuntius.getMaxDeals();
return maxDeals != null && maxDeals > 0 ? maxDeals : null;
diff --git a/src/main/java/org/prebid/server/bidder/adnuntius/model/request/AdnuntiusRequestAdUnit.java b/src/main/java/org/prebid/server/bidder/adnuntius/model/request/AdnuntiusRequestAdUnit.java
index 03e9b586c72..88a37a2dc3b 100644
--- a/src/main/java/org/prebid/server/bidder/adnuntius/model/request/AdnuntiusRequestAdUnit.java
+++ b/src/main/java/org/prebid/server/bidder/adnuntius/model/request/AdnuntiusRequestAdUnit.java
@@ -5,6 +5,7 @@
import lombok.Value;
import java.util.List;
+import java.util.Map;
@Builder(toBuilder = true)
@Value
@@ -26,4 +27,17 @@ public class AdnuntiusRequestAdUnit {
@JsonProperty("adType")
String adType;
+
+ @JsonProperty("c")
+ List category;
+
+ List segments;
+
+ List keywords;
+
+ @JsonProperty("kv")
+ Map> keyValues;
+
+ @JsonProperty("auml")
+ List adUnitMatchingLabel;
}
diff --git a/src/main/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidder.java b/src/main/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidder.java
index c026a6c271b..57f5200f786 100644
--- a/src/main/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidder.java
+++ b/src/main/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidder.java
@@ -50,7 +50,7 @@ public class NextMillenniumBidder implements Bidder {
new TypeReference<>() {
};
- private static final String NM_ADAPTER_VERSION = "v1.0.0";
+ private static final String NM_ADAPTER_VERSION = "v1.0.1";
private final String endpointUrl;
private final JacksonMapper mapper;
@@ -101,15 +101,15 @@ private ExtImpNextMillennium convertExt(ObjectNode impExt) {
}
private BidRequest updateBidRequest(BidRequest bidRequest, ExtImpNextMillennium extImp) {
- final String soredRequestId = resolveStoredRequestId(bidRequest, extImp);
+ final String storedRequestId = resolveStoredRequestId(bidRequest, extImp);
final ExtRequestPrebidServer extRequestPrebidServer = Optional.ofNullable(bidRequest.getExt())
.map(ExtRequest::getPrebid)
.map(ExtRequestPrebid::getServer)
.orElse(null);
return bidRequest.toBuilder()
- .imp(modifyFirstImp(bidRequest.getImp(), soredRequestId))
- .ext(createExtRequest(soredRequestId, extRequestPrebidServer))
+ .imp(modifyFirstImp(bidRequest.getImp(), storedRequestId))
+ .ext(createExtRequest(storedRequestId, extRequestPrebidServer, extImp))
.build();
}
@@ -156,7 +156,7 @@ private List modifyFirstImp(List imps, String storedRequestId) {
.build();
final NextMillenniumExt nextMillenniumExt = NextMillenniumExt.of(
- NextMillenniumExtBidder.of(nmmFlags, null, null));
+ NextMillenniumExtBidder.of(nmmFlags));
final ExtRequest extRequest = ExtRequest.of(extRequestPrebid);
mapper.fillExtension(extRequest, nextMillenniumExt);
@@ -169,14 +169,21 @@ private List modifyFirstImp(List imps, String storedRequestId) {
return modifiedImps;
}
- private ExtRequest createExtRequest(String storedRequestId, ExtRequestPrebidServer extRequestPrebidServer) {
+ private ExtRequest createExtRequest(String storedRequestId,
+ ExtRequestPrebidServer extRequestPrebidServer,
+ ExtImpNextMillennium extImp) {
final ExtRequestPrebid extRequestPrebid = ExtRequestPrebid.builder()
.storedrequest(ExtStoredRequest.of(storedRequestId))
.server(extRequestPrebidServer)
.build();
final NextMillenniumExt nextMillenniumExt = NextMillenniumExt.of(
- NextMillenniumExtBidder.of(nmmFlags, NM_ADAPTER_VERSION, versionProvider.getNameVersionRecord()));
+ NextMillenniumExtBidder.of(
+ nmmFlags,
+ extImp.getAdSlots(),
+ extImp.getAllowedAds(),
+ NM_ADAPTER_VERSION,
+ versionProvider.getNameVersionRecord()));
final ExtRequest extRequest = ExtRequest.of(extRequestPrebid);
mapper.fillExtension(extRequest, nextMillenniumExt);
diff --git a/src/main/java/org/prebid/server/bidder/nextmillennium/proto/NextMillenniumExtBidder.java b/src/main/java/org/prebid/server/bidder/nextmillennium/proto/NextMillenniumExtBidder.java
index 1673fc5114d..910896950ca 100644
--- a/src/main/java/org/prebid/server/bidder/nextmillennium/proto/NextMillenniumExtBidder.java
+++ b/src/main/java/org/prebid/server/bidder/nextmillennium/proto/NextMillenniumExtBidder.java
@@ -11,7 +11,17 @@ public class NextMillenniumExtBidder {
@JsonProperty("nmmFlags")
List nmmFlags;
+ @JsonProperty("adSlots")
+ List adSlots;
+
+ @JsonProperty("allowedAds")
+ List allowedAds;
+
String nmVersion;
String serverVersion;
+
+ public static NextMillenniumExtBidder of(List nmmFlags) {
+ return of(nmmFlags, null, null, null, null);
+ }
}
diff --git a/src/main/java/org/prebid/server/proto/openrtb/ext/request/adnuntius/ExtImpAdnuntius.java b/src/main/java/org/prebid/server/proto/openrtb/ext/request/adnuntius/ExtImpAdnuntius.java
index c54dab4b520..e110b122bb0 100644
--- a/src/main/java/org/prebid/server/proto/openrtb/ext/request/adnuntius/ExtImpAdnuntius.java
+++ b/src/main/java/org/prebid/server/proto/openrtb/ext/request/adnuntius/ExtImpAdnuntius.java
@@ -21,4 +21,6 @@ public class ExtImpAdnuntius {
@JsonProperty("bidType")
String bidType;
+
+ ExtImpAdnuntiusTargeting targeting;
}
diff --git a/src/main/java/org/prebid/server/proto/openrtb/ext/request/adnuntius/ExtImpAdnuntiusTargeting.java b/src/main/java/org/prebid/server/proto/openrtb/ext/request/adnuntius/ExtImpAdnuntiusTargeting.java
new file mode 100644
index 00000000000..508fcb0dfba
--- /dev/null
+++ b/src/main/java/org/prebid/server/proto/openrtb/ext/request/adnuntius/ExtImpAdnuntiusTargeting.java
@@ -0,0 +1,28 @@
+package org.prebid.server.proto.openrtb.ext.request.adnuntius;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Builder;
+import lombok.Value;
+
+import java.util.List;
+import java.util.Map;
+
+@Value
+@Builder
+public class ExtImpAdnuntiusTargeting {
+
+ @JsonProperty("c")
+ List category;
+
+ List segments;
+
+ List keywords;
+
+ @JsonProperty("kv")
+ Map> keyValues;
+
+ @JsonProperty("auml")
+ List adUnitMatchingLabel;
+
+
+}
diff --git a/src/main/java/org/prebid/server/proto/openrtb/ext/request/nextmillennium/ExtImpNextMillennium.java b/src/main/java/org/prebid/server/proto/openrtb/ext/request/nextmillennium/ExtImpNextMillennium.java
index ed67279ea9a..d262fe0bfbe 100644
--- a/src/main/java/org/prebid/server/proto/openrtb/ext/request/nextmillennium/ExtImpNextMillennium.java
+++ b/src/main/java/org/prebid/server/proto/openrtb/ext/request/nextmillennium/ExtImpNextMillennium.java
@@ -1,11 +1,20 @@
package org.prebid.server.proto.openrtb.ext.request.nextmillennium;
+import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Value;
+import java.util.List;
+
@Value(staticConstructor = "of")
public class ExtImpNextMillennium {
String placementId;
String groupId;
+
+ @JsonProperty("adSlots")
+ List adSlots;
+
+ @JsonProperty("allowedAds")
+ List allowedAds;
}
diff --git a/src/main/resources/bidder-config/bidtheatre.yaml b/src/main/resources/bidder-config/bidtheatre.yaml
index 903778e884a..fd3f7d24d87 100644
--- a/src/main/resources/bidder-config/bidtheatre.yaml
+++ b/src/main/resources/bidder-config/bidtheatre.yaml
@@ -1,6 +1,6 @@
adapters:
bidtheatre:
- endpoint: https://prebidjs-bids.bidtheatre.net/prebidjsbid
+ endpoint: https://client-bids.adsby.bidtheatre.com/prebidjsbid
modifying-vast-xml-allowed: true
meta-info:
maintainer-email: operations@bidtheatre.com
@@ -12,3 +12,9 @@ adapters:
- video
supported-vendors:
vendor-id: 30
+ usersync:
+ cookie-family-name: bidtheatre
+ redirect:
+ url: https://match.adsby.bidtheatre.com/prebidmatch?gdpr={{gdpr}}&gdpr_consent={{gdpr_consent}}&redir={{redirect_url}}
+ support-cors: false
+ uid-macro: '$UID'
diff --git a/src/main/resources/static/bidder-params/nextmillennium.json b/src/main/resources/static/bidder-params/nextmillennium.json
index 743d72f89ef..7b03c5087d2 100644
--- a/src/main/resources/static/bidder-params/nextmillennium.json
+++ b/src/main/resources/static/bidder-params/nextmillennium.json
@@ -13,6 +13,21 @@
"type": "string",
"minLength": 1,
"description": "An id used to identify NextMillennium placement group"
+ },
+ "adSlots": {
+ "type": "array",
+ "minItems": 1,
+ "description": "IDs which identifies the ad slots",
+ "items": {
+ "type": "string"
+ }
+ },
+ "allowedAds": {
+ "type": "array",
+ "description": "List of allowed ads",
+ "items": {
+ "type": "string"
+ }
}
},
"anyOf": [
diff --git a/src/test/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidderTest.java b/src/test/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidderTest.java
index 910a2b6514c..b2f1f9e4342 100644
--- a/src/test/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidderTest.java
+++ b/src/test/java/org/prebid/server/bidder/adnuntius/AdnuntiusBidderTest.java
@@ -45,6 +45,7 @@
import org.prebid.server.proto.openrtb.ext.request.ExtSite;
import org.prebid.server.proto.openrtb.ext.request.ExtUser;
import org.prebid.server.proto.openrtb.ext.request.adnuntius.ExtImpAdnuntius;
+import org.prebid.server.proto.openrtb.ext.request.adnuntius.ExtImpAdnuntiusTargeting;
import org.prebid.server.proto.openrtb.ext.response.BidType;
import org.prebid.server.util.HttpUtil;
@@ -201,6 +202,49 @@ public void makeHttpRequestsShouldNotReturnAdTypeForBannerImp() {
.containsNull();
}
+ @Test
+ public void makeHttpRequestsShouldReturnTargetingFieldsWhenTargetingIsPresent() {
+ // given
+ final ExtImpAdnuntiusTargeting targeting = ExtImpAdnuntiusTargeting.builder()
+ .category(List.of("1", "2"))
+ .keywords(List.of("3", "4"))
+ .segments(List.of("5", "6"))
+ .adUnitMatchingLabel(List.of("7", "8"))
+ .keyValues(Map.of("9", List.of("10", "11")))
+ .build();
+ final BidRequest bidRequest = givenBidRequest(givenBannerAndNativeImp(
+ ExtImpAdnuntius.builder().targeting(targeting).build(),
+ identity()));
+
+ // when
+ final Result>> result = target.makeHttpRequests(bidRequest);
+
+ // then
+ assertThat(result.getErrors()).isEmpty();
+ assertThat(result.getValue())
+ .extracting(HttpRequest::getPayload)
+ .flatExtracting(AdnuntiusRequest::getAdUnits)
+ .extracting(
+ AdnuntiusRequestAdUnit::getCategory,
+ AdnuntiusRequestAdUnit::getKeywords,
+ AdnuntiusRequestAdUnit::getSegments,
+ AdnuntiusRequestAdUnit::getKeyValues,
+ AdnuntiusRequestAdUnit::getAdUnitMatchingLabel)
+ .containsExactly(
+ tuple(
+ List.of("1", "2"),
+ List.of("3", "4"),
+ List.of("5", "6"),
+ Map.of("9", List.of("10", "11")),
+ List.of("7", "8")),
+ tuple(
+ List.of("1", "2"),
+ List.of("3", "4"),
+ List.of("5", "6"),
+ Map.of("9", List.of("10", "11")),
+ List.of("7", "8")));
+ }
+
@Test
public void makeHttpRequestsShouldReturnRequestsWithDimensionsIfBannerHighAndWidthArePresent() {
// given
diff --git a/src/test/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidderTest.java b/src/test/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidderTest.java
index 71dfe2a8552..84a31090509 100644
--- a/src/test/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidderTest.java
+++ b/src/test/java/org/prebid/server/bidder/nextmillennium/NextMillenniumBidderTest.java
@@ -23,6 +23,8 @@
import org.prebid.server.bidder.model.HttpRequest;
import org.prebid.server.bidder.model.HttpResponse;
import org.prebid.server.bidder.model.Result;
+import org.prebid.server.bidder.nextmillennium.proto.NextMillenniumExt;
+import org.prebid.server.bidder.nextmillennium.proto.NextMillenniumExtBidder;
import org.prebid.server.proto.openrtb.ext.ExtPrebid;
import org.prebid.server.proto.openrtb.ext.request.ExtRequest;
import org.prebid.server.proto.openrtb.ext.request.ExtRequestPrebid;
@@ -78,8 +80,8 @@ public void makeHttpRequestsShouldUseBidRequestIdForAllRequests() {
// given
final BidRequest bidRequest = givenBidRequest(
request -> request.id("id"),
- givenImpWithExt(identity(), ExtImpNextMillennium.of(null, null)),
- givenImpWithExt(identity(), ExtImpNextMillennium.of(null, null)));
+ givenImpWithExt(identity(), ExtImpNextMillennium.of(null, null, null, null)),
+ givenImpWithExt(identity(), ExtImpNextMillennium.of(null, null, null, null)));
// when
final Result>> result = target.makeHttpRequests(bidRequest);
@@ -97,8 +99,8 @@ public void makeHttpRequestsShouldUseBidRequestTestForAllRequests() {
// given
final BidRequest bidRequest = givenBidRequest(
request -> request.test(1),
- givenImpWithExt(identity(), ExtImpNextMillennium.of(null, null)),
- givenImpWithExt(identity(), ExtImpNextMillennium.of(null, null)));
+ givenImpWithExt(identity(), ExtImpNextMillennium.of(null, null, null, null)),
+ givenImpWithExt(identity(), ExtImpNextMillennium.of(null, null, null, null)));
// when
final Result>> result = target.makeHttpRequests(bidRequest);
@@ -116,8 +118,8 @@ public void makeHttpRequestsShouldUseImpExtBidderPlacementIdForStoredRequestId()
// given
final BidRequest bidRequest = givenBidRequest(
identity(),
- givenImpWithExt(identity(), ExtImpNextMillennium.of("placement1", null)),
- givenImpWithExt(identity(), ExtImpNextMillennium.of("placement2", null)));
+ givenImpWithExt(identity(), givenExtImpWithPlacementId("placement1")),
+ givenImpWithExt(identity(), givenExtImpWithPlacementId("placement2")));
// when
final Result>> result = target.makeHttpRequests(bidRequest);
@@ -138,8 +140,8 @@ public void makeHttpRequestsShouldUseImpExtBidderGroupIdForStoredRequestId() {
// given
final BidRequest bidRequest = givenBidRequest(
identity(),
- givenImpWithExt(identity(), ExtImpNextMillennium.of(null, "group1")),
- givenImpWithExt(identity(), ExtImpNextMillennium.of(null, "group2")));
+ givenImpWithExt(identity(), givenExtImpWithGroupId("group1")),
+ givenImpWithExt(identity(), givenExtImpWithGroupId("group2")));
// when
final Result>> result = target.makeHttpRequests(bidRequest);
@@ -168,10 +170,10 @@ public void makeHttpRequestsShouldUseFirstImpBannerFirstFormatForStoredRequestId
.w(5)
.h(6)
.build()),
- ExtImpNextMillennium.of(null, "group1")),
+ givenExtImpWithGroupId("group1")),
givenImpWithExt(
imp -> imp.banner(Banner.builder().w(7).h(8).build()),
- ExtImpNextMillennium.of(null, "group2")));
+ givenExtImpWithGroupId("group2")));
// when
final Result>> result = target.makeHttpRequests(bidRequest);
@@ -187,6 +189,48 @@ public void makeHttpRequestsShouldUseFirstImpBannerFirstFormatForStoredRequestId
.containsExactly("ggroup1;1x2;", "ggroup2;1x2;");
}
+ @Test
+ public void makeHttpRequestsShouldIncludeAdSlotsAndAllowedAdsOnlyInRequestExt() {
+ // given
+ final List adSlots = List.of("slot1", "slot2");
+ final List allowedAds = List.of("ad1", "ad2");
+
+ final ExtImpNextMillennium extImp = ExtImpNextMillennium.of("placement123", null, adSlots, allowedAds);
+
+ final BidRequest bidRequest = givenBidRequest(
+ identity(),
+ givenImpWithExt(identity(), extImp));
+
+ // when
+ final Result>> result = target.makeHttpRequests(bidRequest);
+
+ // then
+ assertThat(result.getErrors()).isEmpty();
+ assertThat(result.getValue()).hasSize(1);
+
+ final BidRequest actualRequest = result.getValue().getFirst().getPayload();
+
+ final NextMillenniumExtBidder requestExt = jacksonMapper.mapper()
+ .convertValue(
+ jacksonMapper.mapper().convertValue(actualRequest
+ .getExt(), NextMillenniumExt.class).getNextMillennium(),
+ NextMillenniumExtBidder.class);
+
+ final NextMillenniumExtBidder impExt = jacksonMapper.mapper()
+ .convertValue(
+ jacksonMapper.mapper().convertValue(actualRequest
+ .getImp().getFirst().getExt(), NextMillenniumExt.class).getNextMillennium(),
+ NextMillenniumExtBidder.class);
+
+ assertThat(requestExt)
+ .extracting(NextMillenniumExtBidder::getAdSlots, NextMillenniumExtBidder::getAllowedAds)
+ .containsExactly(adSlots, allowedAds);
+
+ assertThat(impExt.getAdSlots()).isNull();
+ assertThat(impExt.getAllowedAds()).isNull();
+ assertThat(impExt.getNmmFlags()).containsExactly("valueOne", "valueTwo");
+ }
+
@Test
public void makeHttpRequestsShouldUseFirstImpBannerSizeForStoredRequestIds() {
// given
@@ -194,12 +238,12 @@ public void makeHttpRequestsShouldUseFirstImpBannerSizeForStoredRequestIds() {
identity(),
givenImpWithExt(
imp -> imp.banner(Banner.builder().w(7).h(8).build()),
- ExtImpNextMillennium.of(null, "group1")),
+ givenExtImpWithGroupId("group1")),
givenImpWithExt(
imp -> imp.banner(Banner.builder()
.format(singletonList(Format.builder().w(1).h(2).build()))
.build()),
- ExtImpNextMillennium.of(null, "group2")));
+ givenExtImpWithGroupId("group2")));
// when
final Result>> result = target.makeHttpRequests(bidRequest);
@@ -220,8 +264,8 @@ public void makeHttpRequestsShouldUseAppDomainForStoredRequestId() {
// given
final BidRequest bidRequest = givenBidRequest(
request -> request.app(App.builder().domain("appDomain").build()),
- givenImpWithExt(identity(), ExtImpNextMillennium.of(null, "group1")),
- givenImpWithExt(identity(), ExtImpNextMillennium.of(null, "group2")));
+ givenImpWithExt(identity(), givenExtImpWithGroupId("group1")),
+ givenImpWithExt(identity(), givenExtImpWithGroupId("group2")));
// when
final Result>> result = target.makeHttpRequests(bidRequest);
@@ -242,8 +286,8 @@ public void makeHttpRequestsShouldUseSiteDomainForStoredRequestId() {
// given
final BidRequest bidRequest = givenBidRequest(
request -> request.site(Site.builder().domain("siteDomain").build()),
- givenImpWithExt(identity(), ExtImpNextMillennium.of("placement1", "group1")),
- givenImpWithExt(identity(), ExtImpNextMillennium.of("placement2", "group2")));
+ givenImpWithExt(identity(), givenExtImpWithPlacementIdAndGroupId("placement1", "group1")),
+ givenImpWithExt(identity(), givenExtImpWithPlacementIdAndGroupId("placement2", "group2")));
// when
final Result>> result = target.makeHttpRequests(bidRequest);
@@ -294,7 +338,7 @@ public void makeHttpRequestsImpExtComparison() {
.h(90)
.build()))
.build()),
- ExtImpNextMillennium.of(placementId, null));
+ ExtImpNextMillennium.of(placementId, null, null, null));
final ExtRequest extRequest = ExtRequest.of(ExtRequestPrebid.builder()
.schains(emptyList())
@@ -346,7 +390,7 @@ public void makeHttpRequestsImpShouldBeIdenticalExceptExt() {
.tagid("custom_imp_tagid")
.secure(1)
.banner(banner),
- ExtImpNextMillennium.of(placementId, null));
+ ExtImpNextMillennium.of(placementId, null, null, null));
final BidRequest bidRequest = givenBidRequest(b -> b
.id("c868fd0b-960c-4f49-a8d6-2b3e938b41f2")
@@ -386,7 +430,7 @@ public void makeHttpRequestsBidRequestShouldBeIdenticalExceptImpExt() {
.tagid("custom_imp_tagid")
.secure(1)
.banner(banner),
- ExtImpNextMillennium.of(placementId, null));
+ ExtImpNextMillennium.of(placementId, null, null, null));
final ExtRequest extRequest = ExtRequest.of(ExtRequestPrebid.builder()
.schains(emptyList())
@@ -432,7 +476,7 @@ public void makeHttpRequestsShouldPreserveExtPrebidServer() {
.id("test-request")
.imp(singletonList(givenImpWithExt(
imp -> imp.banner(Banner.builder().w(300).h(250).build()),
- ExtImpNextMillennium.of("placement_id", null))))
+ ExtImpNextMillennium.of("placement_id", null, null, null))))
.ext(extRequest)
.build();
@@ -603,4 +647,16 @@ private static Imp givenImpWithExt(UnaryOperator impCustomizer,
return givenImp(impCustomizer.andThen(imp -> imp.ext(mapper.valueToTree(
ExtPrebid.of(null, extImpNextMillennium))))::apply);
}
+
+ private static ExtImpNextMillennium givenExtImpWithGroupId(String groupId) {
+ return ExtImpNextMillennium.of(null, groupId, null, null);
+ }
+
+ private static ExtImpNextMillennium givenExtImpWithPlacementId(String placementId) {
+ return ExtImpNextMillennium.of(placementId, null, null, null);
+ }
+
+ private static ExtImpNextMillennium givenExtImpWithPlacementIdAndGroupId(String placementId, String groupId) {
+ return ExtImpNextMillennium.of(placementId, groupId, null, null);
+ }
}
diff --git a/src/test/resources/org/prebid/server/it/openrtb2/nextmillennium/test-auction-nextmillennium-request.json b/src/test/resources/org/prebid/server/it/openrtb2/nextmillennium/test-auction-nextmillennium-request.json
index 8309481141e..989d0611c29 100644
--- a/src/test/resources/org/prebid/server/it/openrtb2/nextmillennium/test-auction-nextmillennium-request.json
+++ b/src/test/resources/org/prebid/server/it/openrtb2/nextmillennium/test-auction-nextmillennium-request.json
@@ -9,7 +9,9 @@
},
"ext": {
"nextmillennium" : {
- "placement_id": "placement_id"
+ "placement_id": "placement_id",
+ "adSlots": ["slot-1", "slot-2"],
+ "allowedAds": ["banner", "native"]
}
}
}
diff --git a/src/test/resources/org/prebid/server/it/openrtb2/nextmillennium/test-nextmillennium-bid-request.json b/src/test/resources/org/prebid/server/it/openrtb2/nextmillennium/test-nextmillennium-bid-request.json
index 6802911a251..31715c6975d 100644
--- a/src/test/resources/org/prebid/server/it/openrtb2/nextmillennium/test-nextmillennium-bid-request.json
+++ b/src/test/resources/org/prebid/server/it/openrtb2/nextmillennium/test-nextmillennium-bid-request.json
@@ -61,7 +61,9 @@
},
"nextMillennium": {
"nmmFlags": [ "1" ],
- "nm_version": "v1.0.0",
+ "adSlots": ["slot-1", "slot-2"],
+ "allowedAds": ["banner", "native"],
+ "nm_version": "v1.0.1",
"server_version": "${json-unit.any-string}"
}
}