Ad insertion specifics

Specific consideration DAI applications and transcoding

Dynamic Ad Insertion Application

Ad Insertion logic

  1. Without Transcoding involved
    When no transcoding Service is associated to the DAI Service, it is expected that the creatives are transcoded and packaged outside of broadpeak.io. It is also expected that the VAST response will contain m3u8 or mpd Mediafiles.
    In the case where the VAST response does not contain m3u8 or mpd Mediafiles, no insertion will be performed.
  2. With Transcoding involved
    As soon as a transcoding Service is associated to a DAI Service, it is expected that the flow will go through the transcoding and preparation of the creatives through broadpeak.io so they can be delivered in HLS and MPEG-DASH formats.

Ad Insertion with Subtitles in HLS

When implementing Ad Insertion applications with Sources that contains subtitles or captions, compatibility issues are often met because Ad creatives do not contain subtitles tracks. In HLS, if a stream starts with a subtitling variant, and this variant becomes unavailable for the period when the Ad is inserted, most likely it will create issues at the player level.

To avoid this problem, we have implemented a logic with reference to dummy subtitles in broadpeak.io.

broadpeak.io analyses the original VOD stream, and if a subtitle track is available, the Ad inserted in the Manifest will contain reference to dummy segments as per below.

Example of Live Ad replacement:

#EXTM3U 
#EXT-X-VERSION:5 
#EXT-X-INDEPENDENT-SEGMENTS 
#EXT-X-MEDIA-SEQUENCE:0 
#EXT-X-TARGETDURATION:6 
#EXT-X-PROGRAM-DATE-TIME:2011-01-01T00:00:01.000000+00:00 
#EXTINF:4.0001, no desc 
originalstream_12451841_deu=8000-391772911.webvtt 
#EXTINF:4.0001, no desc 
originalstream_12451841_deu=8000-391772912.webvtt 
#EXTINF:4.0001, no desc
originalstream_12451841_deu=8000-391772913.webvtt 
#EXTINF:4.0001, no desc
originalstream_12451841_deu=8000-391772914.webvtt 
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2011-01-01T00:00:19.016000+00:00  
#EXTINF:4.0001, no desc
/empty.webvtt
#EXTINF:4.0001, no desc 
/empty.webvtt
#EXTINF:4.0001, no desc 
/empty.webvtt
#EXT-X-DISCONTINUITY 
#EXT-X-PROGRAM-DATE-TIME:2011-01-01T00:00:31.016300+00:00  
#EXTINF:4.0001, no desc 
originalstream_12451841_deu=8000-391772920.webvtt 
#EXTINF:4.0001, no desc 
originalstream_12451841_deu=8000-391772921.webvtt 
#EXTINF:4.0001, no desc 
originalstream_12451841_deu=8000-391772922.webvtt 
#EXTINF:4.0001, no desc 
originalstream_12451841_deu=8000-391772923.webvtt 
#EXTINF:4.0001, no desc 
originalstream_12451841_deu=8000-391772924.webvtt 
#EXTINF:4.0001, no desc 
originalstream_12451841_deu=8000-391772925.webvtt 

🚧

Limitations

  • This only applies to webvtt subtitling format. Other subtitling formats are not supported.
  • In Live, the original content must be packaged so the subtitling variant is aligned on media variants at the beginning and the end of the Ad break.
  • In VOD, we often see some systems which generate a single webvtt file with all the subtitling data. This is not a supported use case.
    In the case where webvtt media segment is not aligned with the rest of the media variants, broadpeak.io will not be able to insert dummy webvtt segments.

Transcoding logic

Ad creative transcoding is activated by default in broadpeak.io when a transcoding Service is associated with the Ad Insertion Service.

If the VAST response contains a MediaFile of type "mezz" or "mp4", the transcoding flow will be triggered. If the VAST response contains other MediaFile, the transcoding flow will not be triggered.

The insertion will not be performed in the case where the VAST answer does not contain any compatible MediaFile.

Creating a Transcoding Service in broadpeak.io

Transcoding Services definition

It is not possible to define a transcoding Service on your own at this stage. We know it is not ideal but you have to get in touch with us to define the Service. Please reach out to us via your direct CSM contact or via the live chat.

Transcoding consideration period

The first time a creative is returned in the VAST response under a compatible MediaFile, a transcoded job is created to prepare the creative for HLS or DASH delivery. Depending on the transcoding profiles expected and the duration of the Creative, this process may take more or less time.

The creative will only be inserted into a Manifest when the transcoded jobs is over, and ready to be packaged for HLS or DASH delivery through JITP.

Transcoded Ad retention

By default, transcoded creative are stored 1 month in broadpeak.io.
Origin HTTP Cache-Control header is set to max-age 3600 seconds.