From 23981976c068edd74da8b02537deb7607382fcfb Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Fri, 4 Apr 2025 10:10:27 +0300 Subject: [PATCH 01/16] doc: prepare the page --- _data/sidebar.yml | 16 +++++ .../rendering/combined-ui-ux-policy.md | 64 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 prebid-mobile/modules/rendering/combined-ui-ux-policy.md diff --git a/_data/sidebar.yml b/_data/sidebar.yml index cd87d273dc..e5bbc339b3 100644 --- a/_data/sidebar.yml +++ b/_data/sidebar.yml @@ -815,6 +815,14 @@ sectionTitle: subgroup: 2 +- sbSecId: 2 + title: UI/UX Policy + link: /prebid-mobile/modules/rendering/combined-ui-ux-policy.html + isHeader: 0 + isSectionHeader: 0 + sectionTitle: + subgroup: 2 + - sbSecId: 2 title: Ad Experience Controls link: /prebid-mobile/modules/rendering/combined-ad-experience-controls.html @@ -919,6 +927,14 @@ isSectionHeader: 0 sectionTitle: subgroup: 3 + +- sbSecId: 2 + title: UI UX Policy + link: /prebid-mobile/modules/rendering/combined-ui-ux-policy.html + isHeader: 0 + isSectionHeader: 0 + sectionTitle: + subgroup: 3 - sbSecId: 2 title: Ad Experience Controls diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md new file mode 100644 index 0000000000..30daffbbcb --- /dev/null +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -0,0 +1,64 @@ +--- + +layout: page_v2 +title: Ad Experience Controls +description: Ad experience specification +sidebarType: 2 + +--- + +# Prebid SDK Ad Experince +{:.no_toc} + +If you use Prebid SDK to render the winning bid, you should be aware of how SDK implements ad experience and how you can change it. + +This spec is not applicable for the bidding-only API where Google Mobile Ads SDK or any other rendering engine performs rendering. In such integration scenarios, the ad experience is dictated by the third-party SDK, and Prebid SDK is not able to influence this. + + +* TOC +{:toc} + +## Banner + +Prebid SDK renders the banner ad in the OS-specific WebView. The publisher is responsible for integrating BannerAdView into the application layout and providing the needed space according to the supported ad sizes. + +| Policy | Behaviour | Customization | +|--------|-----------|---------------| +|Autorefresh| **Prebid SDK** refreshes the banner ad every 60 seconds. SDK makes the bid request and changes the current creative in the ad slot if the refresh has a bid. If there is no bid - SDK will remove the current creative from the internal ad slot and signal about it to publishers using respective delegate methods.

**The publisher** is responsible for removing or collapsing the ad slot in the application layout. |**iOS**: you can change the refresh interval using [refreshInterval](https://docs.prebid.org/prebid-mobile-ios/Classes/BannerView.html#/c:@M@PrebidMobile@objc(cs)BannerView(py)refreshInterval) property.

**Android**: you can change the refresh interval using the [setAutoRefreshDelay](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/BannerView.html#setAutoRefreshDelay(int)) property.| +| Resize of the content|**Prebid SDK** changes the size of WebView according to the size of the creative received in the bid response.

**Publisher** is responsible for adopting the application layout for different ad sizes.|To support multisize ads publishers should implement a dynamic layout for the banner ad place. Prebid SDK will change the size of BannerAdView according to the content. However, the publisher is responsible for adapting the application layout for different ad sizes. | + + + +## Outstream Video + +Prebid SDK renders the out-stream video ad in the OS-specific video player. The publisher is responsible for integrating BannerAdView into the application layout and providing the needed space according to the supported ad sizes. + +| Policy | Behaviour | Customization | +|--------|-----------|---------------| +|`Autoplay`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.

**The publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behaviour.| +|`Sound`| **Prebid SDK** Prebid SDK plays out-stream video in loud. | Currently, there is no way to mute the outseam video.| + +## Interstitial Video + +Prebid SDK renders the interstitial video ad in the OS-specific video player, which is placed in the special full-screen controller. The publisher is responsible for integrating the Interstitial controller into the application flow and managing the app behavior according to the ad signals. + +| Policy | Behaviour | Customization | +|--------|-----------|---------------| +| `Fullscreen` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || +| `Rotation` | **Prebid SDK** starts playback only when the ad is appear on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || +| `Close Button` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || +| `Learn More Button` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || +| `Click` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || +| `Clickthrough` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || +| `Sound` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || + +## Rewarded Video + +Prebid SDK implements the special ad unit for Reawarded ads. It is based on interstitial ad unit and keeps the OS-specific video player, WebView and rewarding login under the hood. The publisher is responsible for integrating the Interstitial controller into the application flow and manage app behavior, respectively, to the ad signals. + +| Policy | Behaviour | Customization | +|--------|-----------|---------------| +|Autoplay| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || + +## Native + From 8d0be11f12f4c99c3a4dc7c8adfc83f783af20fa Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Mon, 5 May 2025 10:01:59 +0300 Subject: [PATCH 02/16] doc: changes for mobile UI/UX policy --- .../rendering/combined-ui-ux-policy.md | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 30daffbbcb..9f04b752df 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -10,9 +10,9 @@ sidebarType: 2 # Prebid SDK Ad Experince {:.no_toc} -If you use Prebid SDK to render the winning bid, you should be aware of how SDK implements ad experience and how you can change it. +If you use the Prebid SDK to render the winning bid, you should be aware of how the SDK implements ad experience and how you can change it. -This spec is not applicable for the bidding-only API where Google Mobile Ads SDK or any other rendering engine performs rendering. In such integration scenarios, the ad experience is dictated by the third-party SDK, and Prebid SDK is not able to influence this. +This spec is not applicable for the Bidding-Only API, where Google Mobile Ads SDK or any other rendering engine performs rendering. In such integration scenarios, the ad experience is dictated by the third-party SDK, and the Prebid SDK is not able to influence this. * TOC @@ -20,12 +20,14 @@ This spec is not applicable for the bidding-only API where Google Mobile Ads SDK ## Banner -Prebid SDK renders the banner ad in the OS-specific WebView. The publisher is responsible for integrating BannerAdView into the application layout and providing the needed space according to the supported ad sizes. +Prebid SDK renders the banner ad in the OS-specific WebView. The publisher is responsible for integrating BannerAdView into the application layout and providing the needed space according to the supported ad sizes. + +The following table describes the ad experience properties of the banner ad and how they can be changed. | Policy | Behaviour | Customization | |--------|-----------|---------------| -|Autorefresh| **Prebid SDK** refreshes the banner ad every 60 seconds. SDK makes the bid request and changes the current creative in the ad slot if the refresh has a bid. If there is no bid - SDK will remove the current creative from the internal ad slot and signal about it to publishers using respective delegate methods.

**The publisher** is responsible for removing or collapsing the ad slot in the application layout. |**iOS**: you can change the refresh interval using [refreshInterval](https://docs.prebid.org/prebid-mobile-ios/Classes/BannerView.html#/c:@M@PrebidMobile@objc(cs)BannerView(py)refreshInterval) property.

**Android**: you can change the refresh interval using the [setAutoRefreshDelay](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/BannerView.html#setAutoRefreshDelay(int)) property.| -| Resize of the content|**Prebid SDK** changes the size of WebView according to the size of the creative received in the bid response.

**Publisher** is responsible for adopting the application layout for different ad sizes.|To support multisize ads publishers should implement a dynamic layout for the banner ad place. Prebid SDK will change the size of BannerAdView according to the content. However, the publisher is responsible for adapting the application layout for different ad sizes. | +|Autorefresh| **Prebid SDK** refreshes the banner ad every **60 seconds**. SDK makes the bid request and changes the current creative in the ad slot if the refresh has a bid. If there is no bid - SDK will remove the current creative from the internal ad slot and signal about it to the publisher using respective delegate methods.

**The publisher** is responsible for removing or collapsing the ad slot in the application layout. |**iOS**: you can change the refresh interval using [refreshInterval](https://docs.prebid.org/prebid-mobile-ios/Classes/BannerView.html#/c:@M@PrebidMobile@objc(cs)BannerView(py)refreshInterval) property.

**Android**: you can change the refresh interval using the [setAutoRefreshDelay](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/BannerView.html#setAutoRefreshDelay(int)) property.| +|Resize of the content|**Prebid SDK** changes the size of WebView according to the size of the creative received in the bid response.

**Publisher** is responsible for adopting the application layout for different ad sizes.|To support multisize ads, publishers should implement a dynamic layout for the banner ad place. Prebid SDK will change the size of BannerAdView according to the content. However, the publisher is responsible for adapting the application layout for different ad sizes. | @@ -54,11 +56,13 @@ Prebid SDK renders the interstitial video ad in the OS-specific video player, wh ## Rewarded Video -Prebid SDK implements the special ad unit for Reawarded ads. It is based on interstitial ad unit and keeps the OS-specific video player, WebView and rewarding login under the hood. The publisher is responsible for integrating the Interstitial controller into the application flow and manage app behavior, respectively, to the ad signals. +Prebid SDK implements the special ad unit for Rewarded ads. It is based on interstitial ad unit and keeps the OS-specific video player, WebView and rewarding login under the hood. The publisher is responsible for integrating the Interstitial controller into the application flow and manage app behavior, respectively, to the ad signals. | Policy | Behaviour | Customization | |--------|-----------|---------------| -|Autoplay| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || +|Autoplay| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || + +## Native Ads -## Native +The Prebid SDK supplies the content for native ad assets such as titles, images, and custom data, but does not control how these assets are presented within the application. Publishers are responsible for designing the ad layout and integrating it into their app’s user interface. Consequently, the overall user experience of native ads depends on the publisher’s implementation. From 97381088658175ee416823a37ffb801a3394fc70 Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Mon, 11 Aug 2025 11:55:22 +0300 Subject: [PATCH 03/16] docs: corrections for UI/UX policy --- .../rendering/combined-ui-ux-policy.md | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 9f04b752df..7ac25cf645 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -1,62 +1,61 @@ --- layout: page_v2 -title: Ad Experience Controls -description: Ad experience specification +title: Ad Experience +description: Ad Experience Specification sidebarType: 2 --- -# Prebid SDK Ad Experince +# Prebid SDK Ad Experience {:.no_toc} -If you use the Prebid SDK to render the winning bid, you should be aware of how the SDK implements ad experience and how you can change it. - -This spec is not applicable for the Bidding-Only API, where Google Mobile Ads SDK or any other rendering engine performs rendering. In such integration scenarios, the ad experience is dictated by the third-party SDK, and the Prebid SDK is not able to influence this. +If you use the Prebid SDK to render the winning bid, be aware of how the SDK implements ad experiences and how you can modify them. +This specification does not apply to the Bidding-Only API, where the Google Mobile Ads SDK or any other rendering engine performs rendering. In such integration scenarios, the ad experience is defined by the third-party SDK, and the Prebid SDK is not able to influence this. * TOC {:toc} ## Banner -Prebid SDK renders the banner ad in the OS-specific WebView. The publisher is responsible for integrating BannerAdView into the application layout and providing the needed space according to the supported ad sizes. +Prebid SDK renders the banner ad in the OS-specific WebView. The publisher is responsible for integrating `BannerAdView` into the application layout and providing the screen space according to the supported ad sizes. The following table describes the ad experience properties of the banner ad and how they can be changed. | Policy | Behaviour | Customization | |--------|-----------|---------------| -|Autorefresh| **Prebid SDK** refreshes the banner ad every **60 seconds**. SDK makes the bid request and changes the current creative in the ad slot if the refresh has a bid. If there is no bid - SDK will remove the current creative from the internal ad slot and signal about it to the publisher using respective delegate methods.

**The publisher** is responsible for removing or collapsing the ad slot in the application layout. |**iOS**: you can change the refresh interval using [refreshInterval](https://docs.prebid.org/prebid-mobile-ios/Classes/BannerView.html#/c:@M@PrebidMobile@objc(cs)BannerView(py)refreshInterval) property.

**Android**: you can change the refresh interval using the [setAutoRefreshDelay](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/BannerView.html#setAutoRefreshDelay(int)) property.| -|Resize of the content|**Prebid SDK** changes the size of WebView according to the size of the creative received in the bid response.

**Publisher** is responsible for adopting the application layout for different ad sizes.|To support multisize ads, publishers should implement a dynamic layout for the banner ad place. Prebid SDK will change the size of BannerAdView according to the content. However, the publisher is responsible for adapting the application layout for different ad sizes. | - - +|`Autorefresh`| **Prebid SDK** refreshes the banner ad every **60 seconds**. SDK makes the bid request and changes the current creative in the ad slot if the refresh has a bid. If there is no bid, the SDK will remove the current creative from the internal ad slot and notify the publisher using the respective delegate methods.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |**iOS**: you can change the refresh interval using [refreshInterval](https://docs.prebid.org/prebid-mobile-ios/Classes/BannerView.html#/c:@M@PrebidMobile@objc(cs)BannerView(py)refreshInterval) property.

**Android**: you can change the refresh interval using the [setAutoRefreshDelay](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/BannerView.html#setAutoRefreshDelay(int)) property.| +|`Content Resizing`|**Prebid SDK** changes the size of WebView according to the size of the creative received in the bid response.

**Publisher** is responsible for adopting the application layout for different ad sizes.|To support multisize ads, publishers should implement a dynamic layout for the banner ad place. Prebid SDK will change the size of the `BannerAdView` according to the content. However, the publisher is responsible for adapting the application layout for different ad sizes.

Currently, the SDK doesn't notify publishers about the change in banner size. Open an issue or PR to add this functionality.| +|`Clickthrough`|**Prebid SDK**: Opens the click URL in the default browser of the device. The SDK calls the respective ad delegate and listeners' methods to notify the publisher that the application is being left.

**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, the customization is not available. Open an issue or PR for the alternative approach. | -## Outstream Video +## Outstream Video (in-banner) -Prebid SDK renders the out-stream video ad in the OS-specific video player. The publisher is responsible for integrating BannerAdView into the application layout and providing the needed space according to the supported ad sizes. +Prebid SDK renders the outstream video ad in the OS-specific video player. The publisher is responsible for integrating the `BannerAdView` into the application layout and providing the needed space according to the supported ad sizes. | Policy | Behaviour | Customization | |--------|-----------|---------------| -|`Autoplay`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.

**The publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behaviour.| -|`Sound`| **Prebid SDK** Prebid SDK plays out-stream video in loud. | Currently, there is no way to mute the outseam video.| +|`Autoplay`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behaviour. Open an issue or PR for the alternative approach.| +|`Sound`| **Prebid SDK** Prebid SDK plays out-stream video in loud. | Currently, there is no way to mute the outstream video. Open an issue or PR for the alternative approach.| ## Interstitial Video -Prebid SDK renders the interstitial video ad in the OS-specific video player, which is placed in the special full-screen controller. The publisher is responsible for integrating the Interstitial controller into the application flow and managing the app behavior according to the ad signals. +The Prebid SDK renders the interstitial video ad in the OS-specific video player, within the special full-screen controller. The publisher is responsible for integrating the `Interstitial` controller into the application flow and managing the app's behavior in response to ad signals. | Policy | Behaviour | Customization | |--------|-----------|---------------| -| `Fullscreen` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || -| `Rotation` | **Prebid SDK** starts playback only when the ad is appear on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || -| `Close Button` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || -| `Learn More Button` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || -| `Click` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || -| `Clickthrough` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || -| `Sound` | **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled out from the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || +| `Fullscreen` | **Prebid SDK** opens the interstitial ad in the fullscreen controller that overlaps all other application content. The iOS SDK suport the SKOverlay format to show the interstitial ad for the bid with respective [configuration](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/main/extensions/community_extensions/skadnetwork.md#bid-request).

**Publisher** is responsible for implementing the callbacks for interstitial ads and managing the app state according to the ad behaviour. | Currently, there is no way to customize the appearance of the interstitial ads. Open an issue or PR for the alternative approach. | +| `Rotation` | **Prebid SDK** allows the rotation of the screen for the interstitial ads. The ad content is rotated according to the screen position. SDK changes the layout of the ad control elements according to the screen orientation.

**Publisher** has nothing to do in this operation, SDK doesn't provide any events to subscribe. | Currently, there is no way to customize the rotation behaviour of the interstitial ads. Open an issue or PR for the alternative approach.| +| `Close Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, respectively, to them. | **Publisher** can customize the default SDK behaviour using the [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) feature.| +| `Learn More Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, respectively, to them. |**Publisher** can customize the default SDK behaviour using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html)| +| `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling `adwillopen` delegate. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| +| `Clickthrough` | **Prebid SDK** opens a click URL in the external browser on the platform. Typically, it is the default browser for a particular user's device.
**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, the customization is not available. Open an issue or PR for the alternative approach.| +|`Playback`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behaviour. Open an issue or PR for the alternative approach.| +|`Sound`| **Prebid SDK** Prebid SDK plays instream video in loud. | **Publisher** can customize the default SDK behaviour using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) | ## Rewarded Video -Prebid SDK implements the special ad unit for Rewarded ads. It is based on interstitial ad unit and keeps the OS-specific video player, WebView and rewarding login under the hood. The publisher is responsible for integrating the Interstitial controller into the application flow and manage app behavior, respectively, to the ad signals. +**Prebid SDK** implements a special ad unit for Rewarded ads, based on the interstitial ad unit, and maintains the OS-specific video player, WebView, and rewarding under the hood. The publisher is responsible for integrating the Interstitial controller into the application flow and managing app behavior in response to ad signals. | Policy | Behaviour | Customization | |--------|-----------|---------------| From 58dbff416ec694599c01d045f0ddc61f5ee264f3 Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Mon, 11 Aug 2025 19:12:07 +0300 Subject: [PATCH 04/16] docs: add info for Rewarded ads --- .../modules/rendering/combined-ui-ux-policy.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 7ac25cf645..e8c0908e98 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -53,13 +53,19 @@ The Prebid SDK renders the interstitial video ad in the OS-specific video player |`Playback`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behaviour. Open an issue or PR for the alternative approach.| |`Sound`| **Prebid SDK** Prebid SDK plays instream video in loud. | **Publisher** can customize the default SDK behaviour using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) | -## Rewarded Video +## Rewarded Ad -**Prebid SDK** implements a special ad unit for Rewarded ads, based on the interstitial ad unit, and maintains the OS-specific video player, WebView, and rewarding under the hood. The publisher is responsible for integrating the Interstitial controller into the application flow and managing app behavior in response to ad signals. +**Prebid SDK** implements a special ad unit for Rewarded ads, maintaining the OS-specific video player, WebView, and rewarding engine under the hood. The publisher should integrate the `RewardedAdUnit` into the application flow and manage app behavior in response to ad signals. + +The following table, based on the `RewardedAdUnit` [specification](https://github.com/prebid/prebid-mobile-ios/issues/1056), describes how publishers can change its behaviour: | Policy | Behaviour | Customization | |--------|-----------|---------------| -|Autoplay| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.
**The publisher** is responsible for removing or collapsing the ad slot in the application layout. || +|`Reward`| **Prebid SDK** can signal the publisher about the type and quantity of reward coins.|**Publisher** can set the type and number of coins in the `rwdd.reward` object.| +|`Completion`|**Prebid SDK** will inform the application once the reward time has come.|**Publisher** can set the rule when the SDK should inform the app about the reward time. Depending on the ad format, the publisher can set different rules using `rwdd.completion.banner` and `rwdd.completion.banner` objects respectively.| +|`Close`|**Prebid SDK** will close the interstitial controller with rewarded ad according to the configuration passed in the response.|**Publisher** can set the rule how the SDK should behave once the user earned the reward, and the interstitial ad can be dismissed from the app screen. The `rwdd.close.postrewardtime` describes how much time the SDK should wait until performing the action. The action itself is described in `rwdd.close.action` object. Currently, two actions are supported - the `autoclose` means that the ad will be dismissed without user interaction, and `closebutton` means that the SDK will display the close button on top of the ad and the user will have to tap on it to dismiss the ad.| + +Note: Ad Experience controls of the rewarded ad can be configured in the same way as for the interstitial ad. ## Native Ads From f89be0e57a4b5bda5a3e71b06f7aed39e08cce3b Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Tue, 12 Aug 2025 11:17:33 +0300 Subject: [PATCH 05/16] doc: updates for rewarded ad unit --- .../modules/rendering/combined-ui-ux-policy.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index e8c0908e98..d0979afd8d 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -57,15 +57,15 @@ The Prebid SDK renders the interstitial video ad in the OS-specific video player **Prebid SDK** implements a special ad unit for Rewarded ads, maintaining the OS-specific video player, WebView, and rewarding engine under the hood. The publisher should integrate the `RewardedAdUnit` into the application flow and manage app behavior in response to ad signals. -The following table, based on the `RewardedAdUnit` [specification](https://github.com/prebid/prebid-mobile-ios/issues/1056), describes how publishers can change its behaviour: +The following table, based on the `RewardedAdUnit` [specification](https://github.com/prebid/prebid-mobile-ios/issues/1056), describes how publishers can change their behaviour: | Policy | Behaviour | Customization | |--------|-----------|---------------| -|`Reward`| **Prebid SDK** can signal the publisher about the type and quantity of reward coins.|**Publisher** can set the type and number of coins in the `rwdd.reward` object.| -|`Completion`|**Prebid SDK** will inform the application once the reward time has come.|**Publisher** can set the rule when the SDK should inform the app about the reward time. Depending on the ad format, the publisher can set different rules using `rwdd.completion.banner` and `rwdd.completion.banner` objects respectively.| -|`Close`|**Prebid SDK** will close the interstitial controller with rewarded ad according to the configuration passed in the response.|**Publisher** can set the rule how the SDK should behave once the user earned the reward, and the interstitial ad can be dismissed from the app screen. The `rwdd.close.postrewardtime` describes how much time the SDK should wait until performing the action. The action itself is described in `rwdd.close.action` object. Currently, two actions are supported - the `autoclose` means that the ad will be dismissed without user interaction, and `closebutton` means that the SDK will display the close button on top of the ad and the user will have to tap on it to dismiss the ad.| +|`Reward`|**Prebid SDK** can signal the publisher about the type and quantity of reward coins.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will send an empty object into the respective delegate method. |**Publisher** can set the type and number of coins in the `rwdd.reward` object.| +|`Completion`|**Prebid SDK** will inform the application once the reward time has come.

If the `rwdd` or `reward` object is absent in the response, by **default,**

- **banner:** SDK triggers the completion of the banner rewarded ad after **120 seconds** on the screen.

- **video:** SDK triggers the completion of the rewarded ad once the video playback is completed. But only if the ad doesn’t have an end card. | **Publisher** can set the type and number of coins in the `rwdd.reward` object.| **Publisher** can set the rule when the SDK should inform the app about the reward time. Depending on the ad format, the publisher can set different rules using `rwdd.completion.banner` and `rwdd.completion.banner` objects respectively.| +|`Close`|**Prebid SDK** will close the interstitial controller with rewarded ad according to the configuration passed in the response.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will display the **close button** on the interstitial once the completion criteria are met.| **Publisher** can set the rule on how the SDK should behave once the user earns the reward, and the interstitial ad can be dismissed from the app screen. The `rwdd.close.postrewardtime` describes how much time the SDK should wait until performing the `action`. The action itself is described in `rwdd.close.action` object. Currently, two actions are supported - the `autoclose` means that the ad will be dismissed without user interaction, and `closebutton` means that the SDK will display the close button on top of the ad, and the user will have to tap on it to dismiss the ad.| -Note: Ad Experience controls of the rewarded ad can be configured in the same way as for the interstitial ad. +Note: [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) of the rewarded ad can be configured in the same way as for the interstitial ad. ## Native Ads From f1263e4dce789ae5d7b1c68c6e3b8e767b295959 Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Tue, 12 Aug 2025 11:24:28 +0300 Subject: [PATCH 06/16] doc: corrections --- .../rendering/combined-ui-ux-policy.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index d0979afd8d..05ae1c6f01 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -23,43 +23,43 @@ Prebid SDK renders the banner ad in the OS-specific WebView. The publisher is re The following table describes the ad experience properties of the banner ad and how they can be changed. -| Policy | Behaviour | Customization | +| Policy | Behavior | Customization | |--------|-----------|---------------| |`Autorefresh`| **Prebid SDK** refreshes the banner ad every **60 seconds**. SDK makes the bid request and changes the current creative in the ad slot if the refresh has a bid. If there is no bid, the SDK will remove the current creative from the internal ad slot and notify the publisher using the respective delegate methods.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |**iOS**: you can change the refresh interval using [refreshInterval](https://docs.prebid.org/prebid-mobile-ios/Classes/BannerView.html#/c:@M@PrebidMobile@objc(cs)BannerView(py)refreshInterval) property.

**Android**: you can change the refresh interval using the [setAutoRefreshDelay](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/BannerView.html#setAutoRefreshDelay(int)) property.| |`Content Resizing`|**Prebid SDK** changes the size of WebView according to the size of the creative received in the bid response.

**Publisher** is responsible for adopting the application layout for different ad sizes.|To support multisize ads, publishers should implement a dynamic layout for the banner ad place. Prebid SDK will change the size of the `BannerAdView` according to the content. However, the publisher is responsible for adapting the application layout for different ad sizes.

Currently, the SDK doesn't notify publishers about the change in banner size. Open an issue or PR to add this functionality.| -|`Clickthrough`|**Prebid SDK**: Opens the click URL in the default browser of the device. The SDK calls the respective ad delegate and listeners' methods to notify the publisher that the application is being left.

**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, the customization is not available. Open an issue or PR for the alternative approach. | +|`Clickthrough`|**Prebid SDK**: Opens the click URL in the default browser of the device. The SDK calls the respective ad delegate and listeners' methods to notify the publisher that the application is being left.

**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, customization is not available. Open an issue or PR for the alternative approach. | ## Outstream Video (in-banner) Prebid SDK renders the outstream video ad in the OS-specific video player. The publisher is responsible for integrating the `BannerAdView` into the application layout and providing the needed space according to the supported ad sizes. -| Policy | Behaviour | Customization | +| Policy | Behavior | Customization | |--------|-----------|---------------| -|`Autoplay`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behaviour. Open an issue or PR for the alternative approach.| -|`Sound`| **Prebid SDK** Prebid SDK plays out-stream video in loud. | Currently, there is no way to mute the outstream video. Open an issue or PR for the alternative approach.| +|`Autoplay`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behavior. Open an issue or PR for the alternative approach.| +|`Sound`| **Prebid SDK** Prebid SDK plays out-stream video with sound enabled. | Currently, there is no way to mute the outstream video. Open an issue or PR for the alternative approach.| ## Interstitial Video The Prebid SDK renders the interstitial video ad in the OS-specific video player, within the special full-screen controller. The publisher is responsible for integrating the `Interstitial` controller into the application flow and managing the app's behavior in response to ad signals. -| Policy | Behaviour | Customization | +| Policy | Behavior | Customization | |--------|-----------|---------------| -| `Fullscreen` | **Prebid SDK** opens the interstitial ad in the fullscreen controller that overlaps all other application content. The iOS SDK suport the SKOverlay format to show the interstitial ad for the bid with respective [configuration](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/main/extensions/community_extensions/skadnetwork.md#bid-request).

**Publisher** is responsible for implementing the callbacks for interstitial ads and managing the app state according to the ad behaviour. | Currently, there is no way to customize the appearance of the interstitial ads. Open an issue or PR for the alternative approach. | -| `Rotation` | **Prebid SDK** allows the rotation of the screen for the interstitial ads. The ad content is rotated according to the screen position. SDK changes the layout of the ad control elements according to the screen orientation.

**Publisher** has nothing to do in this operation, SDK doesn't provide any events to subscribe. | Currently, there is no way to customize the rotation behaviour of the interstitial ads. Open an issue or PR for the alternative approach.| -| `Close Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, respectively, to them. | **Publisher** can customize the default SDK behaviour using the [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) feature.| -| `Learn More Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, respectively, to them. |**Publisher** can customize the default SDK behaviour using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html)| +| `Fullscreen` | **Prebid SDK** opens the interstitial ad in the fullscreen controller that overlaps all other application content. The iOS SDK support the SKOverlay format to show the interstitial ad for the bid with respective [configuration](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/main/extensions/community_extensions/skadnetwork.md#bid-request).

**Publisher** is responsible for implementing the callbacks for interstitial ads and managing the app state according to the ad behavior. | Currently, there is no way to customize the appearance of the interstitial ads. Open an issue or PR for the alternative approach. | +| `Rotation` | **Prebid SDK** allows the rotation of the screen for the interstitial ads. The ad content is rotated according to the screen position. SDK changes the layout of the ad control elements according to the screen orientation.

**Publisher** has nothing to do in this operation, SDK doesn't provide any events to subscribe. | Currently, there is no way to customize the rotation behavior of the interstitial ads. Open an issue or PR for the alternative approach.| +| `Close Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. | **Publisher** can customize the default SDK behavior using the [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) feature.| +| `Learn More Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. |**Publisher** can customize the default SDK behavior using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html)| | `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling `adwillopen` delegate. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| -| `Clickthrough` | **Prebid SDK** opens a click URL in the external browser on the platform. Typically, it is the default browser for a particular user's device.
**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, the customization is not available. Open an issue or PR for the alternative approach.| -|`Playback`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behaviour. Open an issue or PR for the alternative approach.| -|`Sound`| **Prebid SDK** Prebid SDK plays instream video in loud. | **Publisher** can customize the default SDK behaviour using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) | +| `Clickthrough` | **Prebid SDK** opens a click URL in the external browser on the platform. Typically, it is the default browser for a particular user's device.
**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, customization is not available. Open an issue or PR for the alternative approach.| +|`Playback`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behavior. Open an issue or PR for the alternative approach.| +|`Sound`| **Prebid SDK** Prebid SDK plays instream video with sound enabled. | **Publisher** can customize the default SDK behavior using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) | ## Rewarded Ad **Prebid SDK** implements a special ad unit for Rewarded ads, maintaining the OS-specific video player, WebView, and rewarding engine under the hood. The publisher should integrate the `RewardedAdUnit` into the application flow and manage app behavior in response to ad signals. -The following table, based on the `RewardedAdUnit` [specification](https://github.com/prebid/prebid-mobile-ios/issues/1056), describes how publishers can change their behaviour: +The following table, based on the `RewardedAdUnit` [specification](https://github.com/prebid/prebid-mobile-ios/issues/1056), describes how publishers can change their behavior: -| Policy | Behaviour | Customization | +| Policy | Behavior | Customization | |--------|-----------|---------------| |`Reward`|**Prebid SDK** can signal the publisher about the type and quantity of reward coins.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will send an empty object into the respective delegate method. |**Publisher** can set the type and number of coins in the `rwdd.reward` object.| |`Completion`|**Prebid SDK** will inform the application once the reward time has come.

If the `rwdd` or `reward` object is absent in the response, by **default,**

- **banner:** SDK triggers the completion of the banner rewarded ad after **120 seconds** on the screen.

- **video:** SDK triggers the completion of the rewarded ad once the video playback is completed. But only if the ad doesn’t have an end card. | **Publisher** can set the type and number of coins in the `rwdd.reward` object.| **Publisher** can set the rule when the SDK should inform the app about the reward time. Depending on the ad format, the publisher can set different rules using `rwdd.completion.banner` and `rwdd.completion.banner` objects respectively.| From 03d4a654ba8ed857f5d6723f8e36036a009695ec Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Tue, 12 Aug 2025 11:42:40 +0300 Subject: [PATCH 07/16] doc: fix linter errors --- prebid-mobile/modules/rendering/combined-ui-ux-policy.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 05ae1c6f01..7123ee26ff 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -62,7 +62,7 @@ The following table, based on the `RewardedAdUnit` [specification](https://githu | Policy | Behavior | Customization | |--------|-----------|---------------| |`Reward`|**Prebid SDK** can signal the publisher about the type and quantity of reward coins.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will send an empty object into the respective delegate method. |**Publisher** can set the type and number of coins in the `rwdd.reward` object.| -|`Completion`|**Prebid SDK** will inform the application once the reward time has come.

If the `rwdd` or `reward` object is absent in the response, by **default,**

- **banner:** SDK triggers the completion of the banner rewarded ad after **120 seconds** on the screen.

- **video:** SDK triggers the completion of the rewarded ad once the video playback is completed. But only if the ad doesn’t have an end card. | **Publisher** can set the type and number of coins in the `rwdd.reward` object.| **Publisher** can set the rule when the SDK should inform the app about the reward time. Depending on the ad format, the publisher can set different rules using `rwdd.completion.banner` and `rwdd.completion.banner` objects respectively.| +|`Completion`|**Prebid SDK** will inform the application once the reward time has come.

If the `rwdd` or `reward` object is absent in the response, by **default,**

- **banner:** SDK triggers the completion of the banner rewarded ad after **120 seconds** on the screen.

- **video:** SDK triggers the completion of the rewarded ad once the video playback is completed. But only if the ad doesn’t have an end card. | **Publisher** can set the rule when the SDK should inform the app about the reward time. Depending on the ad format, the publisher can set different rules using `rwdd.completion.banner` and `rwdd.completion.banner` objects respectively.| |`Close`|**Prebid SDK** will close the interstitial controller with rewarded ad according to the configuration passed in the response.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will display the **close button** on the interstitial once the completion criteria are met.| **Publisher** can set the rule on how the SDK should behave once the user earns the reward, and the interstitial ad can be dismissed from the app screen. The `rwdd.close.postrewardtime` describes how much time the SDK should wait until performing the `action`. The action itself is described in `rwdd.close.action` object. Currently, two actions are supported - the `autoclose` means that the ad will be dismissed without user interaction, and `closebutton` means that the SDK will display the close button on top of the ad, and the user will have to tap on it to dismiss the ad.| Note: [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) of the rewarded ad can be configured in the same way as for the interstitial ad. @@ -70,4 +70,3 @@ Note: [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/ren ## Native Ads The Prebid SDK supplies the content for native ad assets such as titles, images, and custom data, but does not control how these assets are presented within the application. Publishers are responsible for designing the ad layout and integrating it into their app’s user interface. Consequently, the overall user experience of native ads depends on the publisher’s implementation. - From 3c531a42359ec9caa16ff282adfe020219ea1478 Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Tue, 12 Aug 2025 11:53:10 +0300 Subject: [PATCH 08/16] doc: rename page and section, format code --- _data/sidebar.yml | 4 ++-- prebid-mobile/modules/rendering/combined-ui-ux-policy.md | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/_data/sidebar.yml b/_data/sidebar.yml index e5bbc339b3..b06ea827e5 100644 --- a/_data/sidebar.yml +++ b/_data/sidebar.yml @@ -816,7 +816,7 @@ subgroup: 2 - sbSecId: 2 - title: UI/UX Policy + title: Ad Experience Specification link: /prebid-mobile/modules/rendering/combined-ui-ux-policy.html isHeader: 0 isSectionHeader: 0 @@ -929,7 +929,7 @@ subgroup: 3 - sbSecId: 2 - title: UI UX Policy + title: Ad Experience Specification link: /prebid-mobile/modules/rendering/combined-ui-ux-policy.html isHeader: 0 isSectionHeader: 0 diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 7123ee26ff..9ab7c55b1b 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -1,7 +1,7 @@ --- layout: page_v2 -title: Ad Experience +title: Ad Experience Specification description: Ad Experience Specification sidebarType: 2 @@ -23,6 +23,7 @@ Prebid SDK renders the banner ad in the OS-specific WebView. The publisher is re The following table describes the ad experience properties of the banner ad and how they can be changed. + {: .table .table-bordered .table-striped } | Policy | Behavior | Customization | |--------|-----------|---------------| |`Autorefresh`| **Prebid SDK** refreshes the banner ad every **60 seconds**. SDK makes the bid request and changes the current creative in the ad slot if the refresh has a bid. If there is no bid, the SDK will remove the current creative from the internal ad slot and notify the publisher using the respective delegate methods.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |**iOS**: you can change the refresh interval using [refreshInterval](https://docs.prebid.org/prebid-mobile-ios/Classes/BannerView.html#/c:@M@PrebidMobile@objc(cs)BannerView(py)refreshInterval) property.

**Android**: you can change the refresh interval using the [setAutoRefreshDelay](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/BannerView.html#setAutoRefreshDelay(int)) property.| @@ -33,6 +34,7 @@ The following table describes the ad experience properties of the banner ad and Prebid SDK renders the outstream video ad in the OS-specific video player. The publisher is responsible for integrating the `BannerAdView` into the application layout and providing the needed space according to the supported ad sizes. + {: .table .table-bordered .table-striped } | Policy | Behavior | Customization | |--------|-----------|---------------| |`Autoplay`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behavior. Open an issue or PR for the alternative approach.| @@ -42,6 +44,7 @@ Prebid SDK renders the outstream video ad in the OS-specific video player. The p The Prebid SDK renders the interstitial video ad in the OS-specific video player, within the special full-screen controller. The publisher is responsible for integrating the `Interstitial` controller into the application flow and managing the app's behavior in response to ad signals. + {: .table .table-bordered .table-striped } | Policy | Behavior | Customization | |--------|-----------|---------------| | `Fullscreen` | **Prebid SDK** opens the interstitial ad in the fullscreen controller that overlaps all other application content. The iOS SDK support the SKOverlay format to show the interstitial ad for the bid with respective [configuration](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/main/extensions/community_extensions/skadnetwork.md#bid-request).

**Publisher** is responsible for implementing the callbacks for interstitial ads and managing the app state according to the ad behavior. | Currently, there is no way to customize the appearance of the interstitial ads. Open an issue or PR for the alternative approach. | @@ -59,6 +62,7 @@ The Prebid SDK renders the interstitial video ad in the OS-specific video player The following table, based on the `RewardedAdUnit` [specification](https://github.com/prebid/prebid-mobile-ios/issues/1056), describes how publishers can change their behavior: + {: .table .table-bordered .table-striped } | Policy | Behavior | Customization | |--------|-----------|---------------| |`Reward`|**Prebid SDK** can signal the publisher about the type and quantity of reward coins.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will send an empty object into the respective delegate method. |**Publisher** can set the type and number of coins in the `rwdd.reward` object.| From 403fc6d5f5ac40ca27fa91508693d684742e61c6 Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Tue, 12 Aug 2025 12:24:31 +0300 Subject: [PATCH 09/16] doc: format text in the table --- prebid-mobile/modules/rendering/combined-ui-ux-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 9ab7c55b1b..4e3c4db60f 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -67,7 +67,7 @@ The following table, based on the `RewardedAdUnit` [specification](https://githu |--------|-----------|---------------| |`Reward`|**Prebid SDK** can signal the publisher about the type and quantity of reward coins.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will send an empty object into the respective delegate method. |**Publisher** can set the type and number of coins in the `rwdd.reward` object.| |`Completion`|**Prebid SDK** will inform the application once the reward time has come.

If the `rwdd` or `reward` object is absent in the response, by **default,**

- **banner:** SDK triggers the completion of the banner rewarded ad after **120 seconds** on the screen.

- **video:** SDK triggers the completion of the rewarded ad once the video playback is completed. But only if the ad doesn’t have an end card. | **Publisher** can set the rule when the SDK should inform the app about the reward time. Depending on the ad format, the publisher can set different rules using `rwdd.completion.banner` and `rwdd.completion.banner` objects respectively.| -|`Close`|**Prebid SDK** will close the interstitial controller with rewarded ad according to the configuration passed in the response.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will display the **close button** on the interstitial once the completion criteria are met.| **Publisher** can set the rule on how the SDK should behave once the user earns the reward, and the interstitial ad can be dismissed from the app screen. The `rwdd.close.postrewardtime` describes how much time the SDK should wait until performing the `action`. The action itself is described in `rwdd.close.action` object. Currently, two actions are supported - the `autoclose` means that the ad will be dismissed without user interaction, and `closebutton` means that the SDK will display the close button on top of the ad, and the user will have to tap on it to dismiss the ad.| +|`Close`|**Prebid SDK** will close the interstitial controller with rewarded ad according to the configuration passed in the response.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will display the **close button** on the interstitial once the completion criteria are met.| **Publisher** can set the rule on how the SDK should behave once the user earns the reward, and the interstitial ad can be dismissed from the app screen.

The `rwdd.close.postrewardtime` describes how much time the SDK should wait until performing the `action`.

The action itself is described in `rwdd.close.action` object. Currently, two actions are supported:

- `autoclose` means that the ad will be dismissed without user interaction.

- `closebutton` means that the SDK will display the close button on top of the ad, and the user will have to tap on it to dismiss the ad.| Note: [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) of the rewarded ad can be configured in the same way as for the interstitial ad. From 102f464460f67a0a64acf0ec4d5b753dbee46817 Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Tue, 12 Aug 2025 18:14:50 +0300 Subject: [PATCH 10/16] doc: reslove PR comments --- prebid-mobile/modules/rendering/combined-ui-ux-policy.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 4e3c4db60f..4f39244c0f 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -51,7 +51,7 @@ The Prebid SDK renders the interstitial video ad in the OS-specific video player | `Rotation` | **Prebid SDK** allows the rotation of the screen for the interstitial ads. The ad content is rotated according to the screen position. SDK changes the layout of the ad control elements according to the screen orientation.

**Publisher** has nothing to do in this operation, SDK doesn't provide any events to subscribe. | Currently, there is no way to customize the rotation behavior of the interstitial ads. Open an issue or PR for the alternative approach.| | `Close Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. | **Publisher** can customize the default SDK behavior using the [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) feature.| | `Learn More Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. |**Publisher** can customize the default SDK behavior using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html)| -| `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling `adwillopen` delegate. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| +| `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling [interstitialDidClickAd](https://docs.prebid.org/prebid-mobile-ios/Protocols/InterstitialAdUnitDelegate.html#/c:@M@PrebidMobile@objc(pl)InterstitialAdUnitDelegate(im)interstitialDidClickAd:) delegate method on iOS or [onAdClicked](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/listeners/InterstitialAdUnitListener.html#onAdClicked(org.prebid.mobile.api.rendering.InterstitialAdUnit)) listener method on Android. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| | `Clickthrough` | **Prebid SDK** opens a click URL in the external browser on the platform. Typically, it is the default browser for a particular user's device.
**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, customization is not available. Open an issue or PR for the alternative approach.| |`Playback`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behavior. Open an issue or PR for the alternative approach.| |`Sound`| **Prebid SDK** Prebid SDK plays instream video with sound enabled. | **Publisher** can customize the default SDK behavior using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) | @@ -66,7 +66,7 @@ The following table, based on the `RewardedAdUnit` [specification](https://githu | Policy | Behavior | Customization | |--------|-----------|---------------| |`Reward`|**Prebid SDK** can signal the publisher about the type and quantity of reward coins.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will send an empty object into the respective delegate method. |**Publisher** can set the type and number of coins in the `rwdd.reward` object.| -|`Completion`|**Prebid SDK** will inform the application once the reward time has come.

If the `rwdd` or `reward` object is absent in the response, by **default,**

- **banner:** SDK triggers the completion of the banner rewarded ad after **120 seconds** on the screen.

- **video:** SDK triggers the completion of the rewarded ad once the video playback is completed. But only if the ad doesn’t have an end card. | **Publisher** can set the rule when the SDK should inform the app about the reward time. Depending on the ad format, the publisher can set different rules using `rwdd.completion.banner` and `rwdd.completion.banner` objects respectively.| +|`Completion`|**Prebid SDK** will inform the application once the reward time has come.

If the `rwdd` or `reward` object is absent in the response, by **default,**

- **banner:** SDK triggers the completion of the banner rewarded ad after **120 seconds** on the screen.

- **video:** SDK triggers the completion of the rewarded ad once the video playback is completed. But only if the ad doesn’t have an end card. | **Publisher** can set the rule when the SDK should inform the app about the reward time. Depending on the ad format, the publisher can set different rules using `rwdd.completion.banner` and `rwdd.completion.video` objects respectively.| |`Close`|**Prebid SDK** will close the interstitial controller with rewarded ad according to the configuration passed in the response.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will display the **close button** on the interstitial once the completion criteria are met.| **Publisher** can set the rule on how the SDK should behave once the user earns the reward, and the interstitial ad can be dismissed from the app screen.

The `rwdd.close.postrewardtime` describes how much time the SDK should wait until performing the `action`.

The action itself is described in `rwdd.close.action` object. Currently, two actions are supported:

- `autoclose` means that the ad will be dismissed without user interaction.

- `closebutton` means that the SDK will display the close button on top of the ad, and the user will have to tap on it to dismiss the ad.| Note: [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) of the rewarded ad can be configured in the same way as for the interstitial ad. From 5620f1d5e174058fb39f9519b5a7a8e48db52040 Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Wed, 13 Aug 2025 13:33:42 +0300 Subject: [PATCH 11/16] Update prebid-mobile/modules/rendering/combined-ui-ux-policy.md Co-authored-by: Muki Seiler --- prebid-mobile/modules/rendering/combined-ui-ux-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 4f39244c0f..6301748da8 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -69,7 +69,7 @@ The following table, based on the `RewardedAdUnit` [specification](https://githu |`Completion`|**Prebid SDK** will inform the application once the reward time has come.

If the `rwdd` or `reward` object is absent in the response, by **default,**

- **banner:** SDK triggers the completion of the banner rewarded ad after **120 seconds** on the screen.

- **video:** SDK triggers the completion of the rewarded ad once the video playback is completed. But only if the ad doesn’t have an end card. | **Publisher** can set the rule when the SDK should inform the app about the reward time. Depending on the ad format, the publisher can set different rules using `rwdd.completion.banner` and `rwdd.completion.video` objects respectively.| |`Close`|**Prebid SDK** will close the interstitial controller with rewarded ad according to the configuration passed in the response.

If the `rwdd` or `reward` object is absent in the response, by **default,** SDK will display the **close button** on the interstitial once the completion criteria are met.| **Publisher** can set the rule on how the SDK should behave once the user earns the reward, and the interstitial ad can be dismissed from the app screen.

The `rwdd.close.postrewardtime` describes how much time the SDK should wait until performing the `action`.

The action itself is described in `rwdd.close.action` object. Currently, two actions are supported:

- `autoclose` means that the ad will be dismissed without user interaction.

- `closebutton` means that the SDK will display the close button on top of the ad, and the user will have to tap on it to dismiss the ad.| -Note: [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) of the rewarded ad can be configured in the same way as for the interstitial ad. +Note: [Ad Experience Controls](/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) of the rewarded ad can be configured in the same way as for the interstitial ad. ## Native Ads From 8e12c3b80a931f89dc735955e483b31d25b5cc78 Mon Sep 17 00:00:00 2001 From: Muki Seiler Date: Tue, 19 Aug 2025 16:02:00 +0200 Subject: [PATCH 12/16] Update prebid-mobile/modules/rendering/combined-ui-ux-policy.md --- prebid-mobile/modules/rendering/combined-ui-ux-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 6301748da8..e88830b90d 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -26,7 +26,7 @@ The following table describes the ad experience properties of the banner ad and {: .table .table-bordered .table-striped } | Policy | Behavior | Customization | |--------|-----------|---------------| -|`Autorefresh`| **Prebid SDK** refreshes the banner ad every **60 seconds**. SDK makes the bid request and changes the current creative in the ad slot if the refresh has a bid. If there is no bid, the SDK will remove the current creative from the internal ad slot and notify the publisher using the respective delegate methods.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |**iOS**: you can change the refresh interval using [refreshInterval](https://docs.prebid.org/prebid-mobile-ios/Classes/BannerView.html#/c:@M@PrebidMobile@objc(cs)BannerView(py)refreshInterval) property.

**Android**: you can change the refresh interval using the [setAutoRefreshDelay](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/BannerView.html#setAutoRefreshDelay(int)) property.| +|`Autorefresh`| **Prebid SDK** refreshes the banner ad every **60 seconds**. SDK makes the bid request and changes the current creative in the ad slot if the refresh has a bid. If there is no bid, the SDK will remove the current creative from the internal ad slot and notify the publisher using the respective delegate methods.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |**iOS**: you can change the refresh interval using [refreshInterval](/prebid-mobile-ios/Classes/BannerView.html#/c:@M@PrebidMobile@objc(cs)BannerView(py)refreshInterval) property.

**Android**: you can change the refresh interval using the [setAutoRefreshDelay](/prebid-mobile-android/org/prebid/mobile/api/rendering/BannerView.html#setAutoRefreshDelay(int)) property.| |`Content Resizing`|**Prebid SDK** changes the size of WebView according to the size of the creative received in the bid response.

**Publisher** is responsible for adopting the application layout for different ad sizes.|To support multisize ads, publishers should implement a dynamic layout for the banner ad place. Prebid SDK will change the size of the `BannerAdView` according to the content. However, the publisher is responsible for adapting the application layout for different ad sizes.

Currently, the SDK doesn't notify publishers about the change in banner size. Open an issue or PR to add this functionality.| |`Clickthrough`|**Prebid SDK**: Opens the click URL in the default browser of the device. The SDK calls the respective ad delegate and listeners' methods to notify the publisher that the application is being left.

**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, customization is not available. Open an issue or PR for the alternative approach. | From 4b88fc658ecea23d4155d24367a6826b6842460b Mon Sep 17 00:00:00 2001 From: Muki Seiler Date: Tue, 19 Aug 2025 16:02:24 +0200 Subject: [PATCH 13/16] Apply suggestion from @muuki88 --- prebid-mobile/modules/rendering/combined-ui-ux-policy.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index e88830b90d..60b702488b 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -49,7 +49,10 @@ The Prebid SDK renders the interstitial video ad in the OS-specific video player |--------|-----------|---------------| | `Fullscreen` | **Prebid SDK** opens the interstitial ad in the fullscreen controller that overlaps all other application content. The iOS SDK support the SKOverlay format to show the interstitial ad for the bid with respective [configuration](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/main/extensions/community_extensions/skadnetwork.md#bid-request).

**Publisher** is responsible for implementing the callbacks for interstitial ads and managing the app state according to the ad behavior. | Currently, there is no way to customize the appearance of the interstitial ads. Open an issue or PR for the alternative approach. | | `Rotation` | **Prebid SDK** allows the rotation of the screen for the interstitial ads. The ad content is rotated according to the screen position. SDK changes the layout of the ad control elements according to the screen orientation.

**Publisher** has nothing to do in this operation, SDK doesn't provide any events to subscribe. | Currently, there is no way to customize the rotation behavior of the interstitial ads. Open an issue or PR for the alternative approach.| -| `Close Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. | **Publisher** can customize the default SDK behavior using the [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) feature.| +| `Close Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. | **Publisher** can customize the default SDK behavior using the [Ad Experience Controls](/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) feature.| +| `Learn More Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. |**Publisher** can customize the default SDK behavior using [Ad Experience Controls](/prebid-mobile/modules/rendering/combined-ad-experience-controls.html)| +| `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling [interstitialDidClickAd](/prebid-mobile-ios/Protocols/InterstitialAdUnitDelegate.html#/c:@M@PrebidMobile@objc(pl)InterstitialAdUnitDelegate(im)interstitialDidClickAd:) delegate method on iOS or [onAdClicked](/prebid-mobile-android/org/prebid/mobile/api/rendering/listeners/InterstitialAdUnitListener.html#onAdClicked(org.prebid.mobile.api.rendering.InterstitialAdUnit)) listener method on Android. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| +| `Clickthrough` | **Prebid SDK** opens a click URL in the external browser on the platform. Typically, it is the default browser for a particular user's device.
**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, customization is not available. Open an issue or PR for the alternative approach.| | `Learn More Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. |**Publisher** can customize the default SDK behavior using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html)| | `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling [interstitialDidClickAd](https://docs.prebid.org/prebid-mobile-ios/Protocols/InterstitialAdUnitDelegate.html#/c:@M@PrebidMobile@objc(pl)InterstitialAdUnitDelegate(im)interstitialDidClickAd:) delegate method on iOS or [onAdClicked](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/listeners/InterstitialAdUnitListener.html#onAdClicked(org.prebid.mobile.api.rendering.InterstitialAdUnit)) listener method on Android. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| | `Clickthrough` | **Prebid SDK** opens a click URL in the external browser on the platform. Typically, it is the default browser for a particular user's device.
**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, customization is not available. Open an issue or PR for the alternative approach.| From cf3d8d68b58675412c1c9297438b36365fb86a03 Mon Sep 17 00:00:00 2001 From: Muki Seiler Date: Tue, 19 Aug 2025 16:02:31 +0200 Subject: [PATCH 14/16] Apply suggestion from @muuki88 --- prebid-mobile/modules/rendering/combined-ui-ux-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 60b702488b..473b1918ba 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -53,7 +53,7 @@ The Prebid SDK renders the interstitial video ad in the OS-specific video player | `Learn More Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. |**Publisher** can customize the default SDK behavior using [Ad Experience Controls](/prebid-mobile/modules/rendering/combined-ad-experience-controls.html)| | `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling [interstitialDidClickAd](/prebid-mobile-ios/Protocols/InterstitialAdUnitDelegate.html#/c:@M@PrebidMobile@objc(pl)InterstitialAdUnitDelegate(im)interstitialDidClickAd:) delegate method on iOS or [onAdClicked](/prebid-mobile-android/org/prebid/mobile/api/rendering/listeners/InterstitialAdUnitListener.html#onAdClicked(org.prebid.mobile.api.rendering.InterstitialAdUnit)) listener method on Android. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| | `Clickthrough` | **Prebid SDK** opens a click URL in the external browser on the platform. Typically, it is the default browser for a particular user's device.
**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, customization is not available. Open an issue or PR for the alternative approach.| -| `Learn More Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. |**Publisher** can customize the default SDK behavior using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html)| +| `Learn More Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. |**Publisher** can customize the default SDK behavior using [Ad Experience Controls](/prebid-mobile/modules/rendering/combined-ad-experience-controls.html)| | `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling [interstitialDidClickAd](https://docs.prebid.org/prebid-mobile-ios/Protocols/InterstitialAdUnitDelegate.html#/c:@M@PrebidMobile@objc(pl)InterstitialAdUnitDelegate(im)interstitialDidClickAd:) delegate method on iOS or [onAdClicked](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/listeners/InterstitialAdUnitListener.html#onAdClicked(org.prebid.mobile.api.rendering.InterstitialAdUnit)) listener method on Android. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| | `Clickthrough` | **Prebid SDK** opens a click URL in the external browser on the platform. Typically, it is the default browser for a particular user's device.
**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, customization is not available. Open an issue or PR for the alternative approach.| |`Playback`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behavior. Open an issue or PR for the alternative approach.| From 195cbde9d91c9e21b005b7c10464eaedbde99d50 Mon Sep 17 00:00:00 2001 From: Muki Seiler Date: Tue, 19 Aug 2025 16:02:36 +0200 Subject: [PATCH 15/16] Apply suggestion from @muuki88 --- prebid-mobile/modules/rendering/combined-ui-ux-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 473b1918ba..5b312b459a 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -54,7 +54,7 @@ The Prebid SDK renders the interstitial video ad in the OS-specific video player | `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling [interstitialDidClickAd](/prebid-mobile-ios/Protocols/InterstitialAdUnitDelegate.html#/c:@M@PrebidMobile@objc(pl)InterstitialAdUnitDelegate(im)interstitialDidClickAd:) delegate method on iOS or [onAdClicked](/prebid-mobile-android/org/prebid/mobile/api/rendering/listeners/InterstitialAdUnitListener.html#onAdClicked(org.prebid.mobile.api.rendering.InterstitialAdUnit)) listener method on Android. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| | `Clickthrough` | **Prebid SDK** opens a click URL in the external browser on the platform. Typically, it is the default browser for a particular user's device.
**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, customization is not available. Open an issue or PR for the alternative approach.| | `Learn More Button` | **Prebid SDK** adds a close button to the interstitial ad, providing a way for users to dismiss the fullscreen ad. Depending on the ad format, the button can appear from the very beginning of the ad or with some delay.

**Publisher** is responsible for subscribing to the ad flow events and managing the app flow, accordingly. |**Publisher** can customize the default SDK behavior using [Ad Experience Controls](/prebid-mobile/modules/rendering/combined-ad-experience-controls.html)| -| `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling [interstitialDidClickAd](https://docs.prebid.org/prebid-mobile-ios/Protocols/InterstitialAdUnitDelegate.html#/c:@M@PrebidMobile@objc(pl)InterstitialAdUnitDelegate(im)interstitialDidClickAd:) delegate method on iOS or [onAdClicked](https://docs.prebid.org/prebid-mobile-android/org/prebid/mobile/api/rendering/listeners/InterstitialAdUnitListener.html#onAdClicked(org.prebid.mobile.api.rendering.InterstitialAdUnit)) listener method on Android. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| +| `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling [interstitialDidClickAd](/prebid-mobile-ios/Protocols/InterstitialAdUnitDelegate.html#/c:@M@PrebidMobile@objc(pl)InterstitialAdUnitDelegate(im)interstitialDidClickAd:) delegate method on iOS or [onAdClicked](/prebid-mobile-android/org/prebid/mobile/api/rendering/listeners/InterstitialAdUnitListener.html#onAdClicked(org.prebid.mobile.api.rendering.InterstitialAdUnit)) listener method on Android. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| | `Clickthrough` | **Prebid SDK** opens a click URL in the external browser on the platform. Typically, it is the default browser for a particular user's device.
**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, customization is not available. Open an issue or PR for the alternative approach.| |`Playback`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behavior. Open an issue or PR for the alternative approach.| |`Sound`| **Prebid SDK** Prebid SDK plays instream video with sound enabled. | **Publisher** can customize the default SDK behavior using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) | From f0891664e56a81d41fe74f9f422157af11ec6851 Mon Sep 17 00:00:00 2001 From: Muki Seiler Date: Tue, 19 Aug 2025 16:02:41 +0200 Subject: [PATCH 16/16] Apply suggestion from @muuki88 --- prebid-mobile/modules/rendering/combined-ui-ux-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md index 5b312b459a..9d0b857e87 100644 --- a/prebid-mobile/modules/rendering/combined-ui-ux-policy.md +++ b/prebid-mobile/modules/rendering/combined-ui-ux-policy.md @@ -57,7 +57,7 @@ The Prebid SDK renders the interstitial video ad in the OS-specific video player | `Tap` | **Prebid SDK** processes the clicks, actually taps, in different ways, respectively, depending on the type of the ad.
**The publisher** is responsible for handling [interstitialDidClickAd](/prebid-mobile-ios/Protocols/InterstitialAdUnitDelegate.html#/c:@M@PrebidMobile@objc(pl)InterstitialAdUnitDelegate(im)interstitialDidClickAd:) delegate method on iOS or [onAdClicked](/prebid-mobile-android/org/prebid/mobile/api/rendering/listeners/InterstitialAdUnitListener.html#onAdClicked(org.prebid.mobile.api.rendering.InterstitialAdUnit)) listener method on Android. |Currently, there is no way to customize the way of processing the taps on the ad. Open an issue or PR for the alternative approach.| | `Clickthrough` | **Prebid SDK** opens a click URL in the external browser on the platform. Typically, it is the default browser for a particular user's device.
**Publisher** is responsible for processing SDK events and managing the application state, respectively. |Currently, customization is not available. Open an issue or PR for the alternative approach.| |`Playback`| **Prebid SDK** starts playback only when the ad appears on the app screen. Once the ad is removed or scrolled off the screen, the playback will be stopped.

**Publisher** is responsible for removing or collapsing the ad slot in the application layout. |Currently, there is no public API to customize this behavior. Open an issue or PR for the alternative approach.| -|`Sound`| **Prebid SDK** Prebid SDK plays instream video with sound enabled. | **Publisher** can customize the default SDK behavior using [Ad Experience Controls](https://docs.prebid.org/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) | +|`Sound`| **Prebid SDK** Prebid SDK plays instream video with sound enabled. | **Publisher** can customize the default SDK behavior using [Ad Experience Controls](/prebid-mobile/modules/rendering/combined-ad-experience-controls.html) | ## Rewarded Ad