VAST examples / Pricing & metadata
A <Pricing> element missing model and currency
VAST 3.02 errors1 warningVAST-3.0-pricing-model
The scenario
A supply partner passed a price floor inside the VAST <Pricing> element so downstream exchanges and wrappers could honor it during resale of the inventory in a programmatic chain.
The broken tag
<?xml version="1.0" encoding="UTF-8"?>
<!-- Pricing missing model and currency — VAST-3.0-pricing-model, VAST-3.0-pricing-currency -->
<VAST version="3.0">
<Ad id="1">
<InLine>
<AdSystem>Test</AdSystem>
<AdTitle>Test</AdTitle>
<Impression><![CDATA[https://example.com/imp]]></Impression>
<Pricing>1.50</Pricing>
<Creatives>
<Creative>
<Linear>
<Duration>00:00:30</Duration>
<MediaFiles>
<MediaFile delivery="progressive" type="video/mp4" width="640" height="360">
<![CDATA[https://example.com/video.mp4]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>What the validator reports
Running this tag through vastlint produces the following. The primary failure for this example:
VAST-3.0-pricing-modelIAB VAST 3.0 §2.3.10line 9<Pricing> is missing required model attribute
The same tag also surfaces these secondary findings — real tags rarely fail in isolation:
VAST-3.0-pricing-currencyIAB VAST 3.0 §2.3.10line 9<Pricing> is missing required currency attribute
VAST-2.0-linear-tracking-quartilesIAB VAST 4.1 §3.14.2line 12<Linear> has no standard quartile tracking events (start/firstQuartile/midpoint/thirdQuartile/complete) — ad will serve but measurement system receives no signal
Why it breaks
The <Pricing> element contains a numeric value but no model and no currency attributes. Both are required: model states whether the figure is CPM, CPC, or CPE, and currency states the ISO currency code. A bare number — '5' — is ambiguous: $5 CPM, €5 CPC, and £5 CPE are wildly different economics, and no consumer can act on it safely.
What it costs
Exchanges and wrappers that cannot parse the price either ignore the floor (so the inventory can clear below the intended price, costing the seller money) or reject the response (causing no-fill). In a multi-hop resale chain the ambiguity compounds, leading to mispriced transactions and reconciliation disputes between partners.
The fix
Always set both model (CPM/CPC/CPE) and currency (ISO 4217 code) on <Pricing>, with the value expressed in that model and currency.
<Pricing model="CPM" currency="USD">
<![CDATA[5.00]]>
</Pricing>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 <Category> with no authority attribute — VAST-4.0-category-authority
- A <BlockedAdCategories> with no authority attribute — VAST-4.1-blockedadcategories-no-authority
- An InLine ad with no <Impression> element — VAST-2.0-inline-impression
- An InLine ad missing the <AdSystem> element — VAST-2.0-inline-adsystem