VAST examples / Non-linear
A <NonLinear> overlay with no resource
VAST 2.01 error0 warningsVAST-2.0-nonlinear-resource
The scenario
A publisher ran a non-linear overlay ad — a banner that appears over the lower third of the video without interrupting playback — as a lighter-weight monetization option on long-form content.
The broken tag
<?xml version="1.0" encoding="UTF-8"?>
<VAST version="2.0">
<Ad id="1">
<InLine>
<AdSystem>Test AdServer</AdSystem>
<AdTitle>Test Ad</AdTitle>
<Impression><![CDATA[https://example.com/impression]]></Impression>
<Creatives>
<Creative>
<NonLinearAds>
<!-- No StaticResource, IFrameResource, or HTMLResource -->
<NonLinear width="300" height="60">
<NonLinearClickThrough><![CDATA[https://example.com/click]]></NonLinearClickThrough>
</NonLinear>
</NonLinearAds>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>What the validator reports
Running this tag through vastlint produces the following. The primary failure for this example:
VAST-2.0-nonlinear-resourceIAB VAST 2.0 §2.3.6.1line 12<NonLinear> must contain at least one StaticResource, IFrameResource, or HTMLResource
Why it breaks
The <NonLinear> element is present but contains no resource: no StaticResource, IFrameResource, or HTMLResource. A non-linear ad needs exactly such a resource to render the overlay graphic or markup. With none, the player has an overlay placeholder with nothing to put in it.
What it costs
The overlay slot stays empty, so the impression is effectively unfilled while still potentially counting structurally — creating a mismatch between logged opportunities and actual rendered creative. The advertiser pays for an overlay nobody sees, and the publisher's overlay product looks broken to buyers evaluating it.
The fix
Add a resource to the <NonLinear> — typically a StaticResource image with creativeType, or an HTMLResource — sized to the overlay region. Include the required dimensions on the NonLinear as well.
<NonLinear width="480" height="70">
<StaticResource creativeType="image/png">
<![CDATA[https://cdn.example.com/overlay-480x70.png]]></StaticResource>
<NonLinearClickThrough><![CDATA[https://example.com/lp]]></NonLinearClickThrough>
</NonLinear>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
- 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
- A Linear creative with no <Duration> — VAST-2.0-linear-duration