Skip to content

Commit 5aff8ed

Browse files
authored
Mobkoi: Always set TagId with placementId (#4435)
1 parent c7f6aa0 commit 5aff8ed

2 files changed

Lines changed: 41 additions & 5 deletions

File tree

src/main/java/org/prebid/server/bidder/mobkoi/MobkoiBidder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,14 @@ private ExtImpMobkoi parseExtImp(Imp imp) {
7575
}
7676

7777
private Imp modifyImp(Imp firstImp, ExtImpMobkoi extImpMobkoi) {
78-
if (StringUtils.isNotBlank(firstImp.getTagid())) {
79-
return firstImp;
80-
}
81-
8278
if (StringUtils.isNotBlank(extImpMobkoi.getPlacementId())) {
8379
return firstImp.toBuilder().tagid(extImpMobkoi.getPlacementId()).build();
8480
}
8581

82+
if (StringUtils.isNotBlank(firstImp.getTagid())) {
83+
return firstImp;
84+
}
85+
8686
throw new PreBidException("invalid because it comes with neither request.imp[0].tagId nor "
8787
+ "req.imp[0].ext.Bidder.placementId");
8888
}

src/test/java/org/prebid/server/bidder/mobkoi/MobkoiBidderTest.java

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,46 @@ public void makeHttpRequestsShouldAddPlacementIdOnlyInFirstImpressionTagId() {
9191
assertThat(result.getValue())
9292
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
9393
.flatExtracting(BidRequest::getImp)
94-
.extracting(imp -> imp.getTagid())
94+
.extracting(Imp::getTagid)
9595
.containsExactly("pid", null);
9696
}
9797

98+
@Test
99+
public void makeHttpRequestsShouldOverrideTagIdWithPlacementId() {
100+
// given
101+
final ObjectNode mobkoiExt = impExt("pid");
102+
final Imp givenImp = givenImp(impBuilder -> impBuilder.tagid("tagId").ext(mobkoiExt));
103+
final BidRequest bidRequest = BidRequest.builder().imp(asList(givenImp)).build();
104+
105+
// when
106+
final Result<List<HttpRequest<BidRequest>>> result = target.makeHttpRequests(bidRequest);
107+
108+
// then
109+
assertThat(result.getValue())
110+
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
111+
.flatExtracting(BidRequest::getImp)
112+
.extracting(Imp::getTagid)
113+
.containsExactly("pid");
114+
}
115+
116+
@Test
117+
public void makeHttpRequestsShouldKeepOriginalTagIdWhenPlacementIdMissing() {
118+
// given
119+
final ObjectNode mobkoiExt = impExt(null);
120+
final Imp givenImp = givenImp(impBuilder -> impBuilder.tagid("tagId").ext(mobkoiExt));
121+
final BidRequest bidRequest = BidRequest.builder().imp(asList(givenImp)).build();
122+
123+
// when
124+
final Result<List<HttpRequest<BidRequest>>> result = target.makeHttpRequests(bidRequest);
125+
126+
// then
127+
assertThat(result.getValue())
128+
.extracting(httpRequest -> mapper.readValue(httpRequest.getBody(), BidRequest.class))
129+
.flatExtracting(BidRequest::getImp)
130+
.extracting(Imp::getTagid)
131+
.containsExactly("tagId");
132+
}
133+
98134
@Test
99135
public void makeHttpRequestsShouldOverrideUserExtAndSetConsent() {
100136
// given

0 commit comments

Comments
 (0)