You can use the YouTube VAST QA tool to verify whether your VAST ad tags meet our third-party ad-serving specifications. You can also use this tool to easily preview your third-party served video ad on the YouTube player.
Approved Third-Party Vendors
Third-party in-stream ads and their companion banner ads must use a linear VAST tag from a YouTube VAST-approved vendor. Note that third-party served ads that violate our ad policies may be limited or suspended. Check below for the detailed XML summary.
In-Stream ads XML summary for VAST ad server response
Element | Attributes | Values | Required | Supported | Notes |
---|---|---|---|---|---|
VAST | Root node | Yes | Yes | ||
version | String (3.0) | Yes | Yes | Must support any VAST 2.* or 3.0 version | |
Ad | ID | String | Yes | Yes | Top-level element wraps each ad in the response |
InLine | None | None | Yes | Yes | Second-level element surrounding complete ad data for a single ad |
AdSystem | None | String | Yes | Yes | Indicates source ad server |
version | String | Preferred | Yes | Internal version used by ad system | |
AdTitle | None | String | No | Yes | Common name of ad |
Description | None | String | No | Yes | Longer description of ad |
Survey | None | URI | No | No | URI of request to survey vendor (YouTube will only support research tracking pixels from certified research vendors in this node. Surveys or survey invitations can’t be served via the VAST XML currently.) |
Error | None | URI | No | Yes | URI to request if ad doesn’t play due to error. YouTube will only execute a request to the URI upon error but can’t pass extra error info. |
Impression | None | URI | Yes | Yes | URI to track impression |
Creatives | None | None | Yes | Yes | Container for one or more Creative elements |
Creative | Yes | Yes | Wraps each creative element | ||
ID | String | No | Yes | Optional identifier | |
sequence | Integer | No | Yes | The preferred order in which multiple Creatives should be displayed | |
AdID | String | No | Yes | Ad-ID for the creative (formerly ISCI) | |
Linear | Yes | Yes | |||
skipoffset | 00:00:05 | No | Yes | VAST 3.0 only | |
Duration | None | Time | Yes | Yes | |
TrackingEvents | No | Yes | |||
Tracking | URI | No | Yes | URI to track various events during playback | |
event | creativeView, start, firstQuartile, midpoint, thirdQuartile, complete, mute, unmute, pause, rewind, resume, fullscreen, expand, collapse, acceptInvitation, close acceptInvitationLinear closeLinear progress skip |
No |
Yes (only for start, firstQuartile, midpoint, thirdQuartile, complete). Only VAST 3.0 supports Skip |
The name of the event to track for the Linear element. The creativeView should always be requested when present. | |
AdParameters | String | No | No | Data to be passed into the video ad. | |
VideoClicks | Yes | Yes | |||
ClickThrough | None | URI | Yes | Yes | URI to open as destination page when viewer clicks the video |
ClickTracking | URI | No | Yes | URI to request for tracking purposes when viewer clicks the video | |
CustomClick | URI | No | Yes | URIs to request on custom events such as hotspotted video | |
ID | String | No | No | Optional identifier | |
MediaFiles | Yes | Yes | |||
MediaFile | URI |
Yes (There needs to be a minimum of 2 separate MediaFile nodes - one for each MP4, and WebM video formats) |
Yes | Location of linear file | |
delivery | progressive | Yes | Yes | Method of delivery of ad (YouTube doesn’t prefer streaming) | |
type | String | Yes (MP4, and WebM) | Yes | MIME type (Popular MIME types include, but are not limited to “video/x-ms-wmv” for Windows Media) | |
bitrate | Integer | Yes | Yes | Bitrate of encoded video in Kbps | |
width | Integer (480) | Yes | Yes | Pixel dimensions of video | |
height | Integer (360) | Yes | Yes | Pixel dimensions of video | |
scalable | Boolean | No | No | Whether it is acceptable to scale the image (YouTube does this by default). | |
maintainAspectRatio | Boolean | No | Yes | ||
apiFramework | String | No | No | If the MediaFile is interactive, the apiFramework defines the method to use for communication. | |
CompanionAds | No | Yes | |||
Companion | No | Yes | Any number of companions in any desired pixel dimensions. | ||
ID | String | No | Yes | Optional identifier | |
width | Integer (300) | Yes (if serving companion) | Yes | Pixel dimensions of companion | |
height | Integer (60) | Yes (if serving companion) | Yes | Pixel dimensions of companion | |
expandedWidth | Integer | No | No | Pixel dimensions of expanding companion ad when in expanded state (expandables not allowed with In-Stream ads on YouTube) | |
expandedHeight | Integer | No | No | Pixel dimensions of expanding companion ad when in expanded state (expandables not allowed with In-Stream ads on YouTube) | |
apiFramework | String | No | No | The apiFramework defines the method to use for communication with the companion | |
StaticResource | URI | No | Yes | URI to a static file, such as an image. | |
creativeType | String | Yes (if serving companion using StaticResource) | Yes | Mime type of static resource, only Image types are supported | |
IFrameResource | None | URI | No | Yes | URI source for an IFrame to display the companion element |
HTMLResource | None | CDATA | No | No | HTML to display the companion element |
JavaScriptResource | None | CDATA | No | No | JavaScript to display the companion element |
TrackingEvents | No | No | |||
Tracking | URI | No | No | URI to display the companion element | |
event | creativeView | Yes (if serving companion) | No | The creativeView should always be requested when present. For Companions creativeView is the only supported event. | |
CompanionClickThrough | None | URI | Yes (if serving static image without hard-coded click-through) |
Yes | URI to open as destination page when viewer clicks the companion. |
AltText | None | String | No | Yes | Alt test to be displayed when companion is rendered in HTML environment |
AdParameters | String | No | No | Data to be passed into the companion ads | |
NonLinearAds | No | No | Not currently supported (only Linear In-Stream) | ||
Extensions | No | No | |||
Extension | type | Any | No | No | Any valid XML may be included in the Extensions node but will be ignored. |
Wrapper | None | None | No | No | Second-level element surrounding wrapper ad pointing to Secondary ad server |