From aef2a39d6db5b0f4980ed63ffef4a8ad9c127b57 Mon Sep 17 00:00:00 2001 From: ValentinTeqBlaze Date: Wed, 16 Oct 2024 12:55:15 +0200 Subject: [PATCH 01/20] feat: reward earning section --- .../rendering/android-sdk-integration-gam.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md index 65d8d95b61..09d6e99204 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md @@ -292,6 +292,22 @@ override fun onAdLoaded(rewardedAdUnit: RewardedAdUnit) { } ``` +#### Step 5: Handle reward +{:.no_toc} + +Handle earning the reward in the appropriate method. Important: the reward can be null. + +```kotlin +override fun onUserEarnedReward(rewardedAdUnit: RewardedAdUnit?, reward: Reward?) { + if (reward != null) { + val rewardType = reward.type + val rewardCount = reward.count + val rewardExt = reward.ext + // Process the reward + } +} +``` + ### Migrating rewarded video from a Bidding-Only integration {:.no_toc} From 510ed3cf00ff1311784db2c16b9f217f9f4a4c3d Mon Sep 17 00:00:00 2001 From: ValentinTeqBlaze Date: Wed, 16 Oct 2024 12:55:53 +0200 Subject: [PATCH 02/20] feat: correct old info --- .../rendering/android-sdk-integration-gam.md | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md index 09d6e99204..a3b450127f 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md @@ -217,7 +217,7 @@ Integration: ### Rewarded Video -To display a Rewarded Ad follow these steps: +Displaying the **Rewarded Ad** is the same as displaying an Interstitial Ad, but it adds ability to handle reward. To display a Rewarded Ad follow these steps: ```kotlin // 1. Create a rewarded custom event handler for GAM ad server. @@ -243,19 +243,6 @@ Pay attention that the `loadAd()` should be called on the main thread. {% endcapture %} {% include /alerts/alert_warning.html content=warning_note %} -Displaying the **Rewarded Ad** is the same as displaying an Interstitial Ad. The type of ad can be customized to: - -Be notified when user earns a reward - implement `RewardedAdUnitListener` interface: - -```kotlin - fun onUserEarnedReward(rewardedAdUnit: RewardedAdUnit) -``` - -When the actual reward object is stored in the `RewardedAdUnit`: - -```kotlin -val reward = rewardedAdUnit.getUserReward() -``` #### Step 1: Create Event Handler {:.no_toc} From d08be38169363d4b2daaf6694ddecc14720f90ad Mon Sep 17 00:00:00 2001 From: ValentinTeqBlaze Date: Wed, 16 Oct 2024 12:58:40 +0200 Subject: [PATCH 03/20] feat: in app integration corrections --- .../rendering/android-sdk-integration-gam.md | 4 ++-- .../rendering/android-sdk-integration-pb.md | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md index a3b450127f..1cb9bcf8cc 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md @@ -279,10 +279,10 @@ override fun onAdLoaded(rewardedAdUnit: RewardedAdUnit) { } ``` -#### Step 5: Handle reward +#### Step 5: Handle a reward {:.no_toc} -Handle earning the reward in the appropriate method. Important: the reward can be null. +Handle earning the reward in the appropriate method. Important: a reward can be null. ```kotlin override fun onUserEarnedReward(rewardedAdUnit: RewardedAdUnit?, reward: Reward?) { diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-pb.md b/prebid-mobile/modules/rendering/android-sdk-integration-pb.md index 6c4a24cadc..4978264ef7 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-pb.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-pb.md @@ -238,6 +238,22 @@ override fun onAdLoaded(rewardedAdUnit: RewardedAdUnit) { } ``` +#### Step 4: Handle a reward +{:.no_toc} + +Handle earning a reward in the appropriate method. Important: a reward can be null. + +```kotlin +override fun onUserEarnedReward(rewardedAdUnit: RewardedAdUnit?, reward: Reward?) { + if (reward != null) { + val rewardType = reward.type + val rewardCount = reward.count + val rewardExt = reward.ext + // Process the reward + } +} +``` + ## Further Reading - [Prebid Mobile Overview](/prebid-mobile/prebid-mobile) From 1fc7805ffa5307ff7716db51418b21240e7a1651 Mon Sep 17 00:00:00 2001 From: Olena Stepaniuk Date: Wed, 16 Oct 2024 13:53:34 +0300 Subject: [PATCH 04/20] doc: ios rewarded doc updates --- .../rendering/ios-sdk-integration-gam.md | 36 +++++++++++-------- .../rendering/ios-sdk-integration-pb.md | 36 ++++++++++++++++--- 2 files changed, 53 insertions(+), 19 deletions(-) diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md b/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md index a4d09983f5..7a2efccebe 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md @@ -183,7 +183,7 @@ Call the method `loadAd()` which will make a bid request to Prebid Server. Wait for the Prebid Server to return an ad and show it to the user in any suitable time. ```swift -// MARK: InterstitialRenderingAdUnitDelegate +// MARK: InterstitialAdUnitDelegate func interstitialDidReceiveAd(_ interstitial: InterstitialAdUnit) { // Now the ad is ready for display @@ -206,7 +206,7 @@ Integration: 4. Remove original `InterstitialAdUnit`. 5. Follow the instructions to integrate [Interstitial API](#interstitials). -### Rewarded Video +### Rewarded Integration example: @@ -215,8 +215,7 @@ Integration example: let eventHandler = GAMRewardedEventHandler(adUnitID: GAM_AD_UNIT_ID) // 2. Create an Ad Unit -rewardedAd = RewardedAdUnit(configID: CONFIG_ID, - eventHandler: eventHandler) +rewardedAd = RewardedAdUnit(configID: CONFIG_ID, eventHandler: eventHandler) rewardedAd.delegate = self @@ -237,15 +236,7 @@ The proccess for displaying the Rewarded Ad is the same as for the Interstitial To be notified when a user earns a reward - implement the method of `RewardedAdUnitDelegate`: ```swift -- (void)rewardedAdUserDidEarnReward:(RewardedAdUnit *)rewardedAd; -``` - -The reward object is stored in the `RewardedAdUnit`: - -```swift -if let reward = rewardedAd.reward as? GADAdReward { - // ... -} +func rewardedAdUserDidEarnReward(_ rewardedAd: RewardedAdUnit, reward: PrebidReward) {} ``` #### Step 1: Create Event Handler @@ -279,6 +270,23 @@ func rewardedAdDidReceiveAd(_ rewardedAd: RewardedAdUnit) { } ``` +##### Step 4: Handle the reward +{:.no_toc} + +Handle the reward in the appropriate method. + +``` swift +// MARK: RewardedAdUnitDelegate + +func rewardedAdUserDidEarnReward(_ rewardedAd: RewardedAdUnit, reward: PrebidReward) { + let type = reward.type + let count = reward.count + let ext = reward.ext + + // Process the reward +} +``` + #### Migrating Rewarded Video from a Bidding-Only integration GAM setup: @@ -293,7 +301,7 @@ Integration: 2. Implement the protocol `RewardedAdUnitDelegate` in the View Controller. 3. Remove usage of `GAMRequest`. 4. Remove original `RewardedVideoAdUnit`. -5. Follow the instructions to integrate [Rewarded API](#rewarded-video). +5. Follow the instructions to integrate [Rewarded API](#rewarded). ## Additional Ad Unit Configuration diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md b/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md index 5291655c9d..3cb8a5cf32 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md @@ -150,16 +150,16 @@ if interstitial.isReady { ``` -The **default** ad format for interstitial is **.banner**. In order to make a `multiformat bid request`, set the respective values into the `adFormats` property. +The **default** ad formats for interstitial are **.banner** and **video**. In order to make a banner-only or video-only request, set the respective values into the `adFormats` property. ``` swift // Make bid request for video ad adUnit?.adFormats = [.video] -// Make bid request for both video and banner ads +// Make bid request for both video and banner ads (default behaviour) adUnit?.adFormats = [.video, .banner] -// Make bid request for banner ad (default behaviour) +// Make bid request for banner ad adUnit?.adFormats = [.banner] ``` @@ -192,7 +192,7 @@ func interstitialDidReceiveAd(_ interstitial: InterstitialRenderingAdUnit) { } ``` -#### Rewarded Video +#### Rewarded Integration example: @@ -219,6 +219,12 @@ Create the `RewardedAdUnit` object with parameter: - `configID` - an ID of Stored Impression on the Prebid Server +You can also customize ad unit by setting additional properties: + +- `adFormats` - the set of ad formats supported by the ad unit(the default value is `[.banner, .video]` formats); +- `bannerParameters` - the banner parameters used for configuring ad unit; +- `videoParameters` - the video parameters used for configuring ad unit. + ##### Step 2: Load the Ad {:.no_toc} @@ -233,7 +239,27 @@ Wait until the ad will be loaded and present it to the user in any suitable time // MARK: RewardedAdUnitDelegate func rewardedAdDidReceiveAd(_ rewardedAd: RewardedAdUnit) { - // Now the ad is ready for display + // Now the ad is ready for display - call `show` method. + if rewardedAd.isReady { + rewardedAd.show(from: self) + } +} +``` + +##### Step 4: Handle the reward +{:.no_toc} + +Handle the reward in the appropriate method. + +``` swift +// MARK: RewardedAdUnitDelegate + +func rewardedAdUserDidEarnReward(_ rewardedAd: RewardedAdUnit, reward: PrebidReward) { + let type = reward.type + let count = reward.count + let ext = reward.ext + + // Process the reward } ``` From 28ba9d65f3cad2d6e740374f833c9f25a41061bb Mon Sep 17 00:00:00 2001 From: Olena Stepaniuk Date: Wed, 16 Oct 2024 15:11:11 +0300 Subject: [PATCH 05/20] doc: add rewarded server-side configuration doc --- .../rewarded-server-side-configuration.md | 62 +++++++++++++++++++ .../rendering/ios-sdk-integration-admob.md | 4 +- .../rendering/ios-sdk-integration-gam.md | 2 + .../rendering/ios-sdk-integration-max.md | 4 +- .../rendering/ios-sdk-integration-pb.md | 2 + .../modules/rendering/modules-rendering.md | 3 +- .../android/code-integration-android.md | 3 +- .../pbm-api/ios/code-integration-ios.md | 3 +- 8 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 _includes/mobile/rewarded-server-side-configuration.md diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md new file mode 100644 index 0000000000..3445048bf2 --- /dev/null +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -0,0 +1,62 @@ +#### Prebid Server-side Rewarded Configuration + +You can pass some rewarded configuration properties from PBS to the SDK using the `ext.prebid.passthrough` object, [supported](https://docs.prebid.org/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#request-passthrough) by Prebid Server, in the stored impression-level request. The rewarded configuration could be placed in `ext.prebid.passthrough[].rwdd` object. + +Here is the details about rewarded configuration object `rwdd`: + +| Attribute | Required? | Description | Example | Type | +|----------------------|----------------|-----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|----------| +| `reward` | Yes | Metadata provided by the publisher to describe the reward | `{"type": "SuperDollars", "count": 10}` | object | +| `reward.type` | Yes | Type of the reward in the app's coins | `"SuperDollars"` | string | +| `reward.count` | Yes | Amount of coins | `10` | integer | +| `reward.ext` | No | For future extensions | `null` | object | +| `completion` | No | Describes the condition when the SDK should send a signal to the app that the user has earned the reward | `{ "video": { "endcard": { "time": 5 } } }` | object | +| `completion.banner` | No | Details for banner ad completion | `{ "time": 5, "event": "custom_event_url" }` | object | +| `completion.banner.time` | No | Period of time the banner ad is on screen | `5` | integer | +| `completion.banner.event` | No | URL with custom schema sent by the creative | `"rwdd://userDidEarnReward"` | string | +| `completion.video` | No | Details for video ad completion | `{ "endcard": { "time": 5 } }` | object | +| `completion.video.time` | No | Period of time the video ad is on screen | `10` | integer | +| `completion.video.playbackevent` | No | The playback event stage in the video | `"start"`, `"firstquartile"`, `"midpoint"`, `"thirdquartile"`, `"complete"` | string | +| `completion.video.endcard` | No | Properties for end card, same as banner ad | `{ "time": 5 }` | object | +| `completion.video.endcard.time` | No | Period of time the end card is on screen | `5` | integer | +| `completion.video.endcard.event` | No | URL with custom schema sent by the creative for end card | `"rwdd://userDidEarnReward"` | string | +| `close` | No | Describes close behavior after reward is earned | `{ "postrewardtime": 3, "action": "autoclose" }` | object | +| `close.postrewardtime` | No | Time interval (seconds) after reward event when SDK should close interstitial | `3` | integer | +| `close.action` | No | Action SDK should take: `"autoclose"` (close interstitial) or `"closebutton"` (show close button) | `"autoclose"` | string | + + +An example of a stored impression-level request: + +```json +{ + "ext": { + "prebid": { + "storedauctionresponse": { + "id": "prebid-response-video-rewarded-endcard" + }, + "passthrough": [ + { + "type": "prebidmobilesdk", + "rwdd": { + "reward": { + "type": "SuperDollars", + "count": 10 + }, + "completion": { + "video": { + "endcard": { + "time": 5 + } + } + }, + "close": { + "postrewardtime": 3, + "action": "autoclose" + } + } + } + ] + } + } +} +``` diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md b/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md index acc6d0bb43..677bd51223 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md @@ -168,7 +168,9 @@ Make a regular AdMob's ad request. Everything else will be handled by GMA SDK an Once you receive the ad it will be ready for display. Follow the [AdMob instructions](https://developers.google.com/admob/ios/interstitial#swift) for displaying an ad. -### Rewarded Video +### Rewarded + +{% include mobile/rewarded-server-side-configuration.md %} Integration example: diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md b/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md index 7a2efccebe..06a6298f25 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md @@ -208,6 +208,8 @@ Integration: ### Rewarded +{% include mobile/rewarded-server-side-configuration.md %} + Integration example: ```swift diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-max.md b/prebid-mobile/modules/rendering/ios-sdk-integration-max.md index 9145836090..7d4ab1d099 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-max.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-max.md @@ -148,7 +148,9 @@ Now you should make a regular MAX's ad request. Everything else will be handled Once you receive the ad it will be ready for display. Follow the [MAX instructions](https://dash.applovin.com/documentation/mediation/ios/getting-started/interstitials#showing-an-interstitial-ad) for displaying an ad. -### Rewarded Video +### Rewarded + +{% include mobile/rewarded-server-side-configuration.md %} Integration example: diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md b/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md index 3cb8a5cf32..52bb3772b8 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md @@ -194,6 +194,8 @@ func interstitialDidReceiveAd(_ interstitial: InterstitialRenderingAdUnit) { #### Rewarded +{% include mobile/rewarded-server-side-configuration.md %} + Integration example: ``` swift diff --git a/prebid-mobile/modules/rendering/modules-rendering.md b/prebid-mobile/modules/rendering/modules-rendering.md index 9d82a5efd6..33cb6004a8 100644 --- a/prebid-mobile/modules/rendering/modules-rendering.md +++ b/prebid-mobile/modules/rendering/modules-rendering.md @@ -26,7 +26,8 @@ Prebid Mobile rendering supports the following ad formats: * Video Banner * Display Interstitial * Video Interstitial -* Rewarded Video +* Display Rewarded +* Video Rewarded diff --git a/prebid-mobile/pbm-api/android/code-integration-android.md b/prebid-mobile/pbm-api/android/code-integration-android.md index c741512ac8..672467c050 100644 --- a/prebid-mobile/pbm-api/android/code-integration-android.md +++ b/prebid-mobile/pbm-api/android/code-integration-android.md @@ -383,7 +383,8 @@ In the table below, you can find Prebid's test IDs that are used in the Demo App |`prebid-demo-video-interstitial-320-480-original-api`|**Video Interstitial** (Original API)|Returns a stored response that contains a Video Interstitial 320x480 winning bid.| |`prebid-demo-video-interstitial-320-480`|**Video Interstitial** (Rendering API)|Returns a stored response that contains a Video Interstitial 320x480 winning bid.| |`prebid-demo-video-rewarded-320-480-original-api`|**Rewarded Video** (Original API)|Returns a stored response that contains a Rewarded Video 320x480 winning bid.| -|`prebid-demo-video-rewarded-320-480`|**Rewarded Video** (Original API)|Returns a stored response that contains a Rewarded Video 320x480 winning bid.| +|`prebid-demo-banner-rewarded-time`|**Rewarded HTML** Returns a stored response that contains a Rewarded HTML 320x480 winning bid with rewarded configuration.| +|`prebid-demo-video-rewarded-endcard-time`|**Rewarded Video** Returns a stored response that contains a Rewarded Video 320x480 winning bid with rewarded configuration.| |`sample_video_response`|**Instream Video**|Returns a stored response that contains a Video 320x480 winning bid. Note: on Android we have an [issue](https://github.com/prebid/prebid-mobile-android/issues/517) with Instream Video demo example. When it is fixed the config id will be updated to the new one.| |`prebid-demo-banner-native-styles`|**Native Styles**|Returns a stored response that contains a Native winning bid.| |`prebid-demo-banner-native-styles`|**In-App Native**|Returns a stored response that contains a Native winning bid.| diff --git a/prebid-mobile/pbm-api/ios/code-integration-ios.md b/prebid-mobile/pbm-api/ios/code-integration-ios.md index c8d2f08932..6bac7fb7db 100644 --- a/prebid-mobile/pbm-api/ios/code-integration-ios.md +++ b/prebid-mobile/pbm-api/ios/code-integration-ios.md @@ -364,7 +364,8 @@ In the table below, you can find Prebid's test IDs that are used in the Demo App |`prebid-demo-video-interstitial-320-480-original-api`|**Video Interstitial** (Original API)|Returns a stored response that contains a Video Interstitial 320x480 winning bid.| |`prebid-demo-video-interstitial-320-480`|**Video Interstitial** (Rendering API)|Returns a stored response that contains a Video Interstitial 320x480 winning bid.| |`prebid-demo-video-rewarded-320-480-original-api`|**Rewarded Video** (Original API)|Returns a stored response that contains a Rewarded Video 320x480 winning bid.| -|`prebid-demo-video-rewarded-320-480`|**Rewarded Video** (Original API)|Returns a stored response that contains a Rewarded Video 320x480 winning bid.| +|`prebid-demo-banner-rewarded-time`|**Rewarded HTML** Returns a stored response that contains a Rewarded HTML 320x480 winning bid with rewarded configuration.| +|`prebid-demo-video-rewarded-endcard-time`|**Rewarded Video** Returns a stored response that contains a Rewarded Video 320x480 winning bid with rewarded configuration.| |`prebid-demo-video-interstitial-320-480`|**Instream Video**|Returns a stored response that contains a Video 320x480 winning bid.| |`prebid-demo-banner-native-styles`|**Native Styles**|Returns a stored response that contains a Native winning bid.| |`prebid-demo-banner-native-styles`|**In-App Native**|Returns a stored response that contains a Native winning bid.| From d394a2a7abb17f24be93654112388933cbd61d55 Mon Sep 17 00:00:00 2001 From: ValentinTeqBlaze Date: Wed, 16 Oct 2024 14:17:44 +0200 Subject: [PATCH 06/20] feat: add rewarded config url --- .../modules/rendering/android-sdk-integration-admob.md | 4 +++- .../modules/rendering/android-sdk-integration-gam.md | 4 +++- .../modules/rendering/android-sdk-integration-max.md | 4 +++- prebid-mobile/modules/rendering/android-sdk-integration-pb.md | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-admob.md b/prebid-mobile/modules/rendering/android-sdk-integration-admob.md index 32cc4169c5..3366b8e5e1 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-admob.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-admob.md @@ -186,7 +186,9 @@ Now you should just make a regular AdMob's ad request. Evetything else will be h Once you receive the ad it will be ready for display. You can show interstitial right in the listener or later according to the app logic. -### Rewarded Video +### Rewarded + +{% include mobile/rewarded-server-side-configuration.md %} Integration example: diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md index 1cb9bcf8cc..48309aa2a8 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md @@ -215,7 +215,9 @@ Integration: 4. Remove the original `InterstitialAdUnit`. 5. Follow the instructions to integrate [Interstitial API](#interstitials). -### Rewarded Video +### Rewarded + +{% include mobile/rewarded-server-side-configuration.md %} Displaying the **Rewarded Ad** is the same as displaying an Interstitial Ad, but it adds ability to handle reward. To display a Rewarded Ad follow these steps: diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-max.md b/prebid-mobile/modules/rendering/android-sdk-integration-max.md index 2a5803b2c1..24d9041d40 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-max.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-max.md @@ -161,7 +161,9 @@ Now you should make a regular MAX's ad request. Everything else will be handled Once you receive the ad it will be ready for display. Folow the [MAX instructions](https://dash.applovin.com/documentation/mediation/android/getting-started/interstitials#showing-an-interstitial-ad) about how to do it. -### Rewarded Video +### Rewarded + +{% include mobile/rewarded-server-side-configuration.md %} Integration example: diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-pb.md b/prebid-mobile/modules/rendering/android-sdk-integration-pb.md index 4978264ef7..c684d949a8 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-pb.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-pb.md @@ -192,7 +192,9 @@ override fun onAdLoaded(interstitialAdUnit: InterstitialAdUnit) { } ``` -#### Rewarded Video +#### Rewarded + +{% include mobile/rewarded-server-side-configuration.md %} Integration example: From cfe4961ec6cec5ed949d78f0c6f1f780d303913d Mon Sep 17 00:00:00 2001 From: Olena Stepaniuk Date: Thu, 17 Oct 2024 12:20:11 +0300 Subject: [PATCH 07/20] doc: fix table --- _includes/mobile/rewarded-server-side-configuration.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md index 3445048bf2..2d8c7f96b5 100644 --- a/_includes/mobile/rewarded-server-side-configuration.md +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -4,6 +4,7 @@ You can pass some rewarded configuration properties from PBS to the SDK using th Here is the details about rewarded configuration object `rwdd`: +{: .table .table-bordered .table-striped } | Attribute | Required? | Description | Example | Type | |----------------------|----------------|-----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|----------| | `reward` | Yes | Metadata provided by the publisher to describe the reward | `{"type": "SuperDollars", "count": 10}` | object | From 90088a48a5120234b034f49d3f88593bb07424b0 Mon Sep 17 00:00:00 2001 From: Olena Stepaniuk Date: Thu, 17 Oct 2024 12:40:57 +0300 Subject: [PATCH 08/20] doc: table updates --- .../rewarded-server-side-configuration.md | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md index 2d8c7f96b5..98be7b598a 100644 --- a/_includes/mobile/rewarded-server-side-configuration.md +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -4,26 +4,27 @@ You can pass some rewarded configuration properties from PBS to the SDK using th Here is the details about rewarded configuration object `rwdd`: + {: .table .table-bordered .table-striped } -| Attribute | Required? | Description | Example | Type | -|----------------------|----------------|-----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|----------| -| `reward` | Yes | Metadata provided by the publisher to describe the reward | `{"type": "SuperDollars", "count": 10}` | object | -| `reward.type` | Yes | Type of the reward in the app's coins | `"SuperDollars"` | string | -| `reward.count` | Yes | Amount of coins | `10` | integer | -| `reward.ext` | No | For future extensions | `null` | object | -| `completion` | No | Describes the condition when the SDK should send a signal to the app that the user has earned the reward | `{ "video": { "endcard": { "time": 5 } } }` | object | -| `completion.banner` | No | Details for banner ad completion | `{ "time": 5, "event": "custom_event_url" }` | object | -| `completion.banner.time` | No | Period of time the banner ad is on screen | `5` | integer | -| `completion.banner.event` | No | URL with custom schema sent by the creative | `"rwdd://userDidEarnReward"` | string | -| `completion.video` | No | Details for video ad completion | `{ "endcard": { "time": 5 } }` | object | -| `completion.video.time` | No | Period of time the video ad is on screen | `10` | integer | -| `completion.video.playbackevent` | No | The playback event stage in the video | `"start"`, `"firstquartile"`, `"midpoint"`, `"thirdquartile"`, `"complete"` | string | -| `completion.video.endcard` | No | Properties for end card, same as banner ad | `{ "time": 5 }` | object | -| `completion.video.endcard.time` | No | Period of time the end card is on screen | `5` | integer | -| `completion.video.endcard.event` | No | URL with custom schema sent by the creative for end card | `"rwdd://userDidEarnReward"` | string | -| `close` | No | Describes close behavior after reward is earned | `{ "postrewardtime": 3, "action": "autoclose" }` | object | -| `close.postrewardtime` | No | Time interval (seconds) after reward event when SDK should close interstitial | `3` | integer | -| `close.action` | No | Action SDK should take: `"autoclose"` (close interstitial) or `"closebutton"` (show close button) | `"autoclose"` | string | +| Attribute | Description | Example | Type | +|----------------------|-----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|----------| +| `reward` | Metadata provided by the publisher to describe the reward | `{"type": "SuperDollars", "count": 10}` | object | +| `reward.type` | Type of the reward in the app's coins | `"SuperDollars"` | string | +| `reward.count` | Amount of coins | `10` | integer | +| `reward.ext` | For future extensions | `{"ext":{}}` | object | +| `completion` | Describes the condition when the SDK should send a signal to the app that the user has earned the reward | `{ "video": { "endcard": { "time": 5 } } }` | object | +| `completion.banner` | Details for banner ad completion | `{ "time": 5, "event": "custom_event_url" }` | object | +| `completion.banner.time` | Period of time the banner ad is on screen | `5` | integer | +| `completion.banner.event` | URL with custom schema sent by the creative | `"rwdd://userDidEarnReward"` | string | +| `completion.video` | Details for video ad completion | `{ "endcard": { "time": 5 } }` | object | +| `completion.video.time` | Period of time the video ad is on screen | `10` | integer | +| `completion.video.playbackevent` | The playback event stage in the video | `"start"`, `"firstquartile"`, `"midpoint"`, `"thirdquartile"`, `"complete"` | string | +| `completion.video.endcard` | Properties for end card, same as banner ad | `{ "time": 5 }` | object | +| `completion.video.endcard.time` | Period of time the end card is on screen | `5` | integer | +| `completion.video.endcard.event` | URL with custom schema sent by the creative for end card | `"rwdd://userDidEarnReward"` | string | +| `close` | Describes close behavior after reward is earned | `{ "postrewardtime": 3, "action": "autoclose" }` | object | +| `close.postrewardtime` | Time interval (seconds) after reward event when SDK should close interstitial | `3` | integer | +| `close.action` | Action SDK should take: `"autoclose"` (close interstitial) or `"closebutton"` (show close button) | `"autoclose"` | string | An example of a stored impression-level request: From df7d54488621d81629174032a3c40021427003ef Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Mon, 21 Oct 2024 10:11:23 +0300 Subject: [PATCH 09/20] doc: rephrase the intro text --- _includes/mobile/rewarded-server-side-configuration.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md index 98be7b598a..87683505af 100644 --- a/_includes/mobile/rewarded-server-side-configuration.md +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -1,11 +1,14 @@ -#### Prebid Server-side Rewarded Configuration +#### Server-side Rewarded Ad Unit Configuration -You can pass some rewarded configuration properties from PBS to the SDK using the `ext.prebid.passthrough` object, [supported](https://docs.prebid.org/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#request-passthrough) by Prebid Server, in the stored impression-level request. The rewarded configuration could be placed in `ext.prebid.passthrough[].rwdd` object. +The Rewarded Ad Unit assumes special behavior that should be configurable by the platform or publisher according to the application or ad experience guides. -Here is the details about rewarded configuration object `rwdd`: +Configuration of rewarded ad unit can be done using stored impression-level stored request and the [passthrough](https://docs.prebid.org/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#request-passthrough) feature of Prebid Server. + +Prebid SDK will search for a particular `rwdd` object in `ext.prebid.passthrough` of bid response to configure the behavior of the Rewarded Ad Unit. The following table describes the structure and usage purpose of `rwdd` configuration parameters. {: .table .table-bordered .table-striped } + | Attribute | Description | Example | Type | |----------------------|-----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|----------| | `reward` | Metadata provided by the publisher to describe the reward | `{"type": "SuperDollars", "count": 10}` | object | From 6a16aac7484458d3c50706655528e43eebd66196 Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Mon, 21 Oct 2024 11:20:14 +0300 Subject: [PATCH 10/20] doc: format table. POC code formatting inside the table --- .../rewarded-server-side-configuration.md | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md index 87683505af..00f6e0c003 100644 --- a/_includes/mobile/rewarded-server-side-configuration.md +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -9,28 +9,28 @@ Prebid SDK will search for a particular `rwdd` object in `ext.prebid.passthrough {: .table .table-bordered .table-striped } -| Attribute | Description | Example | Type | -|----------------------|-----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|----------| -| `reward` | Metadata provided by the publisher to describe the reward | `{"type": "SuperDollars", "count": 10}` | object | -| `reward.type` | Type of the reward in the app's coins | `"SuperDollars"` | string | -| `reward.count` | Amount of coins | `10` | integer | -| `reward.ext` | For future extensions | `{"ext":{}}` | object | -| `completion` | Describes the condition when the SDK should send a signal to the app that the user has earned the reward | `{ "video": { "endcard": { "time": 5 } } }` | object | -| `completion.banner` | Details for banner ad completion | `{ "time": 5, "event": "custom_event_url" }` | object | -| `completion.banner.time` | Period of time the banner ad is on screen | `5` | integer | -| `completion.banner.event` | URL with custom schema sent by the creative | `"rwdd://userDidEarnReward"` | string | -| `completion.video` | Details for video ad completion | `{ "endcard": { "time": 5 } }` | object | -| `completion.video.time` | Period of time the video ad is on screen | `10` | integer | -| `completion.video.playbackevent` | The playback event stage in the video | `"start"`, `"firstquartile"`, `"midpoint"`, `"thirdquartile"`, `"complete"` | string | -| `completion.video.endcard` | Properties for end card, same as banner ad | `{ "time": 5 }` | object | -| `completion.video.endcard.time` | Period of time the end card is on screen | `5` | integer | -| `completion.video.endcard.event` | URL with custom schema sent by the creative for end card | `"rwdd://userDidEarnReward"` | string | -| `close` | Describes close behavior after reward is earned | `{ "postrewardtime": 3, "action": "autoclose" }` | object | -| `close.postrewardtime` | Time interval (seconds) after reward event when SDK should close interstitial | `3` | integer | -| `close.action` | Action SDK should take: `"autoclose"` (close interstitial) or `"closebutton"` (show close button) | `"autoclose"` | string | +| Attribute | Type | Description | Example | +|-----------|------|-------------|---------| +| `reward` | object
(optional) | Metadata provided by the publisher to describe the reward. |
{
 "type": "SuperDollars",
 "count": 10
}
| +| `reward.type` | string | Type of the reward in the app's coins. | `"SuperDollars"` | +| `reward.count` | integer | Amount of coins. | `10` | +| `reward.ext` | object | For future extensions. | `{"ext":{}}` | +| `completion` | object
(optional) | Describes the condition when the SDK should send a signal to the app that the user has earned the reward. | `{ "video": { "endcard": { "time": 5 } } }` | +| `completion.banner` | object | Details for banner ad completion. | `{ "time": 5, "event": "custom_event_url" }` | +| `completion.banner.time` | integer | Period of time the banner ad is on screen. | `5` | +| `completion.banner.event` | string | URL with custom schema sent by the creative to indicate that the user did earn a reward. | `"rwdd://userDidEarnReward"` | +| `completion.video` | object | Details for video ad completion. | `{ "endcard": { "time": 5 } }` | +| `completion.video.time` | integer | Period of time the video ad is on screen. | `10` | +| `completion.video.playbackevent` | string | The playback event stage in the video. | `"start"`, `"firstquartile"`, `"midpoint"`, `"thirdquartile"`, `"complete"` | +| `completion.video.endcard` | object | Properties for the end card. | `{ "time": 5 }` | +| `completion.video.endcard.time` | integer | Period of time the end card is on screen. | `5` | +| `completion.video.endcard.event` | string | URL with custom schema sent by the creative for end card. | `"rwdd://userDidEarnReward"` | +| `close` | object
(optional) | Describes the ad close behavior after the reward is earned. | `{ "postrewardtime": 3, "action": "autoclose" }` | +| `close.postrewardtime` | integer | Time interval (seconds) after reward event when SDK should close interstitial. | `3` | +| `close.action` | string | Action SDK should make: `"autoclose"` (close interstitial) or `"closebutton"` (show close button) | `"autoclose"` | -An example of a stored impression-level request: +An example of an impression-level stored request: ```json { @@ -65,3 +65,5 @@ An example of a stored impression-level request: } } ``` + +More details about the SDK behavior according to the `rwdd` configuration you can find in the [GitHub Proposal](https://github.com/prebid/prebid-mobile-ios/pull/1058). From 34fee2ed48650533229a588fd69f5c35b053aec4 Mon Sep 17 00:00:00 2001 From: Yurii Date: Mon, 21 Oct 2024 15:12:44 +0300 Subject: [PATCH 11/20] doc: corrections --- _includes/mobile/rewarded-server-side-configuration.md | 1 - 1 file changed, 1 deletion(-) diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md index 00f6e0c003..5c9aa70aba 100644 --- a/_includes/mobile/rewarded-server-side-configuration.md +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -6,7 +6,6 @@ Configuration of rewarded ad unit can be done using stored impression-level stor Prebid SDK will search for a particular `rwdd` object in `ext.prebid.passthrough` of bid response to configure the behavior of the Rewarded Ad Unit. The following table describes the structure and usage purpose of `rwdd` configuration parameters. - {: .table .table-bordered .table-striped } | Attribute | Type | Description | Example | From 960bd8b34bbf9b362d951b04e12c84cafc781439 Mon Sep 17 00:00:00 2001 From: Yurii Date: Mon, 21 Oct 2024 16:05:25 +0300 Subject: [PATCH 12/20] doc: try code tag --- _includes/mobile/rewarded-server-side-configuration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md index 5c9aa70aba..5e646e3d05 100644 --- a/_includes/mobile/rewarded-server-side-configuration.md +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -4,13 +4,13 @@ The Rewarded Ad Unit assumes special behavior that should be configurable by the Configuration of rewarded ad unit can be done using stored impression-level stored request and the [passthrough](https://docs.prebid.org/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#request-passthrough) feature of Prebid Server. -Prebid SDK will search for a particular `rwdd` object in `ext.prebid.passthrough` of bid response to configure the behavior of the Rewarded Ad Unit. The following table describes the structure and usage purpose of `rwdd` configuration parameters. +Prebid SDK will search for a particular `rwdd` object in `ext.prebid.passthrough` of bid response to configure the behavior of the Rewarded Ad Unit. The following table describes the structure and usage purpose of `rwdd` configuration parameters. {: .table .table-bordered .table-striped } | Attribute | Type | Description | Example | |-----------|------|-------------|---------| -| `reward` | object
(optional) | Metadata provided by the publisher to describe the reward. |
{
 "type": "SuperDollars",
 "count": 10
}
| +| `reward` | object
(optional) | Metadata provided by the publisher to describe the reward. |{
 "type": "SuperDollars",
 "count": 10
}
| | `reward.type` | string | Type of the reward in the app's coins. | `"SuperDollars"` | | `reward.count` | integer | Amount of coins. | `10` | | `reward.ext` | object | For future extensions. | `{"ext":{}}` | From aeda227afc227eb3bca065ae9d0b70cd2dfb6141 Mon Sep 17 00:00:00 2001 From: Yurii Date: Mon, 21 Oct 2024 16:22:08 +0300 Subject: [PATCH 13/20] doc: use mode code blocks in table --- .../mobile/rewarded-server-side-configuration.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md index 5e646e3d05..01024e51b1 100644 --- a/_includes/mobile/rewarded-server-side-configuration.md +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -10,21 +10,21 @@ Prebid SDK will search for a particular `rwdd` object in `ext.prebid.passthrough | Attribute | Type | Description | Example | |-----------|------|-------------|---------| -| `reward` | object
(optional) | Metadata provided by the publisher to describe the reward. |{
 "type": "SuperDollars",
 "count": 10
}
| +| `reward` | object
(optional) | Metadata provided by the publisher to describe the reward. |{
 "type": "SuperDollars",
 "count": 10
}
| | `reward.type` | string | Type of the reward in the app's coins. | `"SuperDollars"` | | `reward.count` | integer | Amount of coins. | `10` | -| `reward.ext` | object | For future extensions. | `{"ext":{}}` | -| `completion` | object
(optional) | Describes the condition when the SDK should send a signal to the app that the user has earned the reward. | `{ "video": { "endcard": { "time": 5 } } }` | -| `completion.banner` | object | Details for banner ad completion. | `{ "time": 5, "event": "custom_event_url" }` | +| `reward.ext` | object | For future extensions. | {
 "ext": {}
} | +| `completion` | object
(optional) | Describes the condition when the SDK should send a signal to the app that the user has earned the reward. | {
 "video": {
  "endcard": {
   "time": 5
   }
  }
}
| +| `completion.banner` | object | Details for banner ad completion. | {
 "time": 5,
 "event": "custom_event_url"
}
| | `completion.banner.time` | integer | Period of time the banner ad is on screen. | `5` | | `completion.banner.event` | string | URL with custom schema sent by the creative to indicate that the user did earn a reward. | `"rwdd://userDidEarnReward"` | -| `completion.video` | object | Details for video ad completion. | `{ "endcard": { "time": 5 } }` | +| `completion.video` | object | Details for video ad completion. | {
 "endcard": {
  "time": 5
 }
}
| | `completion.video.time` | integer | Period of time the video ad is on screen. | `10` | | `completion.video.playbackevent` | string | The playback event stage in the video. | `"start"`, `"firstquartile"`, `"midpoint"`, `"thirdquartile"`, `"complete"` | -| `completion.video.endcard` | object | Properties for the end card. | `{ "time": 5 }` | +| `completion.video.endcard` | object | Properties for the end card. | {
 "time": 5
}
| | `completion.video.endcard.time` | integer | Period of time the end card is on screen. | `5` | | `completion.video.endcard.event` | string | URL with custom schema sent by the creative for end card. | `"rwdd://userDidEarnReward"` | -| `close` | object
(optional) | Describes the ad close behavior after the reward is earned. | `{ "postrewardtime": 3, "action": "autoclose" }` | +| `close` | object
(optional) | Describes the ad close behavior after the reward is earned. | {
 "postrewardtime": 3,
 "action": "autoclose"
}
| | `close.postrewardtime` | integer | Time interval (seconds) after reward event when SDK should close interstitial. | `3` | | `close.action` | string | Action SDK should make: `"autoclose"` (close interstitial) or `"closebutton"` (show close button) | `"autoclose"` | From d6e379cf7575e96a11a89009afa5de993558912a Mon Sep 17 00:00:00 2001 From: Yurii Date: Mon, 21 Oct 2024 16:55:55 +0300 Subject: [PATCH 14/20] doc: format text --- .../mobile/rewarded-server-side-configuration.md | 14 +++++++------- .../rendering/android-sdk-integration-admob.md | 14 +++++++------- .../rendering/android-sdk-integration-gam.md | 14 ++++++++------ .../rendering/android-sdk-integration-max.md | 15 ++++++++------- .../rendering/android-sdk-integration-pb.md | 10 +++++----- .../rendering/ios-sdk-integration-admob.md | 12 ++++++------ .../modules/rendering/ios-sdk-integration-gam.md | 12 ++++++------ .../modules/rendering/ios-sdk-integration-max.md | 14 +++++++------- .../modules/rendering/ios-sdk-integration-pb.md | 14 +++++++------- 9 files changed, 61 insertions(+), 58 deletions(-) diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md index 01024e51b1..b45a509190 100644 --- a/_includes/mobile/rewarded-server-side-configuration.md +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -1,4 +1,4 @@ -#### Server-side Rewarded Ad Unit Configuration +##### Server-side Rewarded Ad Unit Configuration The Rewarded Ad Unit assumes special behavior that should be configurable by the platform or publisher according to the application or ad experience guides. @@ -13,18 +13,18 @@ Prebid SDK will search for a particular `rwdd` object in `ext.prebid.passthrough | `reward` | object
(optional) | Metadata provided by the publisher to describe the reward. |{
 "type": "SuperDollars",
 "count": 10
}
| | `reward.type` | string | Type of the reward in the app's coins. | `"SuperDollars"` | | `reward.count` | integer | Amount of coins. | `10` | -| `reward.ext` | object | For future extensions. | {
 "ext": {}
} | -| `completion` | object
(optional) | Describes the condition when the SDK should send a signal to the app that the user has earned the reward. | {
 "video": {
  "endcard": {
   "time": 5
   }
  }
}
| -| `completion.banner` | object | Details for banner ad completion. | {
 "time": 5,
 "event": "custom_event_url"
}
| +| `reward.ext` | object | For future extensions. | {
 "ext": {}
}
| +| `completion` | object
(optional) | Describes the condition when the SDK should send a signal to the app that the user has earned the reward. |{
 "video": {
  "endcard": {
   "time": 5
   }
  }
}
| +| `completion.banner` | object | Details for banner ad completion. |{
 "time": 5,
 "event": "custom_event_url"
}
| | `completion.banner.time` | integer | Period of time the banner ad is on screen. | `5` | | `completion.banner.event` | string | URL with custom schema sent by the creative to indicate that the user did earn a reward. | `"rwdd://userDidEarnReward"` | -| `completion.video` | object | Details for video ad completion. | {
 "endcard": {
  "time": 5
 }
}
| +| `completion.video` | object | Details for video ad completion. |{
 "endcard": {
  "time": 5
 }
}
| | `completion.video.time` | integer | Period of time the video ad is on screen. | `10` | | `completion.video.playbackevent` | string | The playback event stage in the video. | `"start"`, `"firstquartile"`, `"midpoint"`, `"thirdquartile"`, `"complete"` | -| `completion.video.endcard` | object | Properties for the end card. | {
 "time": 5
}
| +| `completion.video.endcard` | object | Properties for the end card. |{
 "time": 5
}
| | `completion.video.endcard.time` | integer | Period of time the end card is on screen. | `5` | | `completion.video.endcard.event` | string | URL with custom schema sent by the creative for end card. | `"rwdd://userDidEarnReward"` | -| `close` | object
(optional) | Describes the ad close behavior after the reward is earned. | {
 "postrewardtime": 3,
 "action": "autoclose"
}
| +| `close` | object
(optional) | Describes the ad close behavior after the reward is earned. |{
 "postrewardtime": 3,
 "action": "autoclose"
}
| | `close.postrewardtime` | integer | Time interval (seconds) after reward event when SDK should close interstitial. | `3` | | `close.action` | string | Action SDK should make: `"autoclose"` (close interstitial) or `"closebutton"` (show close button) | `"autoclose"` | diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-admob.md b/prebid-mobile/modules/rendering/android-sdk-integration-admob.md index 3366b8e5e1..7e7d33f44c 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-admob.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-admob.md @@ -190,7 +190,7 @@ Once you receive the ad it will be ready for display. You can show interstitial {% include mobile/rewarded-server-side-configuration.md %} -Integration example: +##### Integration example ```kotlin // 1. Create AsRequest @@ -232,32 +232,32 @@ adUnit?.fetchDemand { result -> } ``` -#### Step 1: Create AdRequest +##### Step 1: Create AdRequest {:.no_toc} This step is the same as for the original [AdMob integration](https://developers.google.com/admob/android/rewarded). You don't have to make any modifications here. -#### Step 2: Create AdMobRewardedMediationUtils +##### Step 2: Create AdMobRewardedMediationUtils {:.no_toc} The `AdMobRewardedMediationUtils` is a helper class, which performs certain utilty work for the `MediationInterstitialAdUnit`, like passing the targeting keywords to adapters. -#### Step 3: Create MediationRewardedVideoAdUnit +##### Step 3: Create MediationRewardedVideoAdUnit {:.no_toc} The `MediationRewardedVideoAdUnit` is part of the prebid mediation API. This class is responsible for making bid request and managing the winning bid. -#### Step 4: Make a bid request +##### Step 4: Make a bid request {:.no_toc} The `fetchDemand` method makes a bid request to the prebid server and provides a result in a completion handler. -#### Step 5: Make an ad request +##### Step 5: Make an ad request {:.no_toc} Now you should just make a regular AdMob's ad request. Evetything else will be handled by GMA SDK and prebid adapters. -#### Step 6: Display an ad +##### Step 6: Display an ad {:.no_toc} Once you receive the ad it will be ready for display. You can show interstitial right in the listener or later according to the app logic. diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md index 48309aa2a8..d0c5be8053 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md @@ -219,6 +219,8 @@ Integration: {% include mobile/rewarded-server-side-configuration.md %} +##### Integration example + Displaying the **Rewarded Ad** is the same as displaying an Interstitial Ad, but it adds ability to handle reward. To display a Rewarded Ad follow these steps: ```kotlin @@ -246,7 +248,7 @@ Pay attention that the `loadAd()` should be called on the main thread. {% include /alerts/alert_warning.html content=warning_note %} -#### Step 1: Create Event Handler +##### Step 1: Create Event Handler {:.no_toc} GAM's event handlers are special containers that wrap the GAM Ad Views and help to manage collaboration between GAM and Prebid views. @@ -255,7 +257,7 @@ GAM's event handlers are special containers that wrap the GAM Ad Views and help To create an event handler you should provide a GAM Ad Unit. -#### Step 2: Create Rewarded Ad Unit +##### Step 2: Create Rewarded Ad Unit {:.no_toc} **RewardedAdUnit** - is an object that will load and display the particular ad. To create it you should provide @@ -265,12 +267,12 @@ To create an event handler you should provide a GAM Ad Unit. You can also assign the listener for processing ad events. -#### Step 3: Load the Ad +##### Step 3: Load the Ad {:.no_toc} Call the `loadAd()` method to make a bid request. The ad unit will load an ad and will wait for explicit instructions to display the Rewarded Ad. -#### Step 4: Display the Ad when it is ready +##### Step 4: Display the Ad when it is ready {:.no_toc} The most convenient way to determine if the ad is ready for displaying is to listen for the listener method: @@ -281,7 +283,7 @@ override fun onAdLoaded(rewardedAdUnit: RewardedAdUnit) { } ``` -#### Step 5: Handle a reward +##### Step 5: Handle a reward {:.no_toc} Handle earning the reward in the appropriate method. Important: a reward can be null. @@ -297,7 +299,7 @@ override fun onUserEarnedReward(rewardedAdUnit: RewardedAdUnit?, reward: Reward? } ``` -### Migrating rewarded video from a Bidding-Only integration +#### Migrating rewarded video from a Bidding-Only integration {:.no_toc} GAM setup: diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-max.md b/prebid-mobile/modules/rendering/android-sdk-integration-max.md index 24d9041d40..49103b99b6 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-max.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-max.md @@ -165,7 +165,7 @@ Once you receive the ad it will be ready for display. Folow the [MAX instruction {% include mobile/rewarded-server-side-configuration.md %} -Integration example: +##### Integration example: ```kotlin // 1. Get an instance of MaxRewardedAd @@ -194,35 +194,36 @@ The way of displaying the rewarded ad is the same as for the Interstitial Ad. To be notified when user earns a reward follow the [MAX intructions](https://dash.applovin.com/documentation/mediation/android/getting-started/rewarded-ads#accessing-the-amount-and-currency-for-a-rewarded-ad). -#### Step 1: Get an instance of MaxRewardedAd +##### Step 1: Get an instance of MaxRewardedAd {:.no_toc} This step is totally the same as for original [MAX integration](https://dash.applovin.com/documentation/mediation/android/getting-started/rewarded-ads). You don't have to make any modifications here. -#### Step 2: Create MaxMediationRewardedUtils +##### Step 2: Create MaxMediationRewardedUtils {:.no_toc} The `MaxMediationRewardedUtils` is a helper class, which performs certain utilty work for the `MediationRewardedVideoAdUnit`, like passing the targeting keywords to the adapters. -#### Step 3: Create MediationRewardedVideoAdUnit +##### Step 3: Create MediationRewardedVideoAdUnit {:.no_toc} The `MediationRewardeVideoAdUnit` is part of the prebid mediation API. This class is responsible for making a bid request and providing a winning bid and targeting keywords to the adapters. -#### Step 4: Make bid request +##### Step 4: Make bid request {:.no_toc} The `fetchDemand` method makes a bid request to the prebid server and provides a result in a completion handler. -#### Step 5: Make an Ad Reuest +##### Step 5: Make an Ad Reuest {:.no_toc} Now you should make a regular MAX's ad request. Everything else will be handled by GMA SDK and prebid adapters. -#### Steps 6: Display an ad +##### Steps 6: Display an ad {:.no_toc} Once the rewarded ad is received you can display it. Folow the [MAX instructions](https://dash.applovin.com/documentation/mediation/android/getting-started/rewarded-ads#showing-a-rewarded-ad) for the details. + ### Native Ads Integration example: diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-pb.md b/prebid-mobile/modules/rendering/android-sdk-integration-pb.md index c684d949a8..e0405e31c8 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-pb.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-pb.md @@ -196,7 +196,7 @@ override fun onAdLoaded(interstitialAdUnit: InterstitialAdUnit) { {% include mobile/rewarded-server-side-configuration.md %} -Integration example: +##### Integration example ``` kotlin // 1. Create an Ad Unit @@ -217,19 +217,19 @@ Pay attention that the `loadAd()` should be called on the main thread. {% endcapture %} {% include /alerts/alert_warning.html content=warning_note %} -##### Step 1: Create a Rewarded Ad Unit +###### Step 1: Create a Rewarded Ad Unit {:.no_toc} Create the `RewardedAdUnit` object with parameters: - `adUnitId` - an ID of Stored Impression on the Prebid server. -##### Step 2: Load the Ad +###### Step 2: Load the Ad {:.no_toc} Call the `loadAd()` to make a bid request. -##### Step 3: Show the Ad when it is ready +###### Step 3: Show the Ad when it is ready {:.no_toc} Wait until the ad is loaded and present it to the user in any suitable time. @@ -240,7 +240,7 @@ override fun onAdLoaded(rewardedAdUnit: RewardedAdUnit) { } ``` -#### Step 4: Handle a reward +##### Step 4: Handle a reward {:.no_toc} Handle earning a reward in the appropriate method. Important: a reward can be null. diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md b/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md index 677bd51223..f21a8f15b9 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md @@ -172,7 +172,7 @@ Once you receive the ad it will be ready for display. Follow the [AdMob instruct {% include mobile/rewarded-server-side-configuration.md %} -Integration example: +##### Integration example ```swift // 1. Create GADRequest @@ -212,27 +212,27 @@ The process of displaying the rewarded ad is the same as for displaying an Inter To be notified when a user earns a reward follow the [AdMob intructions](https://developers.google.com/admob/ios/rewarded#show_the_ad). -#### Step 1: Create GADRequest +##### Step 1: Create GADRequest {:.no_toc} This step is the same as for the original [AdMob integration](https://developers.google.com/admob/ios/rewarded). You don't have to make any modifications here. -#### Step 2: Create MediationRewardedAdUnit +##### Step 2: Create MediationRewardedAdUnit {:.no_toc} The `AdMobMediationRewardedUtils` is a helper class, which performs certain utilty work for the `MediationRewardedAdUnit`, like passing the targeting keywords to the adapters. -#### Step 3: Create MediationInterstitialAdUnit +##### Step 3: Create MediationInterstitialAdUnit {:.no_toc} The `MediationRewardedAdUnit` is part of the Prebid mediation API. This class is responsible for making a bid request and providing a winning bid and targeting keywords to the adapters. -#### Step 4: Make bid request +##### Step 4: Make bid request {:.no_toc} The `fetchDemand` method makes a bid request to the a Prebid server and provides a result in a completion handler. -#### Step 5: Make an Ad Request +##### Step 5: Make an Ad Request {:.no_toc} Make a regular AdMob's ad request. Everything else will be handled by GMA SDK and prebid adapters. diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md b/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md index 06a6298f25..2185f636b2 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md @@ -210,7 +210,7 @@ Integration: {% include mobile/rewarded-server-side-configuration.md %} -Integration example: +##### Integration example ```swift // 1. Create an Event Handler @@ -241,12 +241,12 @@ To be notified when a user earns a reward - implement the method of `RewardedAdU func rewardedAdUserDidEarnReward(_ rewardedAd: RewardedAdUnit, reward: PrebidReward) {} ``` -#### Step 1: Create Event Handler +##### Step 1: Create Event Handler {:.no_toc} To create an event handler you should provide a **GAM Ad Unit ID**. -#### Step 2: Create Rewarded Ad Unit +##### Step 2: Create Rewarded Ad Unit {:.no_toc} Create the `RewardedAdUnit` object with parameters: @@ -254,12 +254,12 @@ Create the `RewardedAdUnit` object with parameters: - `configID` - an ID of Stored Impression on the Prebid server - `eventHandler` - the instance of rewarded event handler -#### Step 3: Load the Ad +##### Step 3: Load the Ad {:.no_toc} Call the `loadAd()` method which will make a bid request to Prebid server. -#### Step 4: Show the Ad when it is ready +##### Step 4: Show the Ad when it is ready {:.no_toc} Wait for the ad to load and display it to the user in any suitable time. @@ -272,7 +272,7 @@ func rewardedAdDidReceiveAd(_ rewardedAd: RewardedAdUnit) { } ``` -##### Step 4: Handle the reward +###### Step 4: Handle the reward {:.no_toc} Handle the reward in the appropriate method. diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-max.md b/prebid-mobile/modules/rendering/ios-sdk-integration-max.md index 7d4ab1d099..789e628521 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-max.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-max.md @@ -152,7 +152,7 @@ Once you receive the ad it will be ready for display. Follow the [MAX instructio {% include mobile/rewarded-server-side-configuration.md %} -Integration example: +##### Integration example ```swift // 1. Get an instance of MARewardedAd @@ -178,32 +178,32 @@ The process for displaying the rewarded ad is the same as for displaying the Int To be notified when a user earns a reward follow the [MAX intructions](https://dash.applovin.com/documentation/mediation/ios/getting-started/rewarded-ads#loading-a-rewarded-ad). -#### Step 1: Get an instance of MARewardedAd +##### Step 1: Get an instance of MARewardedAd {:.no_toc} This step is the same as for the original [MAX integration](https://dash.applovin.com/documentation/mediation/ios/getting-started/rewarded-ads). You don't have to make any modifications here. -#### Step 2: Create MAXMediationRewardedUtils +##### Step 2: Create MAXMediationRewardedUtils {:.no_toc} The `MAXMediationRewardedUtils` is a helper class, which performs certain utilty work for the `MediationRewardedAdUnit`, like passing the targeting keywords to the adapters. -#### Step 3: Create MediationRewardedAdUnit +##### Step 3: Create MediationRewardedAdUnit {:.no_toc} The `MediationRewardedAdUnit` is a part of the Prebid Mediation API. This class is responsible for making a bid request and providing a winning bid and targeting keywords to the adapters. -#### Step 4: Make bid request +##### Step 4: Make bid request {:.no_toc} The `fetchDemand` method makes a bid request to the Prebid Server and provides a result in a completion handler. -#### Step 5: Make an Ad Reuest +##### Step 5: Make an Ad Reuest {:.no_toc} Make a regular MAX's ad request. Everything else will be handled by GMA SDK and prebid adapters. -#### Steps 6: Display an ad +##### Steps 6: Display an ad {:.no_toc} Once the rewarded ad is received you can display it. Follow the [MAX instructions](https://dash.applovin.com/documentation/mediation/ios/getting-started/rewarded-ads#showing-a-rewarded-ad) for the details. diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md b/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md index 52bb3772b8..f27ec3c311 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md @@ -196,7 +196,7 @@ func interstitialDidReceiveAd(_ interstitial: InterstitialRenderingAdUnit) { {% include mobile/rewarded-server-side-configuration.md %} -Integration example: +##### Integration example: ``` swift // 1. Create an Ad Unit @@ -214,10 +214,10 @@ if rewardedAd.isReady { } ``` -##### Step 1: Create Rewarded Ad Unit +###### Step 1: Create Rewarded Ad Unit {:.no_toc} -Create the `RewardedAdUnit` object with parameter: +Create the `RewardedAdUnit` object with the parameter: - `configID` - an ID of Stored Impression on the Prebid Server @@ -227,15 +227,15 @@ You can also customize ad unit by setting additional properties: - `bannerParameters` - the banner parameters used for configuring ad unit; - `videoParameters` - the video parameters used for configuring ad unit. -##### Step 2: Load the Ad +###### Step 2: Load the Ad {:.no_toc} Call the `loadAd()` method which will make a bid request to Prebid server. -##### Step 3: Show the Ad when it is ready +###### Step 3: Show the Ad when it is ready {:.no_toc} -Wait until the ad will be loaded and present it to the user in any suitable time. +Wait until the ad is loaded and present it to the user at any suitable time. ``` swift // MARK: RewardedAdUnitDelegate @@ -248,7 +248,7 @@ func rewardedAdDidReceiveAd(_ rewardedAd: RewardedAdUnit) { } ``` -##### Step 4: Handle the reward +###### Step 4: Handle the reward {:.no_toc} Handle the reward in the appropriate method. From 5f931ee70b3f2c491b8e536a3015d4759df94ecc Mon Sep 17 00:00:00 2001 From: Olena Stepaniuk Date: Mon, 11 Nov 2024 13:33:45 +0200 Subject: [PATCH 15/20] doc: corrections in rewarded-server-side-configuration.md --- .../mobile/rewarded-server-side-configuration.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md index b45a509190..75042e7e27 100644 --- a/_includes/mobile/rewarded-server-side-configuration.md +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -4,7 +4,7 @@ The Rewarded Ad Unit assumes special behavior that should be configurable by the Configuration of rewarded ad unit can be done using stored impression-level stored request and the [passthrough](https://docs.prebid.org/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#request-passthrough) feature of Prebid Server. -Prebid SDK will search for a particular `rwdd` object in `ext.prebid.passthrough` of bid response to configure the behavior of the Rewarded Ad Unit. The following table describes the structure and usage purpose of `rwdd` configuration parameters. +Prebid SDK will search for a particular `rwdd` object in `$.seatbid.bid.ext.prebid.passthrough` of bid response to configure the behavior of the Rewarded Ad Unit. The following table describes the structure and usage purpose of `rwdd` configuration parameters. {: .table .table-bordered .table-striped } @@ -33,11 +33,16 @@ An example of an impression-level stored request: ```json { + "video": { + "h": 480, + "w": 320, + "mimes": ["video/mp4"], + "linearity": 1, + "placement": 2, + "playbackmethod": [2] + }, "ext": { "prebid": { - "storedauctionresponse": { - "id": "prebid-response-video-rewarded-endcard" - }, "passthrough": [ { "type": "prebidmobilesdk", From f0097790b1f1b8c6c9e83698cb2628dcfbf6d94b Mon Sep 17 00:00:00 2001 From: Olena Stepaniuk Date: Mon, 11 Nov 2024 13:55:07 +0200 Subject: [PATCH 16/20] doc: fix linting errors --- .../modules/rendering/android-sdk-integration-admob.md | 2 +- .../modules/rendering/android-sdk-integration-gam.md | 5 ++--- .../modules/rendering/android-sdk-integration-max.md | 2 +- .../modules/rendering/ios-sdk-integration-admob.md | 2 +- prebid-mobile/modules/rendering/ios-sdk-integration-gam.md | 2 +- prebid-mobile/modules/rendering/ios-sdk-integration-max.md | 2 +- prebid-mobile/modules/rendering/ios-sdk-integration-pb.md | 2 +- prebid-mobile/modules/rendering/modules-rendering.md | 6 +----- prebid-mobile/pbm-api/android/code-integration-android.md | 4 ++-- prebid-mobile/pbm-api/ios/code-integration-ios.md | 4 ++-- 10 files changed, 13 insertions(+), 18 deletions(-) diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-admob.md b/prebid-mobile/modules/rendering/android-sdk-integration-admob.md index 7e7d33f44c..077b9acb7b 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-admob.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-admob.md @@ -190,7 +190,7 @@ Once you receive the ad it will be ready for display. You can show interstitial {% include mobile/rewarded-server-side-configuration.md %} -##### Integration example +#### Integration example ```kotlin // 1. Create AsRequest diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md index d0c5be8053..4b682a501d 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-gam.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-gam.md @@ -219,7 +219,7 @@ Integration: {% include mobile/rewarded-server-side-configuration.md %} -##### Integration example +#### Integration example Displaying the **Rewarded Ad** is the same as displaying an Interstitial Ad, but it adds ability to handle reward. To display a Rewarded Ad follow these steps: @@ -247,7 +247,6 @@ Pay attention that the `loadAd()` should be called on the main thread. {% endcapture %} {% include /alerts/alert_warning.html content=warning_note %} - ##### Step 1: Create Event Handler {:.no_toc} @@ -313,7 +312,7 @@ Integration: 1. Replace the `RewardedAd` with `RewardedAdUnit`. 2. Implement the interface for `RewardedAdUnitListener`. 3. Remove the original `RewardedVideoAdUnit`. -4. Follow the instructions to integrate [Rewarded API](#rewarded-video). +4. Follow the instructions to integrate [Rewarded API](#rewarded). ## Additional Ad Unit Configuration diff --git a/prebid-mobile/modules/rendering/android-sdk-integration-max.md b/prebid-mobile/modules/rendering/android-sdk-integration-max.md index 49103b99b6..e05a58c7df 100644 --- a/prebid-mobile/modules/rendering/android-sdk-integration-max.md +++ b/prebid-mobile/modules/rendering/android-sdk-integration-max.md @@ -165,7 +165,7 @@ Once you receive the ad it will be ready for display. Folow the [MAX instruction {% include mobile/rewarded-server-side-configuration.md %} -##### Integration example: +#### Integration example ```kotlin // 1. Get an instance of MaxRewardedAd diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md b/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md index f21a8f15b9..a7e6076466 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md @@ -172,7 +172,7 @@ Once you receive the ad it will be ready for display. Follow the [AdMob instruct {% include mobile/rewarded-server-side-configuration.md %} -##### Integration example +#### Integration example ```swift // 1. Create GADRequest diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md b/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md index 2185f636b2..bd9aca4c98 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-gam.md @@ -210,7 +210,7 @@ Integration: {% include mobile/rewarded-server-side-configuration.md %} -##### Integration example +#### Integration example ```swift // 1. Create an Event Handler diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-max.md b/prebid-mobile/modules/rendering/ios-sdk-integration-max.md index 789e628521..1a4a63ee3a 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-max.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-max.md @@ -152,7 +152,7 @@ Once you receive the ad it will be ready for display. Follow the [MAX instructio {% include mobile/rewarded-server-side-configuration.md %} -##### Integration example +#### Integration example ```swift // 1. Get an instance of MARewardedAd diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md b/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md index f27ec3c311..c52ec93119 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-pb.md @@ -196,7 +196,7 @@ func interstitialDidReceiveAd(_ interstitial: InterstitialRenderingAdUnit) { {% include mobile/rewarded-server-side-configuration.md %} -##### Integration example: +##### Integration example ``` swift // 1. Create an Ad Unit diff --git a/prebid-mobile/modules/rendering/modules-rendering.md b/prebid-mobile/modules/rendering/modules-rendering.md index 33cb6004a8..0895192aba 100644 --- a/prebid-mobile/modules/rendering/modules-rendering.md +++ b/prebid-mobile/modules/rendering/modules-rendering.md @@ -17,7 +17,6 @@ Starting with `1.14.0-beta1` Prebid mobile supports integration with **AdMob**. Starting with `2.0.0` Prebid mobile supports integration with **AppLovin MAX**. - ## Supported Ad Formats Prebid Mobile rendering supports the following ad formats: @@ -27,7 +26,4 @@ Prebid Mobile rendering supports the following ad formats: * Display Interstitial * Video Interstitial * Display Rewarded -* Video Rewarded - - - +* Video Rewarded \ No newline at end of file diff --git a/prebid-mobile/pbm-api/android/code-integration-android.md b/prebid-mobile/pbm-api/android/code-integration-android.md index 672467c050..d052606119 100644 --- a/prebid-mobile/pbm-api/android/code-integration-android.md +++ b/prebid-mobile/pbm-api/android/code-integration-android.md @@ -383,8 +383,8 @@ In the table below, you can find Prebid's test IDs that are used in the Demo App |`prebid-demo-video-interstitial-320-480-original-api`|**Video Interstitial** (Original API)|Returns a stored response that contains a Video Interstitial 320x480 winning bid.| |`prebid-demo-video-interstitial-320-480`|**Video Interstitial** (Rendering API)|Returns a stored response that contains a Video Interstitial 320x480 winning bid.| |`prebid-demo-video-rewarded-320-480-original-api`|**Rewarded Video** (Original API)|Returns a stored response that contains a Rewarded Video 320x480 winning bid.| -|`prebid-demo-banner-rewarded-time`|**Rewarded HTML** Returns a stored response that contains a Rewarded HTML 320x480 winning bid with rewarded configuration.| -|`prebid-demo-video-rewarded-endcard-time`|**Rewarded Video** Returns a stored response that contains a Rewarded Video 320x480 winning bid with rewarded configuration.| +|`prebid-demo-banner-rewarded-time`|**Rewarded HTML** Returns a stored response that contains a Rewarded HTML 320x480 winning bid with rewarded configuration.|| +|`prebid-demo-video-rewarded-endcard-time`|**Rewarded Video** Returns a stored response that contains a Rewarded Video 320x480 winning bid with rewarded configuration.|| |`sample_video_response`|**Instream Video**|Returns a stored response that contains a Video 320x480 winning bid. Note: on Android we have an [issue](https://github.com/prebid/prebid-mobile-android/issues/517) with Instream Video demo example. When it is fixed the config id will be updated to the new one.| |`prebid-demo-banner-native-styles`|**Native Styles**|Returns a stored response that contains a Native winning bid.| |`prebid-demo-banner-native-styles`|**In-App Native**|Returns a stored response that contains a Native winning bid.| diff --git a/prebid-mobile/pbm-api/ios/code-integration-ios.md b/prebid-mobile/pbm-api/ios/code-integration-ios.md index 6bac7fb7db..1893297357 100644 --- a/prebid-mobile/pbm-api/ios/code-integration-ios.md +++ b/prebid-mobile/pbm-api/ios/code-integration-ios.md @@ -364,8 +364,8 @@ In the table below, you can find Prebid's test IDs that are used in the Demo App |`prebid-demo-video-interstitial-320-480-original-api`|**Video Interstitial** (Original API)|Returns a stored response that contains a Video Interstitial 320x480 winning bid.| |`prebid-demo-video-interstitial-320-480`|**Video Interstitial** (Rendering API)|Returns a stored response that contains a Video Interstitial 320x480 winning bid.| |`prebid-demo-video-rewarded-320-480-original-api`|**Rewarded Video** (Original API)|Returns a stored response that contains a Rewarded Video 320x480 winning bid.| -|`prebid-demo-banner-rewarded-time`|**Rewarded HTML** Returns a stored response that contains a Rewarded HTML 320x480 winning bid with rewarded configuration.| -|`prebid-demo-video-rewarded-endcard-time`|**Rewarded Video** Returns a stored response that contains a Rewarded Video 320x480 winning bid with rewarded configuration.| +|`prebid-demo-banner-rewarded-time`|**Rewarded HTML** Returns a stored response that contains a Rewarded HTML 320x480 winning bid with rewarded configuration.|| +|`prebid-demo-video-rewarded-endcard-time`|**Rewarded Video** Returns a stored response that contains a Rewarded Video 320x480 winning bid with rewarded configuration.|| |`prebid-demo-video-interstitial-320-480`|**Instream Video**|Returns a stored response that contains a Video 320x480 winning bid.| |`prebid-demo-banner-native-styles`|**Native Styles**|Returns a stored response that contains a Native winning bid.| |`prebid-demo-banner-native-styles`|**In-App Native**|Returns a stored response that contains a Native winning bid.| From b5d58bb0f2677775a4f69287b09bb362d5e5d8aa Mon Sep 17 00:00:00 2001 From: Olena Stepaniuk Date: Mon, 11 Nov 2024 14:03:21 +0200 Subject: [PATCH 17/20] doc: fix linting error --- prebid-mobile/modules/rendering/modules-rendering.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prebid-mobile/modules/rendering/modules-rendering.md b/prebid-mobile/modules/rendering/modules-rendering.md index 0895192aba..6b1f2cab98 100644 --- a/prebid-mobile/modules/rendering/modules-rendering.md +++ b/prebid-mobile/modules/rendering/modules-rendering.md @@ -26,4 +26,4 @@ Prebid Mobile rendering supports the following ad formats: * Display Interstitial * Video Interstitial * Display Rewarded -* Video Rewarded \ No newline at end of file +* Video Rewarded From 42e53f21bc1f376b38470fbff4e898b1b58e9dd9 Mon Sep 17 00:00:00 2001 From: Olena Stepaniuk Date: Mon, 11 Nov 2024 16:00:21 +0200 Subject: [PATCH 18/20] doc: update rewarded-server-side-configuration.md --- _includes/mobile/rewarded-server-side-configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md index 75042e7e27..af606f8af7 100644 --- a/_includes/mobile/rewarded-server-side-configuration.md +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -2,7 +2,7 @@ The Rewarded Ad Unit assumes special behavior that should be configurable by the platform or publisher according to the application or ad experience guides. -Configuration of rewarded ad unit can be done using stored impression-level stored request and the [passthrough](https://docs.prebid.org/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#request-passthrough) feature of Prebid Server. +Configuration of rewarded ad unit can be done by defining the Prebid Server [passthrough extension](https://docs.prebid.org/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#request-passthrough) and using a stored impression-level request on the server. Prebid SDK will search for a particular `rwdd` object in `$.seatbid.bid.ext.prebid.passthrough` of bid response to configure the behavior of the Rewarded Ad Unit. The following table describes the structure and usage purpose of `rwdd` configuration parameters. From beaf312193e8b1e8e2cfe1f8b73d64cb1ed4ff3b Mon Sep 17 00:00:00 2001 From: Olena Stepaniuk Date: Wed, 13 Nov 2024 12:20:38 +0200 Subject: [PATCH 19/20] doc: corrections in rewarded-server-side-configuration.md --- _includes/mobile/rewarded-server-side-configuration.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/_includes/mobile/rewarded-server-side-configuration.md b/_includes/mobile/rewarded-server-side-configuration.md index af606f8af7..12ce47d281 100644 --- a/_includes/mobile/rewarded-server-side-configuration.md +++ b/_includes/mobile/rewarded-server-side-configuration.md @@ -2,12 +2,11 @@ The Rewarded Ad Unit assumes special behavior that should be configurable by the platform or publisher according to the application or ad experience guides. -Configuration of rewarded ad unit can be done by defining the Prebid Server [passthrough extension](https://docs.prebid.org/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#request-passthrough) and using a stored impression-level request on the server. +Configuration of rewarded ad unit can be done by defining the Prebid Server [passthrough extension](https://docs.prebid.org/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#request-passthrough) or by using a stored impression-level request on the server. -Prebid SDK will search for a particular `rwdd` object in `$.seatbid.bid.ext.prebid.passthrough` of bid response to configure the behavior of the Rewarded Ad Unit. The following table describes the structure and usage purpose of `rwdd` configuration parameters. +Prebid SDK will search for a particular `rwdd` object in `$.seatbid.bid.ext.prebid.passthrough` of bid response to configure the behavior and rendering of the Rewarded Ad Unit. The following table describes the structure and usage purpose of `rwdd` configuration parameters. {: .table .table-bordered .table-striped } - | Attribute | Type | Description | Example | |-----------|------|-------------|---------| | `reward` | object
(optional) | Metadata provided by the publisher to describe the reward. |{
 "type": "SuperDollars",
 "count": 10
}
| From 2681ed97705f9a27c54e6515994569372ba24f7b Mon Sep 17 00:00:00 2001 From: Olena Stepaniuk Date: Thu, 20 Mar 2025 17:16:48 +0200 Subject: [PATCH 20/20] docs: update ios-sdk-integration-admob.md --- .../modules/rendering/ios-sdk-integration-admob.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md b/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md index fe7d1386e2..4d0cab980d 100644 --- a/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md +++ b/prebid-mobile/modules/rendering/ios-sdk-integration-admob.md @@ -320,27 +320,27 @@ The process of displaying the rewarded ad is the same as for displaying an Inter To be notified when a user earns a reward follow the [AdMob intructions](https://developers.google.com/admob/ios/rewarded#show_the_ad). -##### Step 1: Create Request +#### Step 1: Create Request {:.no_toc} This step is the same as for the original [AdMob integration](https://developers.google.com/admob/ios/rewarded). You don't have to make any modifications here. -##### Step 2: Create MediationRewardedAdUnit +#### Step 2: Create MediationRewardedAdUnit {:.no_toc} The `AdMobMediationRewardedUtils` is a helper class, which performs certain utilty work for the `MediationRewardedAdUnit`, like passing the targeting keywords to the adapters. -##### Step 3: Create MediationInterstitialAdUnit +#### Step 3: Create MediationInterstitialAdUnit {:.no_toc} The `MediationRewardedAdUnit` is part of the Prebid mediation API. This class is responsible for making a bid request and providing a winning bid and targeting keywords to the adapters. -##### Step 4: Make bid request +#### Step 4: Make bid request {:.no_toc} The `fetchDemand` method makes a bid request to the a Prebid server and provides a result in a completion handler. -##### Step 5: Make an Ad Request +#### Step 5: Make an Ad Request {:.no_toc} Make a regular AdMob's ad request. Everything else will be handled by GMA SDK and prebid adapters.