❆ Creating an AVOD Service

How to activate Dynamic Ad Insertion on a VOD catalog

A Dynamic Ad insertion service has one main purpose: monetize your video Assets. This Service is based on a content - live or asset catalog - and uses an ad server to identify the ads that have to be inserted. In this article, we will set a pre-roll ad insertion Service for VOD by going through the following steps:

  1. Creating a VOD catalog as a Source
  2. Creating an ad server as a Source
  3. Creating an ad insertion Service
  4. Previewing the service and retrieving the output URL

If you want to implement a Service but you don’t have any relevant Sources yet, we provide Sources samples you can use in your own tests.

Creating a VOD catalog as a Source

Sample: https://origin.broadpeak.io/bpk-vod/voddemo/default/5min/

& asset sample: sintel/manifest.mpd

An asset catalog is defined by a path that indicates where the assets are stored. broadpeak.io needs to have an asset sample to validate that the plateform can handle the format of the stored video assets.

We can notice that a small status box indicates that the source is valid and can be created.

Creating an ad server as a Source

Sample: https://bpkiovast.s3.eu-west-1.amazonaws.com/vastbpkio20s

The ad server is a request URL that returns a VAST or VMAP file (XML). This file indicates a list of URLs to commercials that have to be inserted. In this example, we keep it simple: the VAST always indicates a single ad of 20 seconds.

Usually, the ad server is a third-party that dynamicaly returns different ads according to the user profile. This decision is made thanks to query parameters. These query parameters are part of the request made to the ad server. Some of them usually come from the player's request, to match ads with user profile. The Ad Server Queries field is there to set this behavior. To keep things simple, we don't use this option in our current scenario.

Creating an ad insertion service

Once we have created our two main components - an asset catalog and an ad server - as sources, we can start building our service. Several ad insertion scenarios are possible. Here, we want to insert ads in each VOD stream. Choosing an asset catalog as a source for our service will lead us to this use case.

Some attentive users may have noticed a Transcoding option here. Transcoding is useful when ads are not already encoded. In such a situation, a transcoding profile is necessary to transform the original ads in a format that is compatible with the VOD asset. The transcoding profile is part of your account settings; if your account needs some, please reach the support team out. And if you are using your own sources (ad server and VOD catalog) without transcoding, be sure the encoding is the same for the two sources.

Previewing your service and retrieving output URL

Is our service ready to operate? Let's check that with the preview page, from your service list.

See, the preview uses the asset sample we declared when creating the asset catalog. broadpeak.io creates a path as service output URL. To request any video of our catalog with a pre-roll ad insertion, we just have to replace the original path by the new one in the VOD request. This VOD request can be tested in any video streaming player.

  • For our sample asset, here is a comparison between original and new URL:

VOD original URL : origin.broadpeak.io/bpk-vod/voddemo/default/5min/sintel/manifest.mpd

VOD URL with ads : stream.broadpeak.io/xxxxhashxxxx/bpk-vod/voddemo/default/5min/sintel/manifest.mpd

  • But of course, that works with another asset of the same catalog:

VOD original URL : origin.broadpeak.io/bpk-vod/voddemo/default/5min/cosmoslaundromat/manifest.mpd

VOD URL with ads : stream.broadpeak.io/xxxxhashxxxx/bpk-vod/voddemo/default/5min/cosmoslaundromat/manifest.mpd


What if you want ads inserted inside the VOD asset?

We're now discussing a second level of VOD catalog monetization. This is where VMAP files come into play. VMAP files are a kind of "meta-VAST" XML files sent by ad servers for AVOD. Instead of a single ad pod, they indicate several ad insertion opportunities, each with:

  • an attached VAST URL, which determines what ads to insert
  • a cue-point that indicates where to insert the ads in the VAST (i.e., preroll, postroll, after 15 minutes, or after 30% of the VOD asset...)

Either your ad server supports VMAP files and knows cue points, or it doesn't. In the latter case, why not use our Ad proxy to handle those ad insertions at chosen cue points? Please visit this page: ad-proxy


What’s Next

Do you want to discover Ad insertion in detail ? Please visit our dedicated section