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
17055698129746224405
true
Search Help Center
false
true
true
true
true
true
59
false
false
false
false
Create a Mobile Website
View Site in Mobile | Classic
Share by: