Contact Support | System Status
Page Contents

    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.


    Page last updated on 14 Dec 2020