Skip to content

Commit 53cf250

Browse files
Fix OpenRTB field (#805)
* feat: OpenRTB merger * feat: array merging and json comparator for tests * test: add more unit tests * feat: provide global and imp setters * fix: unit tests * feat: add OpenRTB usage examples to the demo apps * fix: apply imp OpenRTB only to the first `imp` * refactor: remove copies of OpenRTB setters * fix: smoke tests * feat: return previous setter and make it deprecated * Revert "fix: smoke tests" This reverts commit a6c2449.
1 parent 08214bc commit 53cf250

File tree

46 files changed

+892
-179
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+892
-179
lines changed

Diff for: Example/PrebidDemoJava/src/main/java/org/prebid/mobile/javademo/CustomApplication.java

+18-3
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,12 @@
1919
import android.app.Application;
2020
import android.util.Log;
2121

22+
import com.google.android.gms.ads.MobileAds;
23+
2224
import org.prebid.mobile.ExternalUserId;
2325
import org.prebid.mobile.Host;
2426
import org.prebid.mobile.PrebidMobile;
27+
import org.prebid.mobile.TargetingParams;
2528
import org.prebid.mobile.api.data.InitializationStatus;
2629
import org.prebid.mobile.javademo.utils.Settings;
2730

@@ -46,9 +49,9 @@ private void initPrebid() {
4649
PrebidMobile.setPrebidServerAccountId("0689a263-318d-448b-a3d4-b02e8a709d9d");
4750
PrebidMobile.setCustomStatusEndpoint("https://prebid-server-test-j.prebid.org/status");
4851
PrebidMobile.setPrebidServerHost(
49-
Host.createCustomHost(
50-
"https://prebid-server-test-j.prebid.org/openrtb2/auction"
51-
)
52+
Host.createCustomHost(
53+
"https://prebid-server-test-j.prebid.org/openrtb2/auction"
54+
)
5255
);
5356
PrebidMobile.initializeSdk(getApplicationContext(), status -> {
5457
if (status == InitializationStatus.SUCCEEDED) {
@@ -57,6 +60,18 @@ private void initPrebid() {
5760
Log.e(TAG, "SDK initialization error: " + status.getDescription());
5861
}
5962
});
63+
64+
TargetingParams.setGlobalOrtbConfig(
65+
"{" +
66+
" \"displaymanager\": \"Google\"," +
67+
" \"displaymanagerver\": \"" + MobileAds.getVersion() + "\"," +
68+
" \"ext\": {" +
69+
" \"myext\": {" +
70+
" \"test\": 1" +
71+
" }" +
72+
" }" +
73+
"}"
74+
);
6075
}
6176

6277
private void initPrebidExternalUserIds() {

Diff for: Example/PrebidDemoJava/src/main/java/org/prebid/mobile/javademo/activities/ads/gam/original/GamOriginalApiDisplayBanner320x50.java

+17-2
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ private void createAd() {
4141
BannerParameters parameters = new BannerParameters();
4242
parameters.setApi(Collections.singletonList(Signals.Api.MRAID_2));
4343
adUnit.setBannerParameters(parameters);
44+
setOpenRtbConfig();
4445

4546
/* For GAM less than version 20 use PublisherAdView */
4647
final AdManagerAdView gamView = new AdManagerAdView(this);
@@ -67,8 +68,8 @@ public void onAdLoaded() {
6768
AdViewUtils.findPrebidCreativeSize(gamView, new AdViewUtils.PbFindSizeListener() {
6869
@Override
6970
public void success(
70-
int width,
71-
int height
71+
int width,
72+
int height
7273
) {
7374
gamView.setAdSizes(new AdSize(width, height));
7475
}
@@ -81,6 +82,20 @@ public void failure(@NonNull PbFindSizeError error) {
8182
};
8283
}
8384

85+
/**
86+
* Optional. Sets additional parameters.
87+
*/
88+
private void setOpenRtbConfig() {
89+
adUnit.setImpOrtbConfig(
90+
"{" +
91+
" \"bidfloor\": 0.01," +
92+
" \"banner\": {" +
93+
" \"battr\": [1,2,3,4]" +
94+
" }" +
95+
"}"
96+
);
97+
}
98+
8499
@Override
85100
protected void onDestroy() {
86101
super.onDestroy();

Diff for: Example/PrebidDemoKotlin/src/main/java/org/prebid/mobile/prebidkotlindemo/CustomApplication.kt

+14
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,20 @@ class CustomApplication : Application() {
5454
}
5555
}
5656
PrebidMobile.setShareGeoLocation(true)
57+
58+
TargetingParams.setGlobalOrtbConfig(
59+
"""
60+
{
61+
"displaymanager": "Google",
62+
"displaymanagerver": "${MobileAds.getVersion()}",
63+
"ext": {
64+
"myext": {
65+
"test": 1
66+
}
67+
}
68+
}
69+
""".trimIndent()
70+
)
5771
}
5872

5973
private fun initAdMob() {

Diff for: Example/PrebidDemoKotlin/src/main/java/org/prebid/mobile/prebidkotlindemo/activities/ads/gam/original/GamOriginalApiDisplayBanner320x50Activity.kt

+15
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ class GamOriginalApiDisplayBanner320x50Activity : BaseAdActivity() {
6666

6767
val request = AdManagerAdRequest.Builder().build()
6868
adUnit = BannerAdUnit(CONFIG_ID, WIDTH, HEIGHT)
69+
setOpenRtbConfig()
6970

7071
val parameters = BannerParameters()
7172
parameters.api = listOf(Signals.Api.MRAID_3, Signals.Api.OMID_1)
@@ -77,6 +78,20 @@ class GamOriginalApiDisplayBanner320x50Activity : BaseAdActivity() {
7778
}
7879
}
7980

81+
/**
82+
* Optional. Sets additional parameters.
83+
*/
84+
private fun setOpenRtbConfig() {
85+
adUnit?.impOrtbConfig = """
86+
{
87+
"bidfloor": 0.01,
88+
"banner": {
89+
"battr": [1,2,3,4]
90+
}
91+
}
92+
"""
93+
}
94+
8095

8196
override fun onDestroy() {
8297
super.onDestroy()

Diff for: Example/PrebidDemoKotlin/src/main/java/org/prebid/mobile/prebidkotlindemo/activities/ads/gam/rendering/GamRenderingApiDisplayBanner320x50Activity.kt

+15-1
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,29 @@ class GamRenderingApiDisplayBanner320x50Activity : BaseAdActivity() {
4242
private fun createAd() {
4343
val eventHandler = GamBannerEventHandler(this, AD_UNIT_ID, AdSize(WIDTH, HEIGHT))
4444
adView = BannerView(this, CONFIG_ID, eventHandler)
45+
setOpenRtbConfig()
4546
adWrapperView.addView(adView)
4647
adView?.setAutoRefreshDelay(refreshTimeSeconds)
4748
adView?.loadAd()
4849
}
4950

50-
5151
override fun onDestroy() {
5252
super.onDestroy()
5353
adView?.destroy()
5454
}
5555

56+
/**
57+
* Optional. Sets additional parameters.
58+
*/
59+
private fun setOpenRtbConfig() {
60+
adView?.impOrtbConfig = """
61+
{
62+
"bidfloor": 0.01,
63+
"banner": {
64+
"battr": [1,2,3,4]
65+
}
66+
}
67+
""".trimIndent()
68+
}
69+
5670
}

Diff for: PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/AdUnit.java

+18-4
Original file line numberDiff line numberDiff line change
@@ -431,13 +431,27 @@ public void setGpid(@Nullable String gpid) {
431431
configuration.setGpid(gpid);
432432
}
433433

434+
/**
435+
* @deprecated use {@link org.prebid.mobile.TargetingParams#setGlobalOrtbConfig(String)}
436+
* or {@link #setImpOrtbConfig(String)}.
437+
*/
438+
@Deprecated(since = "2.2.3", forRemoval = true)
439+
public void setOrtbConfig(@Nullable String config) {
440+
configuration.setOrtbConfig(config);
441+
}
442+
434443
@Nullable
435-
public String getOrtbConfig() {
436-
return configuration.getOrtbConfig();
444+
public String getImpOrtbConfig() {
445+
return configuration.getImpOrtbConfig();
437446
}
438447

439-
public void setOrtbConfig(@Nullable String ortbConfig) {
440-
configuration.setOrtbConfig(ortbConfig);
448+
/**
449+
* Sets imp level OpenRTB config JSON string that will be merged with the original imp object in the bid request.
450+
* Expected format: {@code "{"new_field": "value"}"}.
451+
* @param ortbConfig JSON config string.
452+
*/
453+
public void setImpOrtbConfig(@Nullable String ortbConfig) {
454+
configuration.setImpOrtbConfig(ortbConfig);
441455
}
442456

443457
protected BidRequesterListener createBidListener(OnCompleteListener originalListener) {

Diff for: PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/BannerAdUnit.java

+1-9
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.prebid.mobile.api.data.AdFormat;
2323
import org.prebid.mobile.api.data.AdUnitFormat;
2424
import org.prebid.mobile.rendering.models.AdPosition;
25+
import org.prebid.mobile.rendering.models.AdPosition;
2526

2627
import java.util.EnumSet;
2728
import java.util.HashSet;
@@ -69,15 +70,6 @@ HashSet<AdSize> getSizes() {
6970
return configuration.getSizes();
7071
}
7172

72-
@Nullable
73-
public String getOrtbConfig() {
74-
return configuration.getOrtbConfig();
75-
}
76-
77-
public void setOrtbConfig(@Nullable String ortbConfig) {
78-
configuration.setOrtbConfig(ortbConfig);
79-
}
80-
8173
public void setAdPosition(AdPosition adPosition) {
8274
configuration.setAdPosition(adPosition);
8375
}

Diff for: PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/BannerBaseAdUnit.java

-9
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,6 @@ public Parameters getParameters() {
7979
return null;
8080
}
8181

82-
@Nullable
83-
public String getOrtbConfig() {
84-
return configuration.getOrtbConfig();
85-
}
86-
87-
public void setOrtbConfig(@Nullable String ortbConfig) {
88-
configuration.setOrtbConfig(ortbConfig);
89-
}
90-
9182
/**
9283
* Banner parameters.
9384
* Describes an <a href="https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf">OpenRTB</a> banner object

Diff for: PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/InterstitialAdUnit.java

-9
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,4 @@ public void setMinSizePercentage(
7070
configuration.setMinSizePercentage(new AdSize(width, height));
7171
}
7272

73-
@Nullable
74-
public String getOrtbConfig() {
75-
return configuration.getOrtbConfig();
76-
}
77-
78-
public void setOrtbConfig(@Nullable String ortbConfig) {
79-
configuration.setOrtbConfig(ortbConfig);
80-
}
81-
8273
}

Diff for: PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/NativeAdUnit.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -230,9 +230,9 @@ public NativeAdUnitConfiguration getNativeConfiguration() {
230230
}
231231

232232
@Nullable
233-
public String getOrtbConfig() {return configuration.getOrtbConfig();}
233+
public String getImpOrtbConfig() {return configuration.getImpOrtbConfig();}
234234

235-
public void setOrtbConfig(@Nullable String ortbConfig) {configuration.setOrtbConfig(ortbConfig);}
235+
public void setImpOrtbConfig(@Nullable String ortbConfig) {configuration.setImpOrtbConfig(ortbConfig);}
236236

237237

238238
}

0 commit comments

Comments
 (0)