VAST examples / SIMID
A SIMID creative with no fallback <MediaFile>
VAST 4.12 errors1 warningVAST-2.0-linear-mediafiles
The scenario
An interactive SIMID unit ran across a mix of CTV apps, some of which had not yet implemented SIMID. The campaign's goal was added engagement where supported, with a graceful fall back to a normal video ad everywhere else.
The broken tag
<?xml version="1.0" encoding="UTF-8"?>
<!-- Fixture: SIMID InteractiveCreativeFile without an accompanying video MediaFile
Expected rule: SIMID-1.0-simid-mediafile-required (Error) -->
<VAST version="4.1">
<Ad id="1">
<InLine>
<AdSystem>Test AdServer</AdSystem>
<AdServingId>simid-nomedia-test-01</AdServingId>
<AdTitle>SIMID No MediaFile Test</AdTitle>
<Impression><![CDATA[https://track.example.com/imp]]></Impression>
<Creatives>
<Creative id="1">
<UniversalAdId idRegistry="ad-id.org">simid-nomedia-01</UniversalAdId>
<Linear>
<Duration>00:00:30</Duration>
<MediaFiles>
<!-- No video MediaFile — SIMID §3.4 requires a media asset alongside
the interactive creative. -->
<InteractiveCreativeFile apiFramework="SIMID" type="text/html">
<![CDATA[https://creative.example.com/simid.html]]>
</InteractiveCreativeFile>
</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-2.0-linear-mediafilesIAB VAST 2.0 §2.3.5.2line 14<MediaFiles> must contain at least one <MediaFile>
The same tag also surfaces these secondary findings — real tags rarely fail in isolation:
VAST-2.0-linear-tracking-quartilesIAB VAST 4.1 §3.14.2line 14<Linear> has no standard quartile tracking events (start/firstQuartile/midpoint/thirdQuartile/complete) — ad will serve but measurement system receives no signal
VAST-4.1-mezzanine-recommendedIAB VAST 4.1 §3.9.2line 16<MediaFiles> has no <Mezzanine> — ad-stitching servers may reject this tag in CTV/SSAI contexts
SIMID-1.0-simid-mediafile-requiredIAB SIMID 1.0 §3.4line 14Linear ad with <InteractiveCreativeFile apiFramework="SIMID"> must also include a video/audio <MediaFile> — SIMID requires a media asset
Why it breaks
The Linear carries the SIMID InteractiveCreativeFile but no standard <MediaFile> video. SIMID is explicitly designed as a layer on top of a normal linear video: the interactive file enhances a base MediaFile that must still be present so that players which do not support SIMID can play the plain video. With no MediaFile, there is no fallback path at all.
What it costs
On every player that lacks SIMID support — still a large share of the CTV install base — the ad has nothing to render and the slot goes blank or skips. Instead of degrading gracefully to a normal spot, the campaign loses all delivery on non-supporting devices, sharply cutting reach and wasting the flight's budget on impressions that never serve.
The fix
Always include at least one standard <MediaFile> alongside the SIMID InteractiveCreativeFile. The MediaFile is the universally playable base; SIMID enhances it only where supported.
<Linear>
<Duration>00:00:30</Duration>
<MediaFiles>
<MediaFile delivery="progressive" type="video/mp4" width="1280" height="720">
<![CDATA[https://cdn.example.com/base.mp4]]></MediaFile>
<InteractiveCreativeFile type="text/html" apiFramework="SIMID">
<![CDATA[https://cdn.example.com/simid/unit.html]]></InteractiveCreativeFile>
</MediaFiles>
</Linear>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 SIMID interactive resource served over HTTP — SIMID-1.0-simid-url-https
- A SIMID InteractiveCreativeFile with no type — SIMID-1.0-simid-type-required
- An <InteractiveCreativeFile> with no apiFramework — VAST-4.0-interactive-creative-no-api
- A SIMID variableDuration with an invalid value — SIMID-1.0-simid-variable-duration-value