Using HLS Ad Markers with AMP.

Ad Marker plugin allows user to get ad avail information from their HLS manifest.

Supported ad tags

Plugin only supports the following ad tags:

  • EXT-X-CUE
  • EXT-X-CUE-OUT
  • EXT-X-CUE-IN
  • EXT-X-CUE-OUT-CONT
  • EXT-OATCLS-SCTE35

Ad Marker Tagging

This section demonstrates how to implement the ad marker plugin for ad tagging depending on the style of the HLS manifest

CUE-IN CUE-OUT Ad Tags

Whether EXT-X-CUE-OUT or EXT-X-CUE-IN is detected within the HLS live manifest, player fires an event containing the ad avail information along the companion tags.

var config = {
  plugins: {
    admarker: {
      resources: [
          { src: "${paths.plugins}admarker/libs/scte35.js", type: "text/javascript" },
          { src: "${paths.plugins}admarker/admarker.js", type: "text/javascript" }]
      }
  }
};
akamai.amp.AMP.create("amp", config, function(event) {
  var amp = event.player;

  amp.admarker.addEventListener('cueout', function(e) {
    //ad break started
  })

  amp.admarker.addEventListener('cuein', function(e) {
    //ad break ended
  })
});

Continuation Ad Tag

In some cases the HLS manifest only provides a continuation tag EXT-X-CUE-OUT-CONT indicating that an ad break is in progress.

akamai.amp.AMP.create("amp", config, function(event) {
  var amp = event.player;

  amp.admarker.addEventListener('continuation', function(e) {
    //do something
  })
});

SCTE35 Markers

As an alternative, Ad marker plugin supports base64 encoded SCT35 messages alongside the EXT-OATCLS-SCTE35 tag. If found plugin will throw a scte35 event along the decoded scte35 message.

akamai.amp.AMP.create("amp", config, function(event) {
  var amp = event.player;

  amp.admarker.addEventListener('scte35', function(e) {
    var message = e.details // decoded base64 scte35 message
    //do something
  })
});