A VAST ad tag URL is used by a player to retrieve video and audio ads. You can manually assemble a VAST ad tag URL or modify an existing URL using the parameters below, and then test with the VAST suite inspector. You can also review and test using these sample tags.
General URL requirements
- Protocol: VAST ad tags support both http and https. Impression tracking URLs respect the current SSL setting and return as either http or https. Click-through and click-tracking use http since they redirect from another page.
- Domain: The use of dynamic domains, created via the pattern match macro or any other dynamic method, is not allowed and will result in an error.
- Live traffic: Ad tag URLs for live stream video must contain
/live
in their path to ensure the ability to handle heavy traffic volumes, where all ad breaks are delivered at the same time.
Example of a VAST ad tag
A sample VAST ad tag URL, with parameters and assigned values would look something like this:
https://securepubads.g.doubleclick.net/gampad/ads?env=vp&gdfp_req=1&output=vast&iu=/1234/video-demo&sz=400x300&unviewed_position_start=1&ciu_szs=728x90,300x250
Jump to a specific parameter in the list
Parameter | Details | |
---|---|---|
aconp
(Audio continuous play) |
Recommended per MRC Audio Measurement Guidelines The audio continuous play parameter accepts a constant value that indicates whether the player intends to continuously play audio content. This parameter should be left unset if it's not known. Usage exampleContinuous play ON: Continuous play OFF: |
|
ad_rule
(Ad rule) |
The ad rule parameter accepts a constant value that indicates whether to return a VAST creative or an ad rules response. The default setting for ad rules depends on an Ad Manager network setting. You can override the setting for specific ad tags using the examples below. Usage exampleRequest for VAST creative: Request for ad rules (VMAP): RequirementRequired for video ad rules |
|
ad_type
(Ad type) |
The ad type parameters accept a constant value that indicates the ad types that should be returned for the request. This parameter is only required for audio ads. Usage examplesAllows only audio ads: Allows both skippable and non-skippable video ads: Allows both audio and video ads: The
audio_video ad type is intended to be used only for serving video creatives into audio content that supports video ad playback or audio creatives into in-stream video players for content that can be "listenable" in nature. For example, sports streams, videocasts, news, etc. Read more about audio in video content. Allows only skippable video ads: Allows only non-skippable video ads: RequirementRequired for audio ads |
|
addtl_consent
(Additional Consent) |
The Additional Consent parameter accepts variable values and is used by publishers who wish to integrate with the IAB TCF v2.0 and use a vendor that is not yet registered with the IAB Europe Global Vendor List but are on Google's Ad Tech Providers (ATP) list. Direct VAST requests don't automatically read the values, but they're accepted when added to ad tags. You can read more about the values passed to this parameter in the Additional Consent Mode technical specification. Usage example
|
|
afvsz
(Non-linear ad sizes) |
The non-linear ad sizes parameter accepts constant values which should be a comma-separated list of non-linear ad sizes that can be displayed in the video ad slot. These sizes must be any of the those supported:
When using the IMA SDK, this field will be overwritten and populated with all supported sizes that fall within the nonLinearAdSlotWidth and nonLinearAdSlotHeight. This parameter can be left out or empty when no non-linear sizes are supported. Usage exampleAll sizes are supported: Max width is 250: Max height is 60: Max width is 100:
RequirementRequired for non-linear video ads when not using the IMA SDK |
|
allcues
(All cue points) |
This parameter accepts variable values which are a comma-separated list of cue points, in milliseconds. For each value, Ad Manager returns an ad break. The If time-based cues are used in your ad rules (for example, "Every N seconds" or "At fixed times"), then those set in the ad rule are used, and the cues passed into Usage exampleCue points at 10 and 20 seconds: |
|
ciu_szs
(Companion sizes) |
The companion sizes parameter accepts variable values which are a comma-separated list of companion sizes. Pipe-separated ( Usage example
Sizes with a multi-size slot: |
|
cmsid
(Content source ID) vid
(Video ID) |
The content source ID and video ID parameters accept variable values. In order to target ads to video content, your master video tag needs to include both of these parameters. The The Usage example
If you are building a tag for Dynamic Ad Insertion with video on demand, you should use the macros that will dynamically insert the correct content source and video ID. For example: RequirementRequired for video content targeting |
|
correlator
(Correlator) |
The correlator parameter accepts a variable value that is shared by multiple requests coming from the same page view. It's used to implement competitive exclusions, including those in cookieless environments. If the IMA SDK is used, the correlator value is set automatically. If your player attempts to set this value, the SDK overwrites it with its own value. If the IMA SDK is not used, ensure that you set this value to a truly random, positive, integer value that is not being reused by multiple page views. Usage example
RequirementRecommended for Programmatic monetization |
|
cust_params
(Custom key-value parameters) |
The custom parameters parameter accepts variable values which are key-value pairs that allow you to set specific targeting, such as demographics, certain positions on a page, or a particular page or pages. Usage exampleSee examples of how to add key‑value pairs. |
|
description_url
(Description URL) |
The description URL parameter accepts a variable value that should describe the video playing on the page. Outline the page with 1-3 paragraphs describing the content. For example, stitch together the The This parameter is not set automatically by the IMA SDK. It needs to be set manually. Usage exampleURL-encoded: Non-encoded: RequirementRequired for web, app, and Ad Exchange Recommended for Programmatic monetization |
|
dth
(Device type hint) |
The device type hint parameter accepts a constant value that helps reduce device misclassification, specifically on connected TV and set top box environments. Device misclassification may result from unintended errors from the publisher or connected TV OEM. This parameter would be used in conjunction with other signals for Google to automatically flag instances where connected TV inventory may be reclassified. Usage examplesRequests from:
RequirementRecommended for Programmatic monetization on connected TV. This parameter is recommended for PAL and PAI (non-SDK) implementations. It is not needed for IMA SDK or DAI SDK. |
|
env
(Environment) |
The environment parameter accepts a constant value that indicates an in-stream request, or that the request is specifically from a video player. Possible values are Usage exampleVideo and/or audio: Video only: Requirement |
|
excl_cat
(Exclusion category) |
The exclusion category parameter accepts variable values and is used to block any line items containing the exclusion label in question from being eligible for a given ad request. This parameter works with Usage example
|
|
gdfp_req
(Ad Manager schema indicator) |
||
gdpr
(GDPR) |
The GDPR parameter accepts constant values and is used by publishers who wish to integrate with the IAB TCF v2.0. Direct VAST requests don't automatically read the values, but they're accepted when added to ad tags. Only 0 and 1 are valid values for this parameter, where 0 means GDPR does not apply and 1 means GDPR applies. If GDPR applies, you must also provide a valid TC string using the gdpr_consent parameter. You can read more about the values passed to this parameter in the general guidance for implementing the framework, or in the TC string section of the IAB TCF v2.0 specification. Usage exampleGDPR applies: GDPR does not apply: |
|
gdpr_consent
(GDPR Consent) |
The GDPR Consent parameter accepts variable values and is used by publishers who wish to integrate with the IAB TCF v2.0. Direct VAST requests don't automatically read the values, but they're accepted when added to ad tags. You can read more about the values passed to this parameter in the general guidance for implementing the framework, or in the TC string section of the IAB TCF v2.0 specification. Usage example
|
|
givn paln
(Video nonce) |
For integrations that use the Programmatic Access Library (PAL), the video nonce parameter accepts a variable string value. The nonce is URL safe—you don't need to URL-encode it.
Note: If you previously provided a nonce using the legacy Usage exampleYou can read more about the value passed to this parameter in the getting started guides for PAL. |
|
hl
(Language) |
The language parameter accepts a constant value which is used to request ads in that language, and for language of ad selection and video ad rendering in dynamic allocation to Ad Exchange or AdSense Video. The parameter value can be any ISO 639-1 (two-letter) or ISO 639-2 (three-letter) code. See a list of valid codes. If omitted, the value defaults to any language with ad targeting by language in Ad Exchange. Usage example
RequirementRecommended for Programmatic monetization |
|
iabexcl
(IAB exclusion URL) |
The URL parameter
iabexcl accepts a comma separated list of categories.
Usage example
Learn more about IAB Content Taxonomy. |
|
ipd
(Inventory partner domain) |
The inventory partner domain parameter accepts variable values which should be set to the The inventorypartnerdomain parameter is an IAB specification that helps publishers designate a domain of an inventory sharing partner for purposes of IPD declaration is especially important in inventory sharing use cases where the ad inventory in which a request originates from may be owned by another partner (the inventory sharing partner). Learn more about ads.txt/app-ads.txt and inventory sharing partners. |
|
ipe
(Impression pinging entity) |
The impression pinging entity parameter accepts a constant value which is used to indicate impression pings and conversions that originate from the server, not the client. Usage exampleServer-side beaconing (SSB): |
|
iu
(Ad unit) |
||
lip
(Last position in pod) |
The last position in pod parameter accepts a constant value to indicate a request from the last position in a pod. This parameter is for standard pods only. Usage example
|
|
ltd
(Limited ads) |
The limited ads parameter accepts a constant value which indicates whether to serve ads in a limited way in the absence of consent for the use of cookies or other local identifiers.
Usage example
|
|
min_ad_duration
(Ad minimum duration) max_ad_duration
(Ad maximum duration) |
The ad duration parameters accept variable values that, taken together, specify the duration range an ad must match in milliseconds. Use this parameter to limit individual ad duration for single ad and optimized pod requests. Usage example
|
|
mridx
(Mid-roll number) |
The mid-roll number parameter accepts a variable value which indicates the ordinal number of the mid-roll (for example, mid-roll 1, mid-roll 2, etc.). Usage example
|
|
msid
(App ID) an
(App name) |
The app ID and app name parameters accept variable values which should be applied to requests sent from mobile app and connected TV devices, as most programmatic video ads require them. The IMA SDK will automatically populate both parameters, but they must be manually specified in non-SDK environments, including direct VAST calls, or when using Programmatic Access Library (PAL) or Publisher Authenticated Inventory (PAI). While the app name should be a human-readable name, on iOS and tvOS, it's not possible for the SDK to access the app ID. In these cases, the Usage example
App IDs are named and formatted differently across different app stores. See the IAB guidelines for app identification, or examples of common unique identifiers. For platforms where an app store does not exist, the IAB recommends publishers use the following format for store IDs: RequirementBoth parameters are required for app Recommended for Programmatic monetization |
|
nofb
(Fallback disabled) |
The fallback disabled parameter accepts a constant value to indicate that the ad request should not return a playlist of video fallback ads. Usage exampleFallback disabled: |
|
npa
(Non-personalized ad) |
The non-personalized ads parameter accepts a constant value to indicate that the ad request should be treated as non-personalized. You must either specifically set Usage exampleNon-personalized ads: |
|
omid_p
(OMID partner name) |
The OMID partner name parameter accepts a variable value which indicates the name of the partner integrating OMID measurement, and the partner version. This parameter is only applicable to publishers wanting Active View measurement when using the Open Measurement SDK (OM SDK). This should not be used when using the IMA SDK as it is set automatically. To indicate OMID support when using Programmatic Access Library (PAL), you need to use the Usage exampleWhen using PAL: When not using PAL: |
|
output
(Ad output format) |
The ad output format parameter accepts a constant value which should be set to the output format of ad. Use For VAST, if your video player uses the IMA SDK, the output parameter for a video ad request will always be set to Use Usage exampleYour network's default VAST setting: VAST 4: Your network's default VMAP setting: VMAP 1: VMAP 1, returning VAST 4: Requirement |
|
plcmt
(Placement) |
The placement parameter accepts a constant value which is used to indicate whether or not the in-stream inventory is declared as in-stream or accompanying per the guidance in the IAB specifications. For non-in-stream requests, this field is populated for buyers automatically based on the declared inventory format, and will override any in-stream or accompanying content declaration. Usage exampleIn-stream request: Accompanying content request: RequirementRequired for web and Programmatic monetization |
|
pmad
(Pod maximum ads) |
The pod ad maximum parameter accepts a variable value which indicates the maximum number of ads in a pod. This parameter is specific to optimized pods, which are available to publishers with an advanced video package. It should not be used for VMAP (when Usage example
|
|
pmnd
(Pod minimum duration) pmxd
(Pod maximum duration) |
The pod duration parameters accept variable values which, taken together, specify the duration range that a pod must match, in milliseconds. These parameters are used to request multiple ads. They're specific to optimized pods, which are available to publishers with an advanced video package. They should not be used for VMAP (when Usage example
|
|
pod
(Pod number) |
The pod number parameter accepts a variable value which represents the ordinal number of the pod in a video (for example, pod 1, pod 2, etc.). Usage example
RequirementRequired for competitive exclusions, frequency capping, and related features to work correctly. |
|
pp
(Creative profile) |
The creative profile parameter accepts a variable value which controls the creatives eligible to serve based on the configuration set up in a video and audio creative profile. Usage example
RequirementRecommended for Programmatic monetization |
|
ppt
(Publisher Privacy Treatment) |
The Publisher Privacy Treatment parameter accepts a constant value which is used to indicate whether to turn off ads personalization for the ad request. Learn more about Publisher Privacy Treatment. Usage exampleTurn off ads personalization: |
|
ppid
(Publisher provided identifier) |
||
ppos
(Position in pod) |
The position in pod parameter accepts a variable value which represents the position within a pod (for example, position 1, position 2, etc.). This parameter is for standard pods only and is necessary for companion autofill. Usage example
RequirementRequired for competitive exclusions, frequency capping, and related features to work correctly. |
|
ppsj
(Publisher provided signals JSON) |
The publisher provided signals JSON parameter accepts a base64-encoded JSON object containing audience and contextual data provided by the publisher to improve programmatic monetization. Learn more about publisher provided signals and supported taxonomies. See details of valid JSON key-value pairs in the Usage exampleJSON object: Base64 encoded value: |
|
ptpl
(Ad break template ID) ptpln
(Ad break template name) |
The ad break template ID and name accept variable values and indicate which ad break template should apply to the optimized pod request. Ad break templates allow you to configure which ad spots or custom ad spots, should be included in an ad break, and in which order they should serve. Usage exampleMore details on setting up and requesting ad break templates can be found here. |
|
pubf
(Public price floors in Ad Exchange tags) pvtf
(Private price floors in Ad Exchange tags) |
Usage example
|
|
pvid
(App set ID) pvid_s
(App set scope) |
The app set ID values are needed for monetization when users opt out of personalization on Android devices. The While the IMA/PAL SDK automatically passes this field, publishers with non-SDK implementations must call the app set SDK and pass these parameters manually on ad request. See the Android documentation on how to retrieve the app set ID. Usage example
RequirementRequired for app Recommended for Programmatic monetization |
|
rdid
(Resettable device identifiers) |
The resettable device identifiers accept variable values. With built-in applications (not on web or mobile web), the SDK passes resettable device identifiers for user targeting into your stream requests with the parameters for Nearly all programmatic video ads require the presence of these values.
Usage exampleSee detailed examples of resettable device identifiers. RequirementRequired for app Recommended for Programmatic monetization |
|
rdp
(Restrict data processing) |
The restrict data processing parameter accepts a constant value to indicate that the ad request should restrict data processing. You must either specifically set Usage example
|
|
schain
(Supply chain) |
The supply chain parameter accepts a variable value which should be serialized SupplyChain object. When this parameter is included, Google appends a node to any recieved See the full IAB documentation for communicating SupplyChain information via a tag (rather than OpenRTB). See requirements forschain to be parsed correctly
Based on the IAB documentation, the following defines the serialization for the
Serialization order
Note: The contents of
ext are exchange specific. Google Ad Manager does not parse this property.Examples of how to serialize the SupplyChain objectBelow are two examples of ways to serialize the above Serialize with commas for empty optional fields
Serialize without commas for empty optional fields
Learn more about the SupplyChain object.
Usage examples
If the value for
RequirementRequired for publishers leveraging payment intermediaries upstream of the request to Google Ad Manager. This includes publishers who use third-party ad server technology. |
|
scor
(Stream correlator) |
The stream correlator parameter accepts a variable value which should be an integer generated for each video stream. The number should be the same within a stream and unique within a page view. It's used for competitive exclusions, frequency capping, and related features if a user is watching multiple videos on the same page. Usage example
RequirementRequired for competitive exclusions, frequency capping, and related features to work correctly. |
|
sdk_apis
(SDK API framework) |
The SDK API framework parameter accepts a comma-separated list of constant integer values which indicate all of the API frameworks that the player supports. See a list of possible API Framework values. This parameter is used by publishers that use the Programmatic Access Library (PAL). If you attempt to set values to this parameter while using the IMA SDK, the values will be overridden with the values supported by the IMA SDK. Usage example
|
|
sdmax
(Skippable max ad duration) |
The It takes a duration in milliseconds that represents the upper bound that should be allowed for the duration of skippable video/audio creatives for that particular ad request. Use Usage exampleUsing the following settings:
For the following creatives:
Results in:
|
|
sid
(Session ID) |
The session ID parameter accepts a variable value which is a privacy-preserving advertising identifier that is used for frequency capping purposes only. Session ID is supported for in-stream video requests from connected TVs and on in-stream video inventory from mobile app devices. It is not currently supported for web. Per the IAB's IFA guidelines, this parameter must be populated in UUID format. Learn more about resettable device identifiers for user targeting. You can opt out of passing the session ID by setting Usage example
RequirementRecommended for Programmatic monetization |
|
ssss
(Server-side stitching source) |
The server-side stitching source parameter accepts a constant value which should be set to a recognized, Google-supplied value for your video stitching technology vendor. Video stitching technology vendors using server-to-server integrations with Google are given this value from Google and are able to provide it to you. You can reach out to your Google account manager with any questions about the value to set to this parameter. Usage example
RequirementRequired for server-side implementations |
|
sz
(Size) |
The size parameter accepts a variable value which should be set to the size of master video ad slot. Multiple sizes should be separated by the pipe ( Do not include " Usage example
RequirementThis parameter is optional if only requesting |
|
tfcd
(Tag for child-directed) |
The child-directed parameter accepts a constant value which tags the ad request for child-directed treatment. Usage example
|
|
trt
(Traffic type) |
The traffic type parameter accepts a constant value that functions to request either purchased or organic traffic. The IMA SDK does not populate a default value if the traffic type parameter is missing from a request. In these instances, the server supplies a default value of Usage exampleRequest for purchased traffic: Request for organic traffic: |
|
unviewed_position_start
(Delayed impressions) |
||
url
(URL) |
The URL parameter accepts a variable value which should be set to the full URL from which the request is sent. This value is needed to help buyers identify and understand the context of where this request is coming from. To the extent possible, this value should be dynamically populated on the ad request. On a web page, this is the URL of the page that displays the video player. If you use the IMA SDK, the URL value is set automatically. If your player sets this value, the IMA SDK will respect the value being set. In an app (mobile or CTV), this value should be set to a URL that most accurately represents the video or audio inventory being monetized. For instance, if the user is watching a video within a mobile app that is also available on a desktop equivalent URL.* The value of this parameter should be encoded. Usage example
* For apps, if it is not possible to set this parameter to a variable URL value, it's recommended that it be set with the following pattern: RequirementRecommended for Programmatic monetization |
|
vad_type
(Video ad type) |
The video ad type parameter accept a constant value which indicates whether a linear or non-linear ad should be returned. Usage exampleReturn a linear ad: Return a non-linear ad: |
|
vid_d
(Video duration) |
This parameter accepts a variable value which specifies the duration of the content, in seconds. The Usage exampleVideo content duration of 90000 seconds (25 hours): |
|
vconp
(Video continuous play) |
Recommended per MRC Video Measurement Guidelines The continuous video parameter accepts a constant value which indicates whether the player intends to continuously play video content, similar to a TV broadcast. This parameter should be left unset if it is unknown. Usage exampleContinuous play ON: Continuous play OFF: |
|
vpa
(Video play automatic) |
Recommended per MRC Video Measurement Guidelines The video play automatic parameter accepts a constant value which indicates whether video content in an ad starts through autoplay or click. Possible values are This parameter should be left unset if it is unknown. Usage exampleAutoplay: Click to play: RequirementRecommended for Programmatic monetization |
|
vpi
(Video playlist inred) |
The video playlist inred parameter accepts a constant value which indicates whether to serve inline VMAP (return VAST inside of VMAP). This parameter can be used to reduce latency, and guarantee frequency caps and competitive exclusions across a video stream. Usage exampleReturn VAST: Return redirects: |
|
vpmute
(Video play mute) |
Recommended per MRC Video Measurement Guidelines The muted video parameter accepts a constant value which indicates whether the ad playback starts while the video player is muted. Usage exampleMuted: Unmuted: RequirementRequired for web and Programmatic monetization |
|
vpos
(Video position) |
The video position parameter accepts a constant value which indicates whether the ad request is being sent from pre-roll, mid-roll or post-roll. Usage examplePre-roll: Mid-roll: Post-roll: RequirementRecommended for Programmatic monetization |
|
wta
(Why this ad) |
The "Why this ad?" parameter accepts a constant value which indicates the video player's support for rendering ad badging. When no The ad badging functionality is supported automatically when using the IMA SDK. When the IMA SDK is not used, video players must implement VAST Publishers are required to send Audio ad requests may send For traffic from the EEA, requests with Ads must comply with applicable regulatory requirements for ads served in the European Economic Area (EEA). This includes a mechanism for users to report illegal content. Publishers must notify Google of any illegal content reports using the appropriate form. Usage exampleSupported:
Unsupported: RequirementRequired for Ad Exchange Required for web and app EEA traffic Recommended for Programmatic monetization |