diff --git a/src/main/java/org/prebid/server/bidder/openx/OpenxBidder.java b/src/main/java/org/prebid/server/bidder/openx/OpenxBidder.java index 63ef19531d5..ef2ef9e02a5 100644 --- a/src/main/java/org/prebid/server/bidder/openx/OpenxBidder.java +++ b/src/main/java/org/prebid/server/bidder/openx/OpenxBidder.java @@ -44,6 +44,7 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; +import java.util.stream.Stream; public class OpenxBidder implements Bidder { @@ -111,10 +112,14 @@ private List makeRequests( List nativeImps, List errors) { final List bidRequests = new ArrayList<>(); - // single request for all banner imps - final BidRequest bannerRequest = createSingleRequest(bannerImps, bidRequest, errors); - if (bannerRequest != null) { - bidRequests.add(bannerRequest); + // single request for all banner and native imps + var bannerAndNativeImps = Stream.of(bannerImps, nativeImps) + .filter(Objects::nonNull) + .flatMap(Collection::stream) + .toList(); + final BidRequest bannerAndNativeImpsRequest = createSingleRequest(bannerAndNativeImps, bidRequest, errors); + if (bannerAndNativeImpsRequest != null) { + bidRequests.add(bannerAndNativeImpsRequest); } if (CollectionUtils.isNotEmpty(videoImps)) { @@ -125,12 +130,6 @@ private List makeRequests( .filter(Objects::nonNull) .toList()); } - - // single request for all native imps - final BidRequest nativeRequest = createSingleRequest(nativeImps, bidRequest, errors); - if (nativeRequest != null) { - bidRequests.add(nativeRequest); - } return bidRequests; } diff --git a/src/test/java/org/prebid/server/bidder/openx/OpenxBidderTest.java b/src/test/java/org/prebid/server/bidder/openx/OpenxBidderTest.java index 9d3ccda3ed8..0be20a9e0d1 100644 --- a/src/test/java/org/prebid/server/bidder/openx/OpenxBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/openx/OpenxBidderTest.java @@ -325,11 +325,20 @@ public void makeHttpRequestsShouldReturnResultWithExpectedFieldsSet() { } @Test - public void makeHttpRequestsShouldReturnResultWithSingleBidRequestForMultipleNativeImps() { + public void makeHttpRequestsShouldReturnResultWithSingleBidRequestForMultipleBannerAndNativeImps() { // given final BidRequest bidRequest = BidRequest.builder() .id("bidRequestId") .imp(asList( + Imp.builder() + .id("impId4") + .banner(Banner.builder().build()) + .ext(mapper.valueToTree( + ExtPrebid.of(null, + ExtImpOpenx.builder() + .customParams(givenCustomParams("foo4", "bar4")) + .delDomain("se-demo-d.openx.net") + .unit("4").build()))).build(), Imp.builder() .id("impId5") .xNative(Native.builder().request("{\"testreq\":1}").build()) @@ -365,6 +374,16 @@ public void makeHttpRequestsShouldReturnResultWithSingleBidRequestForMultipleNat BidRequest.builder() .id("bidRequestId") .imp(asList( + Imp.builder() + .id("impId4") + .tagid("4") + .banner(Banner.builder().build()) + .ext(mapper.valueToTree( + ExtImpOpenx.builder() + .customParams( + givenCustomParams("foo4", "bar4")) + .build())) + .build(), Imp.builder() .id("impId5") .tagid("5")