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.

In summary, SSAI enables you to:
  • 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.

Web Browsers
  • 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
Note: SSAI is not yet supported on environments that require DASH.

Supported Features with SSAI

We currently support the following features with SSAI:


  • 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:

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.



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:

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 -

Ooyala SDKs


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.


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).