From 0e08c09748c864075e6b5f294229f3943c41a345 Mon Sep 17 00:00:00 2001 From: johnclc Date: Mon, 22 Jun 2026 10:57:46 +0000 Subject: [PATCH 1/2] Teal: mediatype update --- .../prebid/server/bidder/teal/TealBidder.java | 19 ++++++++++++++--- .../server/bidder/teal/TealBidderTest.java | 21 +++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/prebid/server/bidder/teal/TealBidder.java b/src/main/java/org/prebid/server/bidder/teal/TealBidder.java index c1869421dd8..7ab5c3565a4 100644 --- a/src/main/java/org/prebid/server/bidder/teal/TealBidder.java +++ b/src/main/java/org/prebid/server/bidder/teal/TealBidder.java @@ -8,6 +8,7 @@ import com.iab.openrtb.request.Imp; import com.iab.openrtb.request.Publisher; import com.iab.openrtb.request.Site; +import com.iab.openrtb.response.Bid; import com.iab.openrtb.response.BidResponse; import com.iab.openrtb.response.SeatBid; import org.apache.commons.collections4.CollectionUtils; @@ -177,13 +178,25 @@ private static List bidsFromResponse(BidRequest bidRequest, BidRespon .filter(Objects::nonNull) .flatMap(Collection::stream) .filter(Objects::nonNull) - .map(bid -> BidderBid.of(bid, getBidType(bid.getImpid(), bidRequest.getImp()), bidResponse.getCur())) + .map(bid -> BidderBid.of(bid, getBidType(bid, bidRequest.getImp()), bidResponse.getCur())) .toList(); } - private static BidType getBidType(String impId, List imps) { + private static BidType getBidType(Bid bid, List imps) { + final BidType mediaType = Optional.ofNullable(bid.getExt()) + .map(ext -> ext.get("prebid")) + .map(extPrebid -> extPrebid.get("type")) + .filter(JsonNode::isTextual) + .map(JsonNode::textValue) + .map(BidType::fromString) + .orElse(null); + + if (mediaType != null) { + return mediaType; + } + for (Imp imp : imps) { - if (imp.getId().equals(impId)) { + if (imp.getId().equals(bid.getImpid())) { if (imp.getBanner() != null) { return BidType.banner; } else if (imp.getVideo() != null) { diff --git a/src/test/java/org/prebid/server/bidder/teal/TealBidderTest.java b/src/test/java/org/prebid/server/bidder/teal/TealBidderTest.java index 200902919df..9298dfe8e5e 100644 --- a/src/test/java/org/prebid/server/bidder/teal/TealBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/teal/TealBidderTest.java @@ -176,6 +176,26 @@ public void makeBidsShouldReturnErrorWhenResponseBodyCouldNotBeParsed() { assertThat(result.getValue()).isEmpty(); } + @Test + public void makeBidsShouldReturnBidTypeFromBidExtPrebidType() throws JsonProcessingException { + // given + final ObjectNode bidExt = mapper.createObjectNode(); + bidExt.putObject("prebid").put("type", "video"); + + final Bid responseBid = givenBid("imp1", 2, 1).toBuilder().ext(bidExt).build(); + final BidRequest bidRequest = givenBidRequest(imp -> imp.id("imp1").banner(Banner.builder().id("id").build())); + final BidderCall httpCall = givenHttpCall(bidRequest, singletonList(responseBid)); + + // when + final Result> result = target.makeBids(httpCall, bidRequest); + + // then + final Bid expectedBid = givenBid("imp1", 2, 1).toBuilder().ext(bidExt).build(); + + assertThat(result.getErrors()).isEmpty(); + assertThat(result.getValue()).containsExactly(BidderBid.of(expectedBid, BidType.video, "USD")); + } + @Test public void makeBidsShouldReturnBannerBid() throws JsonProcessingException { // given @@ -231,6 +251,7 @@ private static BidRequest givenBidRequest(UnaryOperator impCusto return givenBidRequest(null, impCustomizer); } + @SafeVarargs private static BidRequest givenBidRequest(Site site, UnaryOperator... impCustomizers) { final List imps = Stream.of(impCustomizers) .map(customizer -> customizer.apply(Imp.builder().id("impId")).build()) From ad16ba282d1dc83bfede8d73797ed38958420fbe Mon Sep 17 00:00:00 2001 From: johnclc Date: Tue, 23 Jun 2026 14:59:29 +0000 Subject: [PATCH 2/2] Teal: rename variable --- src/main/java/org/prebid/server/bidder/teal/TealBidder.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/prebid/server/bidder/teal/TealBidder.java b/src/main/java/org/prebid/server/bidder/teal/TealBidder.java index 7ab5c3565a4..2c56e23ff2e 100644 --- a/src/main/java/org/prebid/server/bidder/teal/TealBidder.java +++ b/src/main/java/org/prebid/server/bidder/teal/TealBidder.java @@ -183,7 +183,7 @@ private static List bidsFromResponse(BidRequest bidRequest, BidRespon } private static BidType getBidType(Bid bid, List imps) { - final BidType mediaType = Optional.ofNullable(bid.getExt()) + final BidType bidType = Optional.ofNullable(bid.getExt()) .map(ext -> ext.get("prebid")) .map(extPrebid -> extPrebid.get("type")) .filter(JsonNode::isTextual) @@ -191,8 +191,8 @@ private static BidType getBidType(Bid bid, List imps) { .map(BidType::fromString) .orElse(null); - if (mediaType != null) { - return mediaType; + if (bidType != null) { + return bidType; } for (Imp imp : imps) {