Skip to content

Modes of server-side ad insertion

To monetize your content with ad insertion and get the most out of it, choose the approach that is right for you.

There are the following technologies for Server-Side Ad Insertion (SSAI):

With Flussonic, you can configure SSAI in either mode. For more information, see Configuring ad insertion.

Inserting ads as segments of the main stream

The server inserts ads directly into the stream for broadcasting.

Inserting ads as segments of the main stream has the following features:

  • Control of the viewing session is on the server.
  • The ad source is hidden from the client.
  • Managing cache on the CDN side to personalize ad delivery.
  • Forbid rewinding and pausing of the stream for the client side.

Inserting ads as segments of the main stream can create a good viewer experience due to the following features:

  • Seamless switching from the main stream to the ad. The ad goes in the main stream, and the player doesn't have to download it separately.
  • Ad loading speed. Since the ads are in the main stream, the player doesn't need to request them separately from the server.
  • Ad blocking bypass. Ads are inserted into the main stream so that the URL of the main stream segment cannot be distinguished from the URL of the ad segment in the manifest. In this case, ad recognition requires decoding the frame on the player, which is technically difficult and expensive.
  • Stream playback quality. Viewer doesn't notice any stream profile change when switching to and from ad. It's achieved by pre-transcoding ads for each stream according to the output stream profiles.
  • Stable download speed of stream segments due to the single source of the main stream and ads. The player downloads ad and content segments from a single source. No need to download the beginning of the ad along with the main content.
  • Personalization of ads for viewers. When requesting a stream from the server, the player transmits the data, such as User-Agent and IP address, to personalize the ads. The CDN doesn't cache the manifest of the stream with ads, as this manifest is unique for each playback session.
  • Statistics collection of ad viewing.
  • Data privacy on the service side. Data doesn't leave your systems. Only you know who watched the videos and decide what data to share and with whom.

How does inserting ads as segments of the main stream work

The stream segments are replaced within the play session so that it is impossible to distinguish whether it is a main stream segment or an ad segment.

HLS main stream segment URL http://FLUSSONIC-IP/STREAM_NAME/tracks-v1a1/2021/09/28/09/27/25-05000.ts?token=adv2user-12312324342
Ad segment URL http://FLUSSONIC-IP/STREAM_NAME/tracks-v1a1/2021/09/28/09/27/30-05000.ts?token=adv2user-12312324342

Inserting ads as segments of the main stream with intervals using authorization backend is performed in the following sequence:

Inserting ads as segments of the main stream diagram

  1. The player requests a stream manifest from the server, passing the data, such as User-Agent and client IP address, to personalize ads. It can also be a token.
  2. The server passes the received data to the authorization backend.
  3. Based on the received data, the authorization backend returns a list of ads to the server.
  4. The server selects the ads according to the characteristics of the main stream, creates a manifest of the main stream with the ads and passes the manifest to the player.
  5. The player receives the manifest and starts playing the stream.

SSAI with SCTE markers works similarly.

Inserting ads as separate segments

The player requests ads from the ad source when it encounters the ad start position in the manifest.

Inserting ads as separate segments has the following features:

  • The ad source and the content source are separated. The player downloads the main stream and the ad separately.
  • All information about the ad insertion is transmitted to the player.
  • Not all players can play the stream with ads because of the variety of player versions on the viewer's side (number of unique User-Agents).
  • Switching to and from ads requires buffering for seamlessness.
  • The profiles of the main stream and the ad may be different. This affects the viewer experience as the ad may not reach the viewer.

How does inserting ads as separate segments work

Inserting ads as separate segments with intervals using the authorization backend works as follows:

Inserting ads as separate segments diagram

  1. The player requests a stream manifest from the server, passing the data such as User-Agent and client IP address for personalized ads. It can also be a token.
  2. The server passes the received data to the authorization backend.
  3. Based on the received data, the authorization backend returns a list of ads to the server.
  4. The server inserts URLs to the ads into the main stream manifest and passes this manifest to the player.
  5. The player receives the manifest and starts playing the stream.

Inserting ads as separate segments with SCTE markers works like this:

  1. The player requests the stream manifest from the server.
  2. The server passes the manifest to the player.
  3. The player starts playing the stream.
  4. As soon as the player encounters the ad start position in the manifest, it stops playing the main stream and requests the ad from the server via API.
  5. The server returns information about the ad.
  6. Based on the given data, the player downloads and plays the necessary ad.
  7. As soon as the player encounters the end position of the ad, it switches back to the main stream.