Key concepts

Discover the terminology and set of features related to DAI services at a high level

Different ad insertion service types

A DAI Service is defined by two uniquely identified sources:

  • a content source : either live or asset catalog type
  • an ad server source (ad server type) that will return VAST or VMAP files.

Depending on the type of source, you can set different ad insertion service types:

Ad insertion typeBehaviorSource type
Pre-roll onlyInsert an ad break ad before the content starts playing. This ad insertion type requires the ad server to return a VAST payload that lists the ads to insert.Live source or Asset catalog (VOD)
Pre-roll, mid-roll and post-rollInsert ad breaks before, during and at the end of the content. It requires the ad server to return a VMAP payload to identify the ad break placement and list the ads to insert, or the use of the Ad Proxy.Asset catalog (VOD)
Ad replacementIdentify ad break opportunities in a live stream thanks to SCTE35 markers and insert alternative ads provided by VAST requests to an ad server.Live source with SCTE35 markers

Live pre-roll and live ad replacement are compatible and can be both activated within a service, i.e. a single video stream.

You can find more info about the 3 types of ad insertion in the Use cases section. The rest of this article presents some key concepts that are necessary to understand in order to fully benefit from DAI services.

Ad Server

An Ad Server is the service/component which programmatically decides which ads, and which pod (sequence of ads) is to be returned when getting a request from a Server Side Ad Insertion (SSAI) service like the one. An Ad Server is generally part of an SSP (Supply Side Platform) and is typically communicating with a DSP (Demand Side Platform) to match offers from advertisers.

Regardless of whether the ad campaigns are sold through Direct or Programmatic, the SSP is also the service/component which collects the ad tracking beacons (typically quartiles from 0% until 100%) to collect ad impression metrics. communicates with Ad Servers through protocols standardized by IAB. It is agnostic to what Ad Server is being used as long as the ad server can interface through the API using VAST (in the case of live, or pre-roll for asset catalogs) or VMAP (in the case of a VoD asset catalog).


IP Whitelisting

For security and ad fraud reasons, some Ad Servers need the SSAI service (here, to be whitelisted to access their backend API. If this is the case, don't forget to add the IP addresses specified in this section to unlock communication.

Within, an ad server is defined as a source with the Ad server type. Here is an example of an Ad Server definition:

The ad server query parameters are optional. They can be static or dynamic. They are typically used to ensure that the VAST or VMAP request can be properly identified and processed by the ad server.


Pre-integrated Ad Servers

You will soon be able to select some pre-integrated Ad Servers. In this case, the corresponding queries will already be filled in as a default template so that you do not need to worry about this part. Stay tuned!

In the meantime, if you cannot find the appropriate query parameters in the Ad Server documentation, feel free to contact our Customer Success through the chatbot, for instance. We will do our best to impress you (and your ads of course ;-)).

Query Parameters for ad server

Query parameters sent by the end user client are a defined set of parameters attached to the end of a URL behind the ? mark and separated by the &. They are extensions of the URL that are used to help define specific contents or actions based on the data being passed.

In the case of DAI, query parameters will allow the Ad Server to decide what ad pod should be served when the request is being made by the SSAI service. Several types of query parameters can be used by with

  • Hard coded query parameters : they have always the same value. These values can be set directly in source. E.g.: ?w=1920&h=1080 or ?app_bundle=588207
  • Dynamic query parameters from they are either generated, for instance ?cb=$MMVAR_CACHE_BUSTER
  • Dynamic query parameters from client and forwarded by : this parameters are in the client request's headers or appended at the end of the client request and are typically used to specify a combination of Streaming Service Provider ID and audience. E.g.: ?ua=$http_user_agent or ?content_id=$arg_video_id will actually extract or generate those query parameters and append them in the VAST or VMAP request sent to the Ad Server.

The following streaming URL shows one of the simplest query parameters that can be used to stream a service :

More information on these options can be found in this article

Ad Proxy

There are times when the payload returned from the ad server does not fully comply with the requirements of your use case. provides functionality to tune the integration with the ad server.

AVOD Scheduling

Ad insertion in AVOD scenarios generally require the ad server to return a VMAP payload, which essentially contains a schedule instructing the system in charge of inserting the ads (in this case, at what point in the asset timeline to perform the insertion.

However, not all ad servers are able to return such a payload. If your ad server returns a VAST payload, it will only be used as a pre-roll.

Luckily, the Ad Proxy feature can be used to dynamically generate such a schedule of ad opportunities and interact with the ad server’s standard VAST tags to fill them. You will find more information on this feature in Ad Proxy for AVOD ad scheduling

Transcoding option

An ad insertion service is a combination of a VOD or Live source and an ad server that indicates ads to insert. For the insertion to be effective, the source's encoding and the ad's encoding must be compatible. gives you the capability to specify optional transcoding parameters for creatives that are not encoded yet. A transcoding profile will detail the way a mediafile has to be encoded : layers, resolution, biterate, codecs etc.

When creating an ad insertion service, you have the choice to activate the transcoding option and choose a relevant transcoding profile (see here to check how to create a transcoding profile)

  • If deactivated, will fetch the already prepared ads using the ad creative URL returned in the Ad Server response. This is typically matching the ad inventory Direct Sales mode.
  • Conversely, if activated, transcode all new ad creatives with the transcoding and packaging parameters specified in the transcoding profile.

Transcoding ad creatives gives you the confidence to maximize and control end user QoE. This is an important capability in the case of Programmatic ad sale, as ad creatives are selected on the fly through real time bidding exchanges or market places without any guarantee in terms of quality or consistency with the ABR profiles used by your streaming services.

Ad breaks and gap filler

Ad replacement is a service type that is currently available for live streams only. The principle of ad replacement is to insert ads during time periods that are identified in the live source manifest. Streaming standards are using SCTE35 markers for such identification.

When an ad replacement happens, requests to the ad server an ad sequence that matches the duration of the breaks. Often, inserted ads can not match perfectly the duration of the ad break. The remaining seconds between the end of the last ad and the end of the ad break can be filled by a Gap Filler.

The gap filler is based on a Slate source which has been already declared in You can use promo content such as a logo to leverage and promote your brand or any other service package.

Server Side Ad Tracking

Ad tracking with can work with a Client Side Ad Tracking system, which uses a tracking link between player and Ad server. In that case, the platform won't be part of the ad tracking workflow.

But if players can not handle ad tracking, provides an Server Side Ad Tracking (SSAT) system that can be activated when creating any ad insertion service. In that case, the platform sends beacon requests to the ad server to declare what part of the ad has been returned to the player: impression, start, 25%, 50%, 75% and complete.