Ad Pod Support for OpenWrap Video
Currently, the programmatic video ad ecosystem doesn't enforce consistent context across video ad content, leading to inefficiencies and behavior like:
- The same ad playing repeatedly to the user during each ad break within the main video content.
- Suboptimal ad duration fill; that is, multiple requests to load ads one at a time can be problematic, resulting in a bad user experience.
The VAST 3+ standard offers a technical solution called, Ad Pod, that lets publishers/players request a group (or playlist) of ads.
What are Ad Pods?
Ad Pods are a sequenced collection of ads, as described in the IAB VAST4.1 Specification:
Sequence showing multiple Ad Pods (Pre, Mid, and Post Roll pacements) during video content:
Current publisher challenges
- None of the Wrapper/Unified platforms allow publishers to optimize multiple ads coming from different SSP and demand sources.
- There is partial Ad Pod support but there are very few platforms that support optimization within and across pods for a user viewing session.
OpenWrap Ad Pod support: high-level approach and flow
STEP NO | DESCRIPTION |
---|---|
1 | Video SDK /Player/SSAI initiates request for ads with Ad Pod details |
2 | Server side wrapper interprets this request to AdPod optimisation / Selection Engine |
3 | Selection engine looks at available ads (if already present in cache / collection store) if it doesn't have all ads as per rules, sends altered request to Requester |
4 | Bid details with ad exclusion and other rules are sent to Prebid server Bidder adapters module |
5 | The bid responses are added to ad collection and Selection Engine reevaluates if it has all ads based on rules |
6 | Post Timeout or fullfilment of ads per rule all relevant ads is pushed to collector/cache |
7 | All selected / relevant ads are sent to ad pod generator - which generates VAST XML |
8 | This VAST may be hosted in cache - bases on use case / settings |
9 | Ad Pod details and price is communicated back to Client |
10 | Client select best ads from direct / programmatic to serve |
11 | Player gets the ad during break and tries to render all ads in a pod. |
oRTB API specs for Ad Pod requests
PubMatic's implementation adds the AdPod extension object as a child the BidRequest object and/or the Video object. When you use and AdPod object as a child of BidRequest, then the AdPod's settings are global in scope. When AdPod is a child of Video, the AdPod's settings are local scope for the Video object and its parent Impression. When both BidRequest and Video each have an AdPod object, then the Impression. Video.Ext.AdPod
settings override the BidRequest
global settings. And while BidRequest and Video can each use most of AdPod's parameters, there are a few that apply only to BidRequest
as shown in the table below.
Parameter | Type | Mandatory (with a defined AdPod object) | Description | Default value (with a defined AdPod object) |
---|---|---|---|---|
offset | Integer | N | Defines the position where the | 0 |
minads | Integer | N | Minimum number of ads to include in the AdPod . | 2 |
maxads | Integer | N | Maximum number of ads to inlcude in the AdPod. | 3 |
adminduration | Integer | N | Minimum duration in seconds for each ad in the AdPod . | video.minduration/2 |
admaxduration | Integer | N | Maximum duration in seconds for each ad in the AdPod . | video.maxduration/2 |
excladv | Integer | N | Percentage of ads allowed to have the same advertiser in the AdPod . | 100 |
excliabcat | Integer | N | Percentage of ads allowed to have the same IAB category in the AdPod . | 100 |
BidRequest-only parameters | ||||
adpod ( POST method only) | Object | Y | New object for defining an AdPod object. | |
crosspodexcladv | Integer | N | Percentage of ads allowed to have the same advertiser across all AdPods in the BidRequest . | 100 |
crosspodexcliabcat | Integer | N | Percentage of ads allowed to have the same IAB categories across all AdPods in the BidRequest . | 100 |
excliabcatwindow | Integer | N | The number of minutes during which the exclusive IAB rule applies. If two AdPods render within a window, then the rule applies, otherwise the rule resets. | 100 |
excladvwindow | Integer | N | The number of minutes during which the exclusive advertiser rule applies. If two | 100 |
Sample oRTB 2.x request
The sample oRTB request below performs the following:
- Configure two
AdPod
objects:- First
AdPod
:- Minimum duration of overall ad is 10 secs with a max duration of 30 seconds
AdPod
must contain a minimum of two ads and a maximum of 3 ads- Each ad must fall between a minimum of 5 seconds and maximum 10 seconds in duration
- All ads in the pod must come from different advertisers
- IAB categories can match
AdPod
plays at the start of the main video content
- Second
AdPod
:- Minimum duration of overall ad should be 90 sec and max duration of 120 seconds
- Minimum 3 ad should be part of the ad pod and maximum 5 ads
- Each ad should be minimum 30 sec in duration and max 40 sec.
- 50% the ads in the pod can be from same advertiser.
- The IAB categories can be same.
- This
AdPod
will play after 25 min of video playback.
- First
- Global rules:
- These
AdPod
s should not share more than 50% ads from the same advertiser.
- These
Table of Contents