Server Side Ad Insertion
This is an end-to-end guide to Server Side Ad Insertion (SSAI). For information on integrating SSAI with the Ooyala Live stream, please see here. For information on using SSAI for VOD assets, please see here.
Introduction to SSAI
This document provides the following information:- An end-to-end understanding of Ooyala’s Server Side Ad Insertion (SSAI) offering, which includes Live, VOD, and Player.
- Details on how to enable and configure SSAI for a customer.
With SSAI, an ad is inserted into the video stream so it becomes a single piece of content. SSAI is specific to advertising on live content and provides monetization support that lets providers sew ads directly into the live video stream, creating one piece of content.
This ad insertion model provides flexibility and minimizes latency in fast-changing live environments, reducing the chances for errors and providing a more seamless ad experience for audiences.
- Increase viewer engagement with broadcast content through inserting more targeted and personalized ads into Live streams.
- Serve ads to all kinds of devices.
- Offer the most optimal viewing experience with in stream ads.
- Do target ads.
- Increase ad impression and boost inventory yield and live event revenues by circumventing ad blockers.
- Increase ad fill rate.
Before You Start - SSAI Considerations
Supported Environments for SSAI
See Supported Browsers and Operating Systems for Player V4 for information about the currently supported versions of the environments listed below.
- Microsoft Edge
- Safari
- Chrome
- FireFox
- IE
- Chrome Mobile
- Safari Mobile - only supported for Non-Smart Player. This means that such
environments will have the following limitations:
- Locking of the player controls during the ad is not available so users will be able to seek past the ad.
- Impressions handled by server and may be less accurate.
- Only playhead position event impressions can be made. Fullscreen, pause/resume, and volume change events are not available.
App Environments Supporting SSAI
- Android
- iOS
- TVoS
- Amazon Fire TV
Supported formats for SSAI
- HLS v3 for both Live and VOD
Ad Servers Supported
- DFP
- Pulse
Supported Features with SSAI
We currently support the following features with SSAI:
VOD
- Pre-Roll, Mid-Roll, and Post-Roll.
- Content addition is performed with SSAI to the video stream.
- Personalized ad support, which means that every user can have a different combination of ads based on what is configured in the ad server.
- Support for VAST 3.0.
- eHLS support available. DRM support only available for HLS.
- Ads are downloaded from the Ad Server and transcoded to match the processing profile used with the main video content encoding.
- SSAI for VOD is supported for both Azure and Elemental.
- Ads are always served through Ooyala CloudFront CDN. Other CDN support will come in the future. Customers video segments will be delivered as the serving configuration but Ad segments will always be supported via Cloudfront CDN.
- Ad cue points can be added as follows. If multiple methods are used, then the predefined priority order is followed:
- Backlot ad sets and then assigning the ad set to the asset (priority order 3)
- Parameters set as custom metadata at the asset level (Priority order 2)
- Page level player parameters (priority order 1)
See the SSAI User Guide for VOD Assets for more information.
- Only Mid-Roll ads are supported.
- Content replacement is performed with SSAI to the Live stream.
- includes both personalized and non-personalized ad support.
- Supports Pre fetching of ads.
- Support for VAST 3.0.
- Ads are downloaded from the Ad Server and transcoded to match the processing profile used with the VOD.
- SSAI for Live is only supported with Ooyala's Encode and Package model.
- Ad cue point support via
- In-stream SCTE-35 ad marker at the channel level.
- Big Red button functionality to insert ad avails manually (in this case, the customer must send the source stream to Ooyala via RTP).
- Calling Live platform API call.
- Ad support in DVR (if the customer scrubs back in DVR, they will see ads if present).
- Slate insertion when ad avail and ad length do not match.
- Both server and client side ad impression reporting.
- Live to VOD archive without ads.
Live Ad Insertion API Call
We provide the option to insert the ad segments through a button on the UI or through API calls.
The following example shows the details of the API call that needs to be made to insert the ad markers in the stream, which determines where the ad segments are being inserted.
METHOD: POST
URL: https://live.ooyala.com/v2/channels/<channel_id>/insertAdMarkers
BODY: {"duration":60000,"delay":0}
Duration should be no less than 1000.
60000 is equal to 60 seconds.
The delay is in milliseconds.
Unsupported Formats with SSAI
We currently do not support the following with SSAI Live or VOD:
- Streams with Multi-Audio Tracks (Single-Audio Track streams only are supported).
- HEVC codec.
- DASH, Smooth output streams.
Processing Profile for Ads in VOD SSAI
For VOD SSAI, ads are downloaded from the Ad server and transcoded based on a predefined profile that has 20 different bitrates and resolution combination. All standard Ooyala recommended bitrates are part of this.
During ad insertion, the Ads Proxy service reviews the output HLS bitrate and resolution list and picks the most appropriate bitrates of the ad. This allows us to transcode the ad only once for all the different processing profile per provider.
Processing Profile for Ads in Live SSAI
For Live SSAI, ads are downloaded and transcoded as per each Live channel profile.
Ooyala Player plugin for SSAI
As per the IAB standard, ad impression should be done from the client side, i.e. the player. The player plugin for SSAI will support the following features:
- Support click through, display ad timer, disabling scrubber bar during ad break.
- Perform Ad impression on a quartile basis.
Ooyala Web Player
Plugin Name: Ooyala_SSAI.js ; Full path:
http://player.ooyala.com/static/v4/production/ad-plugin/ooyala_ssai.min.js
Details: The Ooyala SSAI Plugin is not included by default it must be added inline (Advanced Embed) or as a URL parameter of the Standard Embed (SSAI URL parameter - https://help.ooyala.com/video-platform/concepts/pbv4_plugins_embed.html)
Ooyala SDKs
iOS
The libraries that need to be included in the applications are the OoyalaSDK.framework and OoyalaSSAISDK.framework.
You can download the Ooyala Mobile SDK for iOS from here.
Android
The libraries that need to be included in the applications are core.jar, OoyalaSsai.jar, and SkinSDK.
You can download the Ooyala Mobile SDK for Android from here.
Ad impression with a Non-Ooyala Player
SSAI for VOD and Live will work on any player that can playback HLS. This means if the customer is using a Non-Ooyala Player (a player different than Ooyala Player), we can still support SSAI. To perform ad impression using a Non-Ooyala player, we support server side ad impression.
However, for VOD SSAI to enable server side ad impression, the customer must deploy the following script, which will send play head information and in return the Ads Proxy service will perform the impression calls.
Analytics related to SSAI
There is no additional metrics available in IQ related to SSAI. All ad impression should be reviewed in the Ad server dashboard directly.
However, video metrics will be reported as normal (same as if CSAI ads were inserted).