VAST examples / Wrappers
A <Wrapper> with no <VASTAdTagURI>
VAST 2.01 error0 warningsVAST-2.0-wrapper-vastadtaguri
The scenario
An SSP returned a wrapper to redirect the player to the winning DSP's ad server. A wrapper exists only to point at the next VAST document in the chain via <VASTAdTagURI>; the player resolves that URL to eventually reach an InLine ad.
The broken tag
<VAST version="2.0">
<Ad id="1">
<Wrapper>
<AdSystem>Test</AdSystem>
<!-- missing VASTAdTagURI -->
<Impression>https://t.example.com/imp</Impression>
</Wrapper>
</Ad>
</VAST>What the validator reports
Running this tag through vastlint produces the following. The primary failure for this example:
VAST-2.0-wrapper-vastadtaguriIAB VAST 2.0 §2.4line 3<Wrapper> is missing required <VASTAdTagURI>
Why it breaks
The <Wrapper> includes AdSystem and tracking but is missing <VASTAdTagURI> — the one element that gives the redirect its destination. The spec requires a <VASTAdTagURI> on every Wrapper because without it there is no next document to fetch; the wrapper is a pointer with nothing to point at.
What it costs
The chain dead-ends immediately. The player has nowhere to go, fires the no-ad/error path, and the slot goes unfilled — but all the wrapper-level impression and tracking URLs may still fire, so logs can show 'activity' on an ad that never actually resolved to a creative. That inflates wrapper-level counts while real delivery is zero, masking the failure in reporting.
The fix
Ensure every <Wrapper> contains a <VASTAdTagURI> with the next-hop VAST URL in CDATA. If you are the redirecting system, treat a missing tag URI as a build error before the response leaves your server.
<Wrapper>
<AdSystem>SSP</AdSystem>
<VASTAdTagURI><![CDATA[https://dsp.example.com/vast?win=abc]]></VASTAdTagURI>
<Impression><![CDATA[https://ssp.example.com/imp]]></Impression>
</Wrapper>VAST XML fragment only. This excerpt belongs inside a complete VAST document, so standalone validation will fail until it is wrapped in a full <VAST>response.
Check your own version of this tag
Paste the resolved XML to run the same spec check, test a live tag URL, or inspect the wrapper chain hop by hop.
Related examples
- A <Wrapper> with no <Impression> — VAST-2.0-wrapper-impression
- An InLine ad with no <Impression> element — VAST-2.0-inline-impression
- An InLine ad missing the <AdSystem> element — VAST-2.0-inline-adsystem
- An InLine ad missing the <AdTitle> element — VAST-2.0-inline-adtitle