Break-level ad replacement

There are a number of parameters that determine how the source stream is manipulated to perform replacement of ad breaks detected by broadpeak.io. This page goes through various scenarios and illustrates them

In a Live DAI service, broadpeak.iowill attempt to substitute the original ad break with ads retrieved from the ad server, if the following conditions are met:

  1. An ad break was detected in the live source, whether from SCTE-35 markers (in a Live Ad Replacement scenario), or from an Ad Break Slot (in a Virtual Channel scenario).
  2. The ad server was called and returned a valid VAST response with one or multiple usable Ads.
  3. The ad creatives were in a format compatible with the source, or were successfully transcoded and packaged into a compatible format by broadpeak.io(assuming that the transcoding option was configured correctly).

In an ideal scenario, the ad server will return enough ads so as to fill the whole duration of the ad break:

In this example, the ad server responds to a call to fill an ad break of 100 seconds with 3 ads for a total duration of 100 seconds. A full replacement of the ad break is performed.

In this example, the ad server responds to a call to fill an ad break of 100 seconds with 3 ads for a total duration of 100 seconds. A full replacement of the ad break is performed.

ℹ️

If any of the ads returned by the ad server is invalid, or has not yet been transcoded, it will not be inserted. In this case, one of the following behaviours will apply

Gap handling

Gap filling

If the ad server returns ads for a total duration inferior to the ad break's (or returns more ads than necessary, but in a way that they cannot be used to perfectly fill the duration of the ad break), and a Gap-filler / Slate has been configured on the service, broadpeak.iowill attempt to fill the remainder of the duration of the ad break (after ads have been inserted) with segments of the gap filler asset or slate.

Here, the ad server returns only 60 seconds of ads. <<productName>>inserts 40 seconds of gap filler to complete the substitution of the original ad break

Here, the ad server returns only 60 seconds of ads. broadpeak.ioinserts 40 seconds of gap filler to complete the substitution of the original ad break

❗️

This behaviour only applies if there is at least 2 seconds of time remaining between the total duration of the replacement ads and the duration of the original ad break.

Insertion of the gap filler is also only possible if the remaining duration is larger or equal to the duration of the first segment of the gap filler.

If you use an image or video slate, transcoded and packaged by broadpeak.io, the segments will be 2 seconds. If you use an asset as gap filler, you are in control of the segment duration.

No gap filling

If no gap filler is configured (or if it has not yet been transcoded in the case of an image or video slate), no gap filler will be inserted, and the stream will switch back to the source stream in the middle of the ad break, potentially in the middle of an original ad

Again, the ad server only returns 60 seconds of ads. Because no gap filler was configured, the service stream lands abruptly in the middle of an original ad after the last insertion.

Again, the ad server only returns 60 seconds of ads. Because no gap filler was configured, the service stream lands abruptly in the middle of an original ad after the last insertion.

Note that if a gap filler has been configured, but the ad server returns an empty VAST response, or none of the ads in the response is usable (either being incompatible or not yet transcoded and package), no ad replacement will be performed, and the gap filler will not been used either.

Again, the ad server only returns 60 seconds of ads. Because no gap filler was configured, the service stream lands abruptly in the middle of an original ad after the last insertion.

This time, the ad server returned no ads. No replacement was performed, and no gap filler was used either. The users get to see the full original ad break.


🚧

Troubleshooting

If you observe that no replacement of ad breaks is done in your service, check the troubleshooting steps in Ad insertion issues