Skip to content

Commit 39fb08e

Browse files
committed
enable ogury in app traffic
1 parent 8a86567 commit 39fb08e

3 files changed

Lines changed: 63 additions & 2 deletions

File tree

src/main/java/org/prebid/server/bidder/ogury/OguryBidder.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,12 @@ public Result<List<HttpRequest<BidRequest>>> makeHttpRequests(BidRequest bidRequ
7070
}
7171
}
7272

73-
if (!isValidRequestKeys(bidRequest, impsWithOguryParams)) {
73+
if (isAppRequest(bidRequest)) {
74+
if (!isValidAppRequestKeys(impsWithOguryParams)) {
75+
errors.add(BidderError.badInput("Invalid request. assetKey/adUnitId required"));
76+
return Result.withErrors(errors);
77+
}
78+
} else if (!isValidSiteRequestKeys(bidRequest, impsWithOguryParams)) {
7479
errors.add(BidderError.badInput(
7580
"Invalid request. assetKey/adUnitId or request.site.publisher.id required"));
7681
return Result.withErrors(errors);
@@ -137,7 +142,15 @@ private boolean hasOguryParams(Imp imp) {
137142
&& impExtBidderHoist.has(PREBID_FIELD_ADUNIT_ID);
138143
}
139144

140-
private boolean isValidRequestKeys(BidRequest request, List<Imp> impsWithOguryParams) {
145+
private boolean isAppRequest(BidRequest request) {
146+
return Optional.ofNullable(request.getApp()).isPresent();
147+
}
148+
149+
private boolean isValidAppRequestKeys(List<Imp> impsWithOguryParams) {
150+
return !CollectionUtils.isEmpty(impsWithOguryParams);
151+
}
152+
153+
private boolean isValidSiteRequestKeys(BidRequest request, List<Imp> impsWithOguryParams) {
141154
return !CollectionUtils.isEmpty(impsWithOguryParams) || Optional.ofNullable(request.getSite())
142155
.map(Site::getPublisher)
143156
.map(Publisher::getId)

src/main/resources/bidder-config/ogury.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ adapters:
88
maintainer-email: deliveryservices@ogury.co
99
site-media-types:
1010
- banner
11+
app-media-types:
12+
- banner
1113
vendor-id: 31
1214
usersync:
1315
cookie-family-name: ogury

src/test/java/org/prebid/server/bidder/ogury/OguryBidderTest.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.fasterxml.jackson.core.JsonProcessingException;
44
import com.fasterxml.jackson.databind.node.ObjectNode;
5+
import com.iab.openrtb.request.App;
56
import com.iab.openrtb.request.BidRequest;
67
import com.iab.openrtb.request.Device;
78
import com.iab.openrtb.request.Imp;
@@ -191,6 +192,47 @@ public void makeHttpRequestsShouldNotSendImpsWhenHasNotPublisherIdAndImpsWithOgu
191192
BidderError.badInput("Invalid request. assetKey/adUnitId or request.site.publisher.id required"));
192193
}
193194

195+
@Test
196+
public void makeHttpRequestsAppShouldSendOnlyImpsWithOguryParamsIfPresent() {
197+
// given
198+
final BidRequest bidrequest = givenBidRequest(
199+
bidRequest -> bidRequest.app(givenApp()),
200+
givenImp(imp -> imp.id("without_ogury_keys").ext(givenEmptyImpExt())),
201+
givenImp(imp -> imp.id("with_ogury_keys").ext(givenImpExtWithOguryKeys())));
202+
203+
// when
204+
final Result<List<HttpRequest<BidRequest>>> result = target.makeHttpRequests(bidrequest);
205+
206+
// then
207+
assertThat(result.getValue()).hasSize(1)
208+
.extracting(HttpRequest::getPayload)
209+
.flatExtracting(BidRequest::getImp)
210+
.extracting(Imp::getId)
211+
.containsExactly("with_ogury_keys");
212+
213+
assertThat(result.getErrors()).isEmpty();
214+
}
215+
216+
@Test
217+
public void makeHttpRequestsAppShouldNotSendImpsWhenImpsWithOguryIsEmpty() {
218+
// given
219+
final ObjectNode emptyImpExt = givenEmptyImpExt();
220+
221+
final BidRequest bidrequest = givenBidRequest(
222+
bidRequest -> bidRequest.app(givenApp()),
223+
givenImp(imp -> imp.id("id1").ext(emptyImpExt)),
224+
givenImp(imp -> imp.id("id2").ext(emptyImpExt)));
225+
226+
// when
227+
final Result<List<HttpRequest<BidRequest>>> result = target.makeHttpRequests(bidrequest);
228+
229+
// then
230+
assertThat(result.getValue()).isEmpty();
231+
232+
assertThat(result.getErrors()).containsExactly(
233+
BidderError.badInput("Invalid request. assetKey/adUnitId required"));
234+
}
235+
194236
@Test
195237
public void makeHttpRequestsShouldCopyImpIdToTagId() {
196238
// given
@@ -564,6 +606,10 @@ private Site givenSite() {
564606
.build();
565607
}
566608

609+
private App givenApp() {
610+
return App.builder().bundle("app_bundle").build();
611+
}
612+
567613
private ObjectNode givenEmptyImpExt() {
568614
final ObjectNode ext = mapper.createObjectNode();
569615
ext.putIfAbsent("bidder", mapper.createObjectNode());

0 commit comments

Comments
 (0)