Implementing SSAI with Non-Brightcove Players and SDKs

In this topic, you will learn how to use Brightcove's Server-Side Ad Insertion (SSAI) with non-Brightcove players and SDKs.

Overview

Server-Side Ad Insertion (SSAI) allows you to embed ads into your videos to provide a TV-like viewing experience where ads cannot be blocked by ad blockers in the browser. For SSAI, your videos need to be ingested using Dynamic Delivery, which is the next generation ingest and delivery system reducing your storage footprint and dynamically packaging media.

SSAI works with both DRM and non-DRM content.

Any video that you retrieve from Video Cloud that has been ingested with Dynamic Delivery, will include the ads specified in the VMAP file in your ad configuration.

To play server-side ads with your video content stored in Video Cloud, follow these steps:

  1. Defining an ad tag
  2. Testing your ad tag
  3. Creating an ad configuration
  4. Requesting a Video
  5. Configuring your player

Here are some additional topics:

Defining an ad tag

The ad tag defines the ad that will be retrieved and played. You can use one of the following formats:

Sample VMAP file

Here is an example of a VMAP file:

<vmap:VMAP xmlns:vmap="http://www.iab.net/videosuite/vmap" version="1.0">
  <vmap:AdBreak timeOffset="start" breakType="linear" breakId="preroll">
    <vmap:AdSource id="preroll-ad" allowMultipleAds="false" followRedirects="true">
      <vmap:VASTAdData>
        <VAST version="3.0">
          <Ad id="1">
            <InLine>
              <AdSystem version="1.0">Test Ad Server</AdSystem>
              <AdTitle>
                <![CDATA[ Portals ]]>
              </AdTitle>
              <Description>
                <![CDATA[ Demo ad number 6 ]]>
              </Description>
              <Error>
                <![CDATA[ ]]>
              </Error>
              <Creatives>
                <Creative>
                  <Linear>
                    <Duration>00:00:05</Duration>
                    <TrackingEvents/>
                    <AdParameters>
                      <![CDATA[ <xml></xml> ]]>
                    </AdParameters>
                    <VideoClicks/>
                    <MediaFiles>
                      <MediaFile type="video/mp4" width="1280" height="720" delivery="progressive" id="2" bitrate="4316" minBitrate="320" maxBitrate="320" scalable="true" maintainAspectRatio="true">
                        <![CDATA[ https://general.support.brightcove.com/assets/ads/bc-ads/bcls-ad-6-5seconds.mp4 ]]>
                      </MediaFile>
                    </MediaFiles>
                  </Linear>
                </Creative>
              </Creatives>
              <Extensions>
                <Extension>
                  <xml>data</xml>
                </Extension>
              </Extensions>
            </InLine>
          </Ad>
        </VAST>
      </vmap:VASTAdData>
    </vmap:AdSource>
  </vmap:AdBreak>
  <vmap:AdBreak timeOffset="00:00:05" breakType="linear" breakId="midroll">
    <vmap:AdSource id="midroll-ad" allowMultipleAds="false" followRedirects="true">
      <vmap:VASTAdData>
        <VAST version="3.0">
          <Ad id="2">
            <InLine>
              <AdSystem version="1.0">Test Ad Server</AdSystem>
              <AdTitle>
                <![CDATA[ Marketing ]]>
              </AdTitle>
              <Description>
                <![CDATA[ Demo ad number 4 ]]>
              </Description>
              <Error>
                <![CDATA[ ]]>
              </Error>
              <Creatives>
                <Creative>
                  <Linear skipoffset="00:00:05">
                    <Duration>00:00:12</Duration>
                    <TrackingEvents/>
                    <AdParameters>
                      <![CDATA[ <xml></xml> ]]>
                    </AdParameters>
                    <VideoClicks/>
                    <MediaFiles>
                      <MediaFile type="video/mp4" width="1280" height="720" delivery="progressive" id="3" bitrate="3026" minBitrate="320" maxBitrate="320" scalable="true" maintainAspectRatio="true">
                        <![CDATA[ https://general.support.brightcove.com/assets/ads/bc-ads/bcls-ad-4-12seconds.mp4 ]]>
                      </MediaFile>
                    </MediaFiles>
                  </Linear>
                </Creative>
              </Creatives>
              <Extensions>
                <Extension>
                  <xml>data</xml>
                </Extension>
              </Extensions>
            </InLine>
          </Ad>
        </VAST>
      </vmap:VASTAdData>
    </vmap:AdSource>
  </vmap:AdBreak>
  <vmap:AdBreak timeOffset="end" breakType="linear" breakId="postroll">
    <vmap:AdSource id="postroll-ad" allowMultipleAds="false" followRedirects="true">
      <vmap:VASTAdData>
        <VAST version="3.0">
          <Ad id="3">
            <InLine>
              <AdSystem version="1.0">Test Ad Server</AdSystem>
              <AdTitle>
                <![CDATA[ Brand ]]>
              </AdTitle>
              <Description>
                <![CDATA[ Demo ad number 1 ]]>
              </Description>
              <Error>
                <![CDATA[ ]]>
              </Error>
              <Creatives>
                <Creative>
                  <Linear>
                    <Duration>00:00:08</Duration>
                    <TrackingEvents/>
                    <AdParameters>
                      <![CDATA[ <xml></xml> ]]>
                    </AdParameters>
                    <VideoClicks/>
                    <MediaFiles>
                      <MediaFile type="video/mp4" width="1280" height="720" delivery="progressive" id="4" bitrate="2115" minBitrate="320" maxBitrate="320" scalable="true" maintainAspectRatio="true">
                        <![CDATA[ https://general.support.brightcove.com/assets/ads/bc-ads/bcls-ad-1-8seconds.mp4 ]]>
                      </MediaFile>
                    </MediaFiles>
                  </Linear>
                </Creative>
              </Creatives>
              <Extensions>
                <Extension>
                  <xml>data</xml>
                </Extension>
              </Extensions>
            </InLine>
          </Ad>
        </VAST>
      </vmap:VASTAdData>
    </vmap:AdSource>
  </vmap:AdBreak>
</vmap:VMAP>

Testing your ad tag

It is good practice to verify that your ad tags are valid and work as expected. This will help with debugging other issues during the implementation process.

Creating an ad configuration

The ad configuration defines various aspects of SSAI playback, including a URL to your Video Multiple Ad Playlist (VMAP) file, beacons, and other configurations.

Using Video Cloud Studio

To create an ad configuration using Studio, see the Configuring Server-Side Ad Settings document.

Using SSAI Ad Config API

To create an ad configuration using the API, see the Video Cloud SSAI Ad Config API document.

Requesting a Video

Next, get your video data with server-side ads. To do this, append your ad configuration id as a URL parameter to your Playback API video request.

Sample Playback API response

Here is an example of a Playback API response:

{
  "poster": "https://cf-images.eu-west-1.prod.boltdns.net/v1/jit/1752604059001/dca41ae8-d8f5-48a6-9853-564764d60b84/main/1280x720/12s64ms/match/image.jpg",
  "thumbnail": "https://cf-images.eu-west-1.prod.boltdns.net/v1/jit/1752604059001/dca41ae8-d8f5-48a6-9853-564764d60b84/main/160x90/12s64ms/match/image.jpg",
  "poster_sources": [{
    "src": "https://cf-images.eu-west-1.prod.boltdns.net/v1/jit/1752604059001/dca41ae8-d8f5-48a6-9853-564764d60b84/main/1280x720/12s64ms/match/image.jpg"
  }],
  "thumbnail_sources": [{
    "src": "https://cf-images.eu-west-1.prod.boltdns.net/v1/jit/1752604059001/dca41ae8-d8f5-48a6-9853-564764d60b84/main/160x90/12s64ms/match/image.jpg"
  }],
  "description": null,
  "tags": [],
  "cue_points": [],
  "custom_fields": {},
  "account_id": "1752604059001",
  "sources": [{
    "ext_x_version": "4",
    "src": "http://ssaimanifest.prod.boltdns.net/playback/once/v1/hls/v4/clear/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/master.m3u8?bc_token=NWZmNGQ4ZDlfZjJkMjdkY2ZlZjNhODljNzVmNzlhZTkxZTM0YTBhMmQ5NzI3ZDVmMmZmODIwYjcyMjM0NzMyZDIyZDQ3NTUwZQ%3D%3D",
    "type": "application/x-mpegURL",
    "vmap": "http://ssaimanifest.prod.boltdns.net/playback/once/v1/vmap/hls/v4/clear/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/content.vmap?bc_token=NWZmNGQ4ZDlfOTY5ZjIzMzAzOTAxNzZhZjVlYjllOGJmMzA1YjI4MDE3OTM4NmEyZmRkYTc1OGNkZjM5NTAxMWUxYTE5ZGU5Yg%3D%3D"
  }, {
    "ext_x_version": "4",
    "src": "https://ssaimanifest.prod.boltdns.net/playback/once/v1/hls/v4/clear/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/master.m3u8?bc_token=NWZmNGQ4ZDlfZjJkMjdkY2ZlZjNhODljNzVmNzlhZTkxZTM0YTBhMmQ5NzI3ZDVmMmZmODIwYjcyMjM0NzMyZDIyZDQ3NTUwZQ%3D%3D",
    "type": "application/x-mpegURL",
    "vmap": "https://ssaimanifest.prod.boltdns.net/playback/once/v1/vmap/hls/v4/clear/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/content.vmap?bc_token=NWZmNGQ4ZDlfOTY5ZjIzMzAzOTAxNzZhZjVlYjllOGJmMzA1YjI4MDE3OTM4NmEyZmRkYTc1OGNkZjM5NTAxMWUxYTE5ZGU5Yg%3D%3D"
  }, {
    "codecs": "avc1,mp4a",
    "ext_x_version": "7",
    "src": "http://ssaimanifest.prod.boltdns.net/playback/once/v1/hls/v7/clear/codec_avc1_mp4a/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/master.m3u8?bc_token=NWZmNGQ4ZDlfNjVhYTczMDhmZWY5OWE5Zjk3OGJmNTczYjYyYWFmMGI3OWQxZTYyODc5YTk3NzJiOWY3MDk0NmZjOTVmZjVhMA%3D%3D",
    "type": "application/x-mpegURL",
    "vmap": "http://ssaimanifest.prod.boltdns.net/playback/once/v1/vmap/hls/v7/clear/codec_avc1_mp4a/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/content.vmap?bc_token=NWZmNGQ4ZDlfNzk5NzY0NThhOTlhZWY0OWI3NDc0MDQxMTQxNWMwZjVkYTFlYzdiZTRkMWE2ZmJjODRjODRkY2JlYjZjZWI1Mg%3D%3D"
  }, {
    "codecs": "avc1,mp4a",
    "ext_x_version": "7",
    "src": "https://ssaimanifest.prod.boltdns.net/playback/once/v1/hls/v7/clear/codec_avc1_mp4a/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/master.m3u8?bc_token=NWZmNGQ4ZDlfNjVhYTczMDhmZWY5OWE5Zjk3OGJmNTczYjYyYWFmMGI3OWQxZTYyODc5YTk3NzJiOWY3MDk0NmZjOTVmZjVhMA%3D%3D",
    "type": "application/x-mpegURL",
    "vmap": "https://ssaimanifest.prod.boltdns.net/playback/once/v1/vmap/hls/v7/clear/codec_avc1_mp4a/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/content.vmap?bc_token=NWZmNGQ4ZDlfNzk5NzY0NThhOTlhZWY0OWI3NDc0MDQxMTQxNWMwZjVkYTFlYzdiZTRkMWE2ZmJjODRjODRkY2JlYjZjZWI1Mg%3D%3D"
  }, {
    "profiles": "urn:mpeg:dash:profile:isoff-live:2011",
    "src": "http://ssaimanifest.prod.boltdns.net/playback/once/v1/dash/live-timeline/clear/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/manifest.mpd?bc_token=NWZmNGQ4ZDlfN2Y5MzJhZmYxYjM5ZTRiZTIwNmFlNzg1NWIyOTY3NjlhMTMwZTllMGI2YzEwZmFlMTk2ZmEzODAwMDVlMWMxYw%3D%3D",
    "type": "application/dash+xml",
    "vmap": "http://ssaimanifest.prod.boltdns.net/playback/once/v1/vmap/dash/live-timeline/clear/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/content.vmap?bc_token=NWZmNGQ4ZDlfY2JkMWY4NmY1ZDI2NDQ0NGY1YzAzYzMxNGY5NTJjY2MzYjljMTVjOGM3N2ZhZWRkNTU3YjgxYzkyMDQwOGIzYQ%3D%3D"
  }, {
    "profiles": "urn:mpeg:dash:profile:isoff-live:2011",
    "src": "https://ssaimanifest.prod.boltdns.net/playback/once/v1/dash/live-timeline/clear/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/manifest.mpd?bc_token=NWZmNGQ4ZDlfN2Y5MzJhZmYxYjM5ZTRiZTIwNmFlNzg1NWIyOTY3NjlhMTMwZTllMGI2YzEwZmFlMTk2ZmEzODAwMDVlMWMxYw%3D%3D",
    "type": "application/dash+xml",
    "vmap": "https://ssaimanifest.prod.boltdns.net/playback/once/v1/vmap/dash/live-timeline/clear/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/content.vmap?bc_token=NWZmNGQ4ZDlfY2JkMWY4NmY1ZDI2NDQ0NGY1YzAzYzMxNGY5NTJjY2MzYjljMTVjOGM3N2ZhZWRkNTU3YjgxYzkyMDQwOGIzYQ%3D%3D"
  }, {
    "codecs": "avc1,mp4a",
    "profiles": "urn:mpeg:dash:profile:isoff-live:2011",
    "src": "http://ssaimanifest.prod.boltdns.net/playback/once/v1/dash/live-timeline/clear/codec_avc1_mp4a/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/manifest.mpd?bc_token=NWZmNGQ4ZDlfNGY5Y2NlNjUyMjNiN2RjYTUyOTYyN2EwZjMzNmNiNjA3NzY4OTFjM2MxMDVhYzkzYzY0NzE5NDc4ZTI4MDc2ZQ%3D%3D",
    "type": "application/dash+xml",
    "vmap": "http://ssaimanifest.prod.boltdns.net/playback/once/v1/vmap/dash/live-timeline/clear/codec_avc1_mp4a/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/content.vmap?bc_token=NWZmNGQ4ZDlfZWUxN2FkNjUxZTZmMTZkMzJmM2VhOTY0MTY1NTU1ZmJkNzhiMjgxMTg1ZmI1ZGY1ODcwYmVjOWUzM2E2NGVjMw%3D%3D"
  }, {
    "codecs": "avc1,mp4a",
    "profiles": "urn:mpeg:dash:profile:isoff-live:2011",
    "src": "https://ssaimanifest.prod.boltdns.net/playback/once/v1/dash/live-timeline/clear/codec_avc1_mp4a/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/manifest.mpd?bc_token=NWZmNGQ4ZDlfNGY5Y2NlNjUyMjNiN2RjYTUyOTYyN2EwZjMzNmNiNjA3NzY4OTFjM2MxMDVhYzkzYzY0NzE5NDc4ZTI4MDc2ZQ%3D%3D",
    "type": "application/dash+xml",
    "vmap": "https://ssaimanifest.prod.boltdns.net/playback/once/v1/vmap/dash/live-timeline/clear/codec_avc1_mp4a/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/content.vmap?bc_token=NWZmNGQ4ZDlfZWUxN2FkNjUxZTZmMTZkMzJmM2VhOTY0MTY1NTU1ZmJkNzhiMjgxMTg1ZmI1ZGY1ODcwYmVjOWUzM2E2NGVjMw%3D%3D"
  }],
  "name": "Mt Audubon",
  "reference_id": null,
  "long_description": null,
  "duration": 24128,
  "economics": "AD_SUPPORTED",
  "text_tracks": [],
  "published_at": "2020-05-14T18:51:30.532Z",
  "created_at": "2020-05-14T18:51:30.502Z",
  "updated_at": "2020-05-14T19:46:00.320Z",
  "offline_enabled": false,
  "link": null,
  "id": "6156696074001",
  "ad_keys": null
}

Configuring your player

From the Playback API response (section above), locate the Sources object, copy one of the vmap URL's and paste it in a browser searchbar to see the VMAP response.

Sample VMAP response

Here is an example of a vmap response:

<vmap:VMAP xmlns:bc="bc" xmlns:vmap="http://www.iab.net/vmap-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
  <vmap:Extensions>
    <bc:Brightcove ttl="3600" contenturi="https://ssaimanifest.prod.boltdns.net/us-east-1/playback/once/v1/hls/v4/clear/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/6830b2e4-3298-439d-beef-e04abef9f23c/content.m3u8?bc_token=NWZkMTE5NTlfZWQxNDAzNDRkNTAxNDRlMWEwODU3MTI1MzY2YjAyZWQ5YzlmZTkzY2UwMjM5NTM1MmI2NGRjZDNhNjE2ZDhlOA%3D%3D"
    contentlength="24.0574" payloadlength="50.1835" contenttype="application/x-mpegURL" />
    <bc:thumbnailURL type="thumbnail" width="480" height="270" bandwidth="0">https://ssai.playback.us-east-1.prod.deploys.brightcove.com/v1/thumbnail/1752604059001/dca41ae8-d8f5-48a6-9853-564764d60b84/low-res/6830b2e4-3298-439d-beef-e04abef9f23c/thumbnail.vtt?bc_token=NWZkMTE5NTlfMmVmODIzZDJjMGZkMDBjZjY1YWIxNDQ4Y2YyZmUxYTExNzg5YmIxZDI5ZTdkMjgyODBmMDBmYTViMTE2Yzc0MQ%3D%3D</bc:thumbnailURL>
  </vmap:Extensions>
  <vmap:AdBreak breakType="linear" breakId="PreRoll_0_0" timeOffset="start">
    <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="0">
      <vmap:VASTData>
        <VAST xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <Ad id="1">
            <InLine>
              <AdSystem>Test Ad Server</AdSystem>
              <AdTitle>Portals</AdTitle>
              <Description>Demo ad number 6</Description>
              <Error></Error>
              <Creatives>
                <Creative>
                  <Linear>
                    <CreativeExtensions>
                      <CreativeExtension>
                        <BrightcoveForeignKey>1</BrightcoveForeignKey>
                      </CreativeExtension>
                    </CreativeExtensions>
                    <Duration>00:00:05.9392</Duration>
                    <AdParameters>
                      <xml></xml>
                    </AdParameters>
                    <VideoClicks/>
                  </Linear>
                </Creative>
              </Creatives>
              <Extensions>
                <Extension>
                  <xml>data</xml>
                </Extension>
              </Extensions>
            </InLine>
          </Ad>
        </VAST>
      </vmap:VASTData>
    </vmap:AdSource>
  </vmap:AdBreak>
  <vmap:AdBreak breakType="linear" breakId="MidRoll_5_0" timeOffset="00:00:04.8381">
    <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="1">
      <vmap:VASTData>
        <VAST xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <Ad id="2">
            <InLine>
              <AdSystem>Test Ad Server</AdSystem>
              <AdTitle>Marketing</AdTitle>
              <Description>Demo ad number 4</Description>
              <Error></Error>
              <Creatives>
                <Creative>
                  <Linear skipoffset="00:00:05">
                    <CreativeExtensions>
                      <CreativeExtension>
                        <BrightcoveForeignKey>2</BrightcoveForeignKey>
                      </CreativeExtension>
                    </CreativeExtensions>
                    <Duration>00:00:12.1788</Duration>
                    <AdParameters>
                      <xml></xml>
                    </AdParameters>
                    <VideoClicks/>
                  </Linear>
                </Creative>
              </Creatives>
              <Extensions>
                <Extension>
                  <xml>data</xml>
                </Extension>
              </Extensions>
            </InLine>
          </Ad>
        </VAST>
      </vmap:VASTData>
    </vmap:AdSource>
  </vmap:AdBreak>
  <vmap:AdBreak breakType="linear" breakId="PostRoll_24_0" timeOffset="end">
    <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="2">
      <vmap:VASTData>
        <VAST xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <Ad id="3">
            <InLine>
              <AdSystem>Test Ad Server</AdSystem>
              <AdTitle>Brand</AdTitle>
              <Description>Demo ad number 1</Description>
              <Error></Error>
              <Creatives>
                <Creative>
                  <Linear>
                    <CreativeExtensions>
                      <CreativeExtension>
                        <BrightcoveForeignKey>3</BrightcoveForeignKey>
                      </CreativeExtension>
                    </CreativeExtensions>
                    <Duration>00:00:08.0080</Duration>
                    <AdParameters>
                      <xml></xml>
                    </AdParameters>
                    <VideoClicks/>
                  </Linear>
                </Creative>
              </Creatives>
              <Extensions>
                <Extension>
                  <xml>data</xml>
                </Extension>
              </Extensions>
            </InLine>
          </Ad>
        </VAST>
      </vmap:VASTData>
    </vmap:AdSource>
  </vmap:AdBreak>
</vmap:VMAP>

VMAP extensions

In the VMAP response, Brightcove adds a <vmap:Extensions> section.

The following attributes are associated with the <bc:Brightcove> tag in the extensions section:

VMAP response field attributes
Attribute Description
contenturi A reference to the session-specific manifest - This is what you should load into your player
contentlength The duration of the content video
payloadlength The duration of the total stitched stream

Ad break

The following attributes are associated with each ad block:

VMAP response fields
Attribute Description
timeoffset This can be start, end, or a specific time, which needs to be calculated. If a pod has multiple ads, they can have the same offset because they're inserted at the same "content time".

The following tags are associated with each ad block:

VMAP response fields
Tag Description
Duration This identifies the duration of the ad to be inserted.

Notes

Here are some things to keep in mind when creating your ad strategy:

  • At the start offset, you might have 3 ads of duration 00:00:16.0000, resulting in a total pre-roll pod length of 48 seconds. This means that the actual content start time will be the 48 second mark of the actual stitched manifest.
  • Of the various ad elements, the most relevant is probably the ClickThrough as it identifies the URL link to enable. Note that any associated ClickTracking elements should be beaconed when a user clicks on a link.

Ad tag variables

Ad tag variables allow you to target your ads.

If your ad configuration has any {{url.*}} macros, they should be appended as query parameters when requesting the VMAP.

For example, a macro like

{{url.deviceId}}

should be appended as a query parameter like

?deviceId=xyz

For details, see the Video Cloud SSAI Ad Config API document.

Server-side beaconing

You can configure beaconing to fire server-side impressions and quartile/complete beacons.