Ad configuration
Control where and how often ads appear in the Experiences player. You configure Stories, Moments, and Videos separately. Support differs by platform: see Ad support by content type and platform.
App level and widget level
Ad configurations are defined for the whole app. WSC Sports sets these up, and the SDK delivers them to the app. You don't define them in code.
Each configuration can define its own video ad breaks, and those breaks apply to every Video in the widget.
Per widget, choose which app-wide configuration applies, or turn ads off for that widget, with the adsConfigType property: iOS | Android. Not available on React Native. Where the widget can't select a configuration, it uses the first ad configuration found in the app-wide settings.
Stories
- Show ads at fixed positions. Pick the specific page numbers where ads appear. For example, on pages 2 and 7 of each Story.
- For custom native ads on mobile, you can also show ads between every 'X' Stories. The ad appears after 'X' Stories, then again after each additional 'X'.
First-page pre-roll
On mobile you can play the fixed-position ad on the first page as a pre-roll. When enabled, the ad on the first unread page is respected instead of skipped, so it plays before content on the first page the Viewer interacts with. This setting is opt-in and off by default, so existing behavior is unchanged. Enable it in the player's playback configuration via ads.enablePreroll: iOS | Android | React Native. Not available on Web.
Moments
Show ads between every 'X' Moments. If you set ads to show every 3 Moments, an ad appears after the Viewer watches 3 Moments, then after 6, and so on.
Videos
A Video can show more than one ad in a single playback. Ad breaks sit at fixed points: before content starts (pre-roll), at set percentages of the Video's duration (mid-roll), and at the end (post-roll). For example, breaks at 25%, 50%, and 75% give three mid-roll ads spread through playback.
Set breaks per ad configuration in Ad Percentages. That field is required, and the list is the complete instruction for every Video in the widget. Include 0 in the list if you want a pre-roll. If 0 isn't in the list, there is no pre-roll, on any platform.
To add video ad breaks or change their positions, contact your WSC Sports account team. If you can edit Ad Percentages, you can also set the list there.
Video ad limits
- Post-roll: plays only when the Video ends on its own. If the Viewer taps next, the post-roll is skipped and the next Video's pre-roll plays instead.
- Player mode (iOS and Android): a minimized inline player shows no ads. On Android, an inline player expanded to fill the screen can show a pre-roll once the expanded view has rendered. Mid-roll and post-roll play in the standalone fullscreen player only. On iOS, no ad reaches the screen in an inline player in any state.
- On-demand Videos only (iOS and Android): live streams don't play mid-roll ads. Web has no live-stream limit.
- Videos of at least 60 seconds (iOS and Android): shorter Videos drop their mid-roll breaks. Web has no 60-second limit.
- Once per viewing: each break plays at most once. Seeking backward doesn't replay a break the Viewer already passed. Seeking forward over several breaks plays only the last one crossed.
- Picture-in-Picture: mid-roll and post-roll don't play. Pre-roll plays before Picture-in-Picture starts.
- AirPlay and Cast: ads don't play while casting. During a Cast session the receiving device gets the content stream only, without an ad tag, and plays it in the generic Cast player, so no Experiences SDK ads play on it. Ads are suppressed on the phone for the length of the session. AirPlay behaves the same way.
Ad support by content type and platform
| Placement | iOS | Android | Web | React Native |
|---|---|---|---|---|
| Stories: ads at fixed page positions | Yes | Yes | Yes | Yes |
| Stories: ads every 'X' Stories (custom native, mobile) | Yes | Yes | No | Yes |
Stories: first-page ad as pre-roll (ads.enablePreroll) | Yes | Yes | No | Yes |
| Moments: ads every 'X' Moments | Yes | Yes | Yes | Yes |
| Videos: pre-roll | Yes | Yes | Yes | Yes* |
| Videos: mid-roll | Yes | Yes | Yes | Yes* |
| Videos: post-roll | Yes | Yes | Yes | Yes* |
Per-widget configuration choice (adsConfigType) | Yes | Yes | Not applicable | No |
*React Native: video placements work at the configuration layer, and playback follows the underlying iOS or Android player. A React Native app that uses a minimized inline player gets no ads. See the player mode limit above.
Updated 13 days ago
