The Digital Video Ad Serving Template (VAST) is a new standard for the XML response from an ad server that is just starting to be used in the industry. Brightcove is an early adopter of VAST. Before considering using VAST, you should verify that your ad server supports it. If your ad servers support VAST, you may consider using it instead of the Brightcove Ad formats. Brightcove plans future enhancements of its VAST support to enable third party ad serving for video, making daisy-chaining of ad servers and ad network integration much easier. These enhancements will allow you to readily use ad networks to sell unsold video ad inventory.
Brightcove now supports VAST ads with all combinations of Video, Companion, and NonLinear elements that are currently supported in Brightcove players. Brightcove does not support the VAST Overlay to Video Ad format.
An important advantage of VAST is that if an ad returned from the ad server contains elements that are not included in the selected ad format, the player will play the elements that it is able to play and all other elements are ignored. When using Brightcove ad formats, if some elements of the ad cannot be used in the specified format, then the ad is not considered a match and would not be returned from the ad server. (Although Brightcove players will try to display VAST creatives in any template, some creatives do not fit in some templates. The table below lists Brightcove-provided templates that have room for the specified VAST format.)
IMPORTANT: Be sure to verify that your ad server supports VAST before you begin using it. It is a new standard and is not supported by all ad servers.
At this time, Brightcove supports most of the VAST functionality; however, it does not support VAST Wrappers, which are required for third party ad serving. Brightcove also does not support the combination of synched video and HTML ads (external ads). All Brightcove ad formats are supported through VAST, except the Overlay to Video variation. Brightcove does not support these video ad impression events: firstQuartile, thirdQuartile, mute, pause, fullscreen. These features will be included in future enhancements to Brightcove's support of VAST.
For a complete copy of the VAST specification, see the IAB website.
Brightcove complies with guidelines issued by the Interactive Advertising Bureau. Read more about Brightcove and the IAB.
The following table lists the VAST ad formats supported by Brightcove. It also lists the Brightcove-provided templates that have room for the specified VAST format. To use the Brightcove ad formats instead of the VAST ad formats, see Supported Ad Formats and Format Codes.
| frmt | ad format | description | supported players |
|---|---|---|---|
| 0 | Video Ad | A video creative (.flv, .swf, .jpg, .png, or static .gif) that plays in the player's video display. | All players |
| 1 | Overlay | Graphical ad in bottom third of the video display that displays while the video plays (.swf, .jpg, .png, or static .gif). | All players |
| 2 | Video Pod (468x60) | Loads a video ad, a 300x250 expandable banner, and 468x60 leave-behind creative. | Tabbed Player Template Compact Tabbed Template |
| 6 | Banner (468x60) | A 468x60 banner (.swf, .jpg, .png, or static .gif) in the bottom right of the player. | Tabbed Player Template Compact Tabbed Template |
| 14 | Video Pod (728x90) | Loads a video ad, a 300x250 expandable banner, and 728x90 leave-behind creative. | Compact Tabbed Template |
| 15 | Banner (728x90) | A 728x90 banner (.swf, .jpg, .png, or static .gif) at the bottom of the player, center justified. | Compact Tabbed Navigation 2.0 Thumbnail Navigation 2.0 Compact Tabbed Navigation 3.0 |
| 17 | Banner (300x60) | A 300x60 banner (.swf, .jpg, .png, or static .gif) that displays to the upper right in the player. | Compact Minimizing with List 2.0 Video Player with Horizontal List 3.0 |
| 19 | Video Pod (300x60) | A video ad with a 300x60 banner. | Video Player with Horizontal List |
| 20 | Overlay Pod (468x60) | Graphical ad in bottom third of the video display that displays while the video plays (.swf, .jpg, .png, or static .gif), with a 300x250 expandable banner and a 468x60 leave-behind banner that displays to the bottom right. | Tabbed Navigation Compact Tabbed Navigation |
| 21 | Overlay Pod (728x90) | Graphical ad in bottom third of the video display that displays while the video plays (.swf, .jpg, .png, or static .gif), with a 300x250 expandable banner and a 728x90 leave-behind banner that displays to the bottom right. | Compact Tab 3.0 |
| 22 | Ad SWF | A SWF (Flash) ad that is loaded from a URL specified in the response XML, which then draws over any part of the player. | All players |
| 23 | Overlay Pod (300x60) | Graphical ad in bottom third of the video display that displays while the video plays, with a companion 300x60 banner that displays in the top right of the player. |
Video Player with Horizontal List |
This section describes the building blocks used to build the VAST XML code. This section provides some basic background information about the XML code. The actual XML code that can be used for each ad format is provided later in this topic.
The Impression URLs are the URLs that are called when the ad begins displaying and result in the publisher being paid. You may add more than one Impression URL. Impression URLS are fired right after buffering for linear ads, and right before the creative is rendered for nonlinear ads, according to the IAB guidelines.
This value is equivalent to the trackStartURL in the Brightcove ad formats. In VAST, the <Tracking event="start"> calls occur at approximately the same time but has a different and less important meaning. All ads should define one or more <URL> tags inside an <Impression> tag. It is recommended that you put the text of the URL inside a <![CDATA[]]> tag to avoid problems with special characters such as quotation marks or ampersands. A typical impression tag will look like this:
<Impression>
<URL id="someAdvertiserName">
<![CDATA[http://adserver.example.com/impression?parameters=adparameter1;adparameter2]]">
</URL>
</Impression>
The following tracking events can be declared in the <TrackingEvents> tag that will cause tracking requests when any of the following events happen:
<TrackingEvents>
<Tracking event="start">
<URL id="yourAdvertiser">
<![CDATA[http://ads.example.com/tracking?;trackPoint=trackstart;frmt=0;duration=13]]>
</URL>
</Tracking>
<Tracking event="midpoint">
<URL id="yourAdvertiser">
<![CDATA[http://ads.example.com/tracking?;trackPoint=mid;frmt=0;duration=13;]]>
</URL>
</Tracking>
<Tracking event="complete">
<URL id="yourAdvertiser">
<![CDATA[http://ads.example.com/tracking?;trackPoint=end;frmt=0;duration=13]]>
</URL>
</Tracking>
</TrackingEvents>
The <Video> tag includes a video click-through URL and a video URL. This first video ad will be chosen.
<Video>
<Duration>00:00:13</Duration>
<AdID>BCID9001000</AdID>
<VideoClicks>
<ClickThrough>
<URL id="yourAdvertiser">
<![CDATA[http://website.example.com/?customerFrom=yourVideo]]>
</URL>
</ClickThrough>
</VideoClicks>
<MediaFiles>
<MediaFile delivery="progressive" bitrate="466" width="480" height="360"
type="video/x-flv">
<URL>
<![CDATA[http://creatives.example.com/videoAds/will_serve_this_advertisement.flv?]]>
</URL>
</MediaFile>
<MediaFile delivery="progressive" bitrate="466" width="480" height="360"
type="video/x-flv">
<URL>
<![CDATA[http://creatives.example.com/videoAds/will_not_serve_this_advertisement.flv?]]>
</URL>
</MediaFile>
</MediaFiles>
</Video>
The duration is in Hours:Minutes:Seconds.
The <AdID> tag is defined by the Ad-ID system on this website https://www.ad-id.org/
Brightcove also supports extensions to the VAST standard to allow static images as pre-rolls. To do this, put the URL to the static image in the MediaFile and set the type to the correct mime type for your image.
Overlay ads are trafficked using the VAST <NonLinear> tag.
<NonLinearAds>
<NonLinear id="overlay" duration="00:00:05" width="480" height="90"
resourceType="static" scalable="true" maintainAspectRatio="true"
creativeType="image/png">
<URL>
<![CDATA[http://creatives.example.com/Ads/overlay_480x90.png]]>
</URL>
<NonLinearClickThrough>
<URL>
<![CDATA[http://advertiser.example.com?clickThrough=overlay_VAST_jpg]]>
</URL>
</NonLinearClickThrough>
</NonLinear>
</NonLinearAds>
The duration parameter is optional and is in Hours:Minutes:Seconds format.
Banner ads are trafficked using the VAST <Companion> tag.
<CompanionAds>
<Companion id="banner" width="468" height="60" resourceType="static"
creativeType="application/x-shockwave-flash">
<URL>
<![CDATA[http://ads.example.com/creatives/banner_468x60.swf]]>
</URL>
<CompanionClickThrough>
<URL>
<![CDATA[http://advertiser.example.com?clickThrough=banner_468x60]]>
</URL>
</CompanionClickThrough>
</Companion>
</CompanionAds>
The creativeType is the mime type of the banner being served.
Expanding banner ads are also trafficked using the VAST <Companion> tag with different parameters. In the example below, two banners are defined: one regular banner for the collapsed form, and one expanded banner with expandedWidth and expandedHeight parameters.
<CompanionAds>
<Companion id="banner" width="728" height="90" resourceType="static"
creativeType="image/jpeg">
<URL>
<![CDATA[http://ads.example.com/banner_728x90.jpg]]>
</URL>
<CompanionClickThrough>
<URL>
<![CDATA[http://advertiser.example.com/?clickThrough=banner728x90_VAST_jpg]]>
</URL>
</CompanionClickThrough>
</Companion>
<Companion id="expanding_banner" width="0" height="0" expandedWidth="300"
expandedHeight="250" resourceType="static"
creativeType="application/x-shockwave-flash">
<URL>
<![CDATA[http://ads.example.com/expanded_300x250.swf]]>
</URL>
<CompanionClickThrough>
<URL>
<![CDATA[http://advertiser.example.com/?clickThrough=expandingBanner300x250]]>
</URL>
</CompanionClickThrough>
</Companion>
</CompanionAds>
Ad SWFs are trafficked using the VAST <NonLinear> Tag. The <id> must be set to adSwf in order for the Ad SWF to load correctly. Without the correct id attribute, the player will mistake the adSwf for an Overlay SWF.
<NonLinearAds>
<NonLinear id="adSwf" width="8" height="8" resourceType="static"
creativeType="">
<URL>
<![CDATA[http://admin.brightcove.com/adswf/Google.swf]]>
</URL>
<AdParameters>
<optionalArg>1</optionalArg>
<SecondParameter>Two</SecondParameter>
</AdParameters>
</NonLinear>
</NonLinearAds>
Note that the <AdParameters> elements are just there to show you that you can freely add child elements to the adSwf element, similar to the <optionalArg> elements in Brightcove AdSwf XML format.
Caution: <Duration> is a reserved tag and should not be used for AdParameters.
For more information, see Developing Ad SWFs.
This section describes each of the supported ad formats, including a visual example and the XML specification.

A Video Ad displays in the video display component of the player. It is supported by all Brightcove player templates. The ad can be served as pre-roll, mid-roll or post-roll. During video ad playback:
Corresponding Brightcove Ad Format for a demo Video Ad example.
<?xml version="1.0" encoding="UTF-8"?> <VideoAdServingTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd"> <Ad id="BC0"> <InLine> <AdSystem>DART</AdSystem> <AdTitle>Brightcove VAST Video Ad</AdTitle> <Description>VAST example of a simple video ad. Equivalent to Brightcove format number 0.</Description> <Impression> <URL id="yourAdvertiser"> <![CDATA[http://ads.example.com/impression?;trackPoint=start;frmt=0;duration=13]]> </URL> <URL id="yourAdvertiser"> <![CDATA[http://ads.example.com/impression?;trackPoint=start;frmt=0;duration=13]]> </URL> </Impression> <TrackingEvents> <Tracking event="start"> <URL id="yourAdvertiser"> <![CDATA[http://ads.example.com/tracking?;trackPoint=trackstart;frmt=0;duration=13]]> </URL> </Tracking> <Tracking event="midpoint"> <URL id="yourAdvertiser"> <![CDATA[http://ads.example.com/tracking?;trackPoint=mid;frmt=0;duration=13;]]> </URL> </Tracking> <Tracking event="complete"> <URL id="yourAdvertiser"> <![CDATA[http://ads.example.com/tracking?;trackPoint=end;frmt=0;duration=13]]> </URL> </Tracking> </TrackingEvents> <Video> <Duration>00:00:13</Duration> <AdID>BCID9001000</AdID> <VideoClicks> <ClickThrough> <URL id="yourAdvertiser"> <![CDATA[http://website.example.com/?customerFrom=yourVideo]]> </URL> </ClickThrough> </VideoClicks> <MediaFiles> <MediaFile delivery="progressive" bitrate="466" width="480" height="360" type="video/x-flv"> <URL> <![CDATA[http://ads.example.com/videoAds/video.flv]]> </URL> </MediaFile> </MediaFiles> </Video> </InLine> </Ad> </VideoAdServingTemplate>

An overlay ad is a graphical ad that displays in bottom third of the video display while the video plays.
Corresponding Brightcove Ad Format for a demo Overlay ad example.

This is a combination of a video ad, a 300x250 expandable banner, and a 468x60 leave-behind creative.
Corresponding Brightcove Ad Format for a demo Video Pod (468x60) ad example.
<?xml version="1.0" encoding="UTF-8"?>
<VideoAdServingTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vast.xsd">
<Ad id="BC2">
<InLine>
<AdSystem>DART</AdSystem>
<AdTitle>SynchedBanner with expanding swf</AdTitle>
<Description>VAST Example of video ad with 468x60 companion banner that
expands to 300x250 banner companion. Equivalent to Brightcove format
number 2</Description>
<Impression>
<URL id="simulatedAdvertiser">
<![CDATA[http://billing.example.com/?trackPoint=impression]]>
</URL>
<URL id="simulatedPublisher">
<![CDATA[http://billing.example.com/?trackPoint=impression2]]>
</URL>
</Impression>
<TrackingEvents>
<Tracking event="start">
<URL id="simulatedAdvertiser">
<![CDATA[http://tracking.example.com/?trackPoint=start]]>
</URL>
<URL id="simulatedPublisher">
<![CDATA[http://tracking.example.com/?trackPoint=start2]]>
</URL>
</Tracking>
<Tracking event="midpoint">
<URL id="simulatedAdvertiser">
<![CDATA[http://tracking.example.com/?trackPoint=mid]]>
</URL>
<URL id="simulatedPublisher">
<![CDATA[http://tracking.example.com/?trackPoint=mid2]]>
</URL>
</Tracking>
<Tracking event="complete">
<URL id="simulatedAdvertiser">
<![CDATA[http://tracking.example.com/?trackPoint=end]]>
</URL>
<URL id="simulatedPublisher">
<![CDATA[http://tracking.example.com/?trackPoint=end2]]>
</URL>
</Tracking>
</TrackingEvents>
<Video>
<Duration>00:00:13</Duration>
<AdID>BCID9001001</AdID>
<VideoClicks>
<ClickThrough>
<URL id="simulatedAdvertiser">
<![CDATA[http://advertiser.example.com/]]>
</URL>
</ClickThrough>
</VideoClicks>
<MediaFiles>
<MediaFile delivery="progressive" bitrate="466" width="480"
height="360" type="video/x-flv">
<URL>
<![CDATA[http://ads.example.com/videoAds/video.flv]]>
</URL>
</MediaFile>
</MediaFiles>
</Video>
<CompanionAds>
<Companion id="banner" width="468" height="60" resourceType="static"
creativeType="image/jpeg">
<URL><![CDATA[http://ads.example.com/banner_468x60.png]]>
</URL>
<CompanionClickThrough>
<URL>
<![CDATA[http://advertiser.example.com/?clickThrough=banner468x60_VAST_jpg]]>
</URL>
</CompanionClickThrough>
</Companion>
<Companion id="expanding_banner" width="0" height="0"
expandedWidth="300" expandedHeight="250" resourceType="static"
creativeType="application/x-shockwave-flash">
<URL><![CDATA[http://ads.example.com/expanded_300x250.swf]]>
</URL>
<CompanionClickThrough>
<URL>
<![CDATA[http://advertiser.example.com/?clickThrough=banner300x250_VAST_expandingBanner]]>
</URL>
</CompanionClickThrough>
</Companion>
</CompanionAds>
</InLine>
</Ad>
</VideoAdServingTemplate>

Corresponding Brightcove Ad Format for a demo Banner (468x60) ad example.

This is a combination of a video ad, a 300x250 expandable banner, and a 728x90 leave-behind creative.
Corresponding Brightcove Ad Format for a demo Video Pod (728x90) example.

Corresponding Brightcove Ad Format for a demo Banner ad example.

Corresponding Brightcove Ad Format for a demo Banner ad example.

Corresponding Brightcove Ad Format for a demo VideoPod (300x60) ad example.
<?xml version="1.0" encoding="UTF-8"?>
<VideoAdServingTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vast.xsd">
<Ad id="BC19">
<InLine>
<AdSystem>DART</AdSystem>
<AdTitle>SynchedBanner 300x60 with expanding swf</AdTitle>
<Description>VAST Example of video ad with 300x60 companion banner that
expands to 300x250 banner companion. Equivalent to Brightcove format
number 19</Description>
<Impression>
<URL id="simulatedAdvertiser">
<![CDATA[http://billing.example.com/?trackPoint=impression]]>
</URL>
<URL id="simulatedPublisher">
<![CDATA[http://billing.example.com/?trackPoint=impression2]]>
</URL>
</Impression>
<TrackingEvents>
<Tracking event="start">
<URL id="simulatedAdvertiser">
<![CDATA[http://tracking.example.com/?trackPoint=start]]>
</URL>
<URL id="simulatedPublisher">
<![CDATA[http://tracking.example.com/?trackPoint=start2]]>
</URL>
</Tracking>
<Tracking event="midpoint">
<URL id="simulatedAdvertiser">
<![CDATA[http://tracking.example.com/?trackPoint=mid]]>
</URL>
<URL id="simulatedPublisher">
<![CDATA[http://tracking.example.com/?trackPoint=mid2]]>
</URL>
</Tracking>
<Tracking event="complete">
<URL id="simulatedAdvertiser">
<![CDATA[http://tracking.example.com/?trackPoint=end]]>
</URL>
<URL id="simulatedPublisher">
<![CDATA[http://tracking.example.com/?trackPoint=end2]]>
</URL>
</Tracking>
</TrackingEvents>
<Video>
<Duration>00:00:13</Duration>
<AdID>BCID9001003</AdID>
<VideoClicks>
<ClickThrough>
<URL id="simulatedAdvertiser">
<![CDATA[http://advertiser.example.com/]]>
</URL>
</ClickThrough>
</VideoClicks>
<MediaFiles>
<MediaFile delivery="progressive" bitrate="466" width="480"
height="360" type="video/x-flv">
<URL>
<![CDATA[http://ads.example.com/videoAds/video.flv]]>
</URL>
</MediaFile>
</MediaFiles>
</Video>
<CompanionAds>
<Companion id="banner" width="300" height="60" resourceType="static"
creativeType="image/jpeg">
<URL><![CDATA[http://ads.example.com/banner_300x60.png]]>
</URL>
<CompanionClickThrough>
<URL>
<![CDATA[http://advertiser.example.com/?clickThrough=banner300x60_VAST_jpg]]>
</URL>
</CompanionClickThrough>
</Companion>
<Companion id="expanding_banner" width="0" height="0"
expandedWidth="300" expandedHeight="250" resourceType="static"
creativeType="application/x-shockwave-flash">
<URL><![CDATA[http://ads.example.com/expanded_300x250.swf]]>
</URL>
<CompanionClickThrough>
<URL>
<![CDATA[http://advertiser.example.com/?clickThrough=banner300x250_VAST_expandingBanner]]>
</URL>
</CompanionClickThrough>
</Companion>
</CompanionAds>
</InLine>
</Ad>
</VideoAdServingTemplate>

Corresponding Brightcove Ad Format for a demo Overlay Pod (468x60) ad example.

Corresponding Brightcove Ad Format for a demo Overlay Pod (728x90) ad example.
<?xml version="1.0" encoding="UTF-8"?>
<VideoAdServingTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vast_loose.xsd">
<Ad id="BC22">
<InLine>
<AdSystem>DART</AdSystem>
<AdTitle>AdSwf VAST ExampleSwf</AdTitle>
<Description>VAST example of Brightcove AdSwf format using
adswf_Example.swf from the developer kit. Equivalent to Brightcove
format number 22.</Description>
<Impression>
<URL id="simulatedNetwork">
<![CDATA[http://billing.example.com/?trackPoint=start]]>
</URL>
</Impression>
<TrackingEvents>
<Tracking event="start">
<URL id="simulatedNetwork">
<![CDATA[http://tracking.example.com/?trackPoint=trackstart]]>
</URL>
</Tracking>
<Tracking event="midpoint">
<URL id="simulatedNetwork">
<![CDATA[http://tracking.example.com/?trackPoint=mid]]>
</URL>
<URL id="simulatedAdvertiser">
<![CDATA[http://tracking.example.com/?trackPoint=mid2]]>
</URL>
</Tracking>
</TrackingEvents>
<NonLinearAds>
<NonLinear id="adSwf" resourceType="static" creativeType="SWF">
<URL><![CDATA[http://ads.example.com/adSwf_Example.swf]]>
</URL>
<AdParameters>
<optionalArg>1</optionalArg>
<SecondParameter>Two</SecondParameter>
</AdParameters>
</NonLinear>
</NonLinearAds>
</InLine>
</Ad>
</VideoAdServingTemplate>
Note that the optionalArg elements are just there to show you that you can freely add child elements to the adSwf element. For more information, see Developing Ad SWFs.

Corresponding Brightcove Ad Format for a demo Overlay Pod (300x60) example.
<?xml version="1.0" encoding="UTF-8"?>
<VideoAdServingTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vast.xsd">
<Ad id="BC23">
<InLine>
<AdSystem>DART</AdSystem>
<AdTitle>Synched Overlay 300x60</AdTitle>
<Description>VAST Example of video overlay ad with 300x60 companion banner
that expands to 300x250 banner companion. Equivalent to Brightcove format
number 23</Description>
<Impression>
<URL id="simulatedNetwork">
<![CDATA[http://tracking.example.com/impression?trackPoint=start]]>
</URL>
</Impression>
<TrackingEvents>
<Tracking event="start">
<URL id="simulatedNetwork">
<![CDATA[http://tracking.example.com/tracking?trackPoint=trackstart]]>
</URL>
</Tracking>
<Tracking event="midpoint">
<URL id="simulatedNetwork">
<![CDATA[http://tracking.example.com/tracking?trackPoint=mid]]>
</URL>
<URL id="simulatedAdvertiser">
<![CDATA[http://tracking.example.com/tracking?trackPoint=mid2]]>
</URL>
</Tracking>
<Tracking event="complete">
<URL id="simulatedNetwork">
<![CDATA[http://tracking.example.com/tracking?trackPoint=end]]>
</URL>
<URL id="simulatedAdvertiser">
<![CDATA[http://tracking.example.com/tracking?trackPoint=complete]]>
</URL>
</Tracking>
</TrackingEvents>
<CompanionAds>
<Companion id="banner" width="300" height="60" resourceType="static"
creativeType="image/jpg">
<URL>
<![CDATA[http://ads.example.com/creatives/banner_300x60.jpg]]>
</URL>
<CompanionClickThrough>
<URL>
<![CDATA[http://advertiser.example.com/?clickThrough=banner300x60_VAST_jpg]]>
</URL>
</CompanionClickThrough>
</Companion>
<Companion id="expanding_banner" width="0" height="0"
expandedWidth="300" expandedHeight="250" resourceType="static"
creativeType="image/jpeg">
<URL>
<![CDATA[http://ads.example.com/creatives/expanded_300x250.jpg]]>
</URL>
<CompanionClickThrough>
<URL>
<![CDATA[http://advertiser.example.com/?clickThrough=banner300x250_VAST_expandingBanner]]>
</URL>
</CompanionClickThrough>
</Companion>
</CompanionAds>
<NonLinearAds>
<NonLinear id="overlay" width="480" height="90"
resourceType="static" scalable="true"
maintainAspectRatio="true"
creativeType="application/x-shockwave-flash">
<URL>
<![CDATA[http://ads.example.com/creatives/overlay_f9.swf]]>
</URL>
<NonLinearClickThrough>
<URL><![CDATA[http://advertiser.example.com/]]>
</URL>
</NonLinearClickThrough>
</NonLinear>
</NonLinearAds>
</InLine>
</Ad>
</VideoAdServingTemplate>