AVOD
Its possible to configure AVOD providers within Backstage, supporting both client side and server side flows. Different providers have their own nuances so a section exists below for each.
CSAI
Client side ad insertion lets the player request the ads from an ad server and play them back when needed. The player will receive either a VMAP or VAST document from Backstage to play these ads.
This section is still incomplete, it requires additional info about how the app/player can determine whether ads need to be handled.
SSAI
Server side ad insertion makes sure to stich the ads directly into the stream, minimising the chance that ads will be blocked by ad blockers. We support SSAI through the following vendors:
Google DAI (Direct Ad Insertion)
Google DAI shares characteristics of both server side and client side flows. Google DAI requires all content to be uploaded to their system, and front end clients playing out this content must do so via the Google DAI SDK.
In order to support this, Backstage allows a number of identifiers to be stored on assets as external references that provide a link to the corresponding content uploaded to DAI;
- DAI.liveAssetKey : DAI Asset key for live content (not required for VOD content)
- DAI.vodVideoId : DAI video ID for VOD content (not required for live content)
- DAI.vodCMSId : DAI CMS Video ID for VOD content (not required for live content)
If these fields are set on an asset, and DAI is configured as the AVOD provider for the Backstage service then these fields we returned in the stream response within the data
field.
If the requested stream is DRM protected then a HMAC token will be generated by backstage and returned alongside the identifiers.
"data": {
"cmsid": "abc123", //VOD CMS ID
"vid": "def456", //VOD video ID
"event": "ghi789", //liveAssetKey only returned for live content
"authToken":"returnOfTheHMAC" //only returned for DRM content
}
MediaTailor
Mediatailor is an AWS product that allows us to customise the manifests/streams to perform ad-insertion. It comes in 2 flavors of tracking:
- Server side tracking (default)
- Client side tracking
In both cases the ads get stitched into the stream directly, however with client side tracking you can implement additional logic to perform things like blocking of ad-skipping & sending custom events to the ad provider.
Client-side tracking
In case you want to use client-side tracking with Mediatailor please follow the following steps:
- Go to the “Ad insertion” config card in the CMS and select SSAI with Mediatailor
- Enable client-side tracking toggle
- Input the session base URL (retrieved from Mediatailor in the AWS console)
When you request a stream with Mediatailor and client-side tracking configured you will receive the data in the following way.
When the stream data contains the session URL and ads Params you should assume client-side tracking is required. To implement client-side tracking using this data please follow the Mediatailor documentation
{
"url": "stream URL",
"type": "hls",
"drm": "unencrypted",
"data": {
"sessionUrl": "session URL",
"adsParams": {
"bs_product_id": "z5OmE4cBFPCsfZYsBWo0"
}
},
"advertisement": null,
"thumbnails": null
}