Third-party ad serving

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

Was this helpful?

How can we improve it?
Search
Clear search
Close search
Google apps
Main menu
13652419201906341952
true
Search Help Center
true
true
true
true
true
59
false
false