VASTlint

VAST examples / Deprecated features

VPAID used where SIMID belongs in VAST 4.x

VAST 4.10 errors3 warningsVAST-4.1-vpaid-in-interactive-context

The scenario

An agency reused an interactive web creative built on VPAID inside a VAST 4.1 interactive-creative slot, expecting it to behave like a modern interactive unit across the campaign's mix of web and CTV inventory.

The broken tag

<?xml version="1.0" encoding="UTF-8"?>
<VAST version="4.1">
  <Ad id="1">
    <InLine>
      <AdSystem>Test AdServer</AdSystem>
      <AdTitle>Test Ad</AdTitle>
      <AdServingId>TEST-SERVING-ID-001</AdServingId>
      <Impression><![CDATA[https://example.com/impression]]></Impression>
      <Creatives>
        <Creative>
          <UniversalAdId idRegistry="ad-id.org">TEST-1234</UniversalAdId>
          <Linear>
            <Duration>00:00:30</Duration>
            <MediaFiles>
              <MediaFile delivery="progressive" type="video/mp4" width="1920" height="1080">
                <![CDATA[https://example.com/video.mp4]]>
              </MediaFile>
              <!-- Has InteractiveCreativeFile (SIMID) but also VPAID MediaFile -->
              <MediaFile delivery="progressive" type="application/javascript" width="640" height="480" apiFramework="VPAID">
                <![CDATA[https://example.com/vpaid.js]]>
              </MediaFile>
              <InteractiveCreativeFile type="text/html" apiFramework="SIMID">
                <![CDATA[https://example.com/interactive.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:

warningVAST-4.1-vpaid-in-interactive-contextIAB VAST 4.1 §2.4.3line 19

<MediaFile apiFramework="VPAID"> alongside <InteractiveCreativeFile> — VPAID is not supported in CTV and should be removed when SIMID/OMID is present

The same tag also surfaces these secondary findings — real tags rarely fail in isolation:

warningVAST-4.1-vpaid-apiframeworkIAB VAST 4.1 §2.3.5.1line 19

apiFramework="VPAID" is deprecated as of VAST 4.1 — use SIMID or OMID instead

warningVAST-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

infoVAST-4.1-mezzanine-recommendedIAB VAST 4.1 §3.9.2line 14

<MediaFiles> has no <Mezzanine> — ad-stitching servers may reject this tag in CTV/SSAI contexts

Why it breaks

The interactive creative declares apiFramework="VPAID". In VAST 4.x the interactive-creative slot is meant for SIMID, with OMID handling measurement; VPAID was deprecated and is explicitly out of place in a 4.x interactive context. Many 4.x players — and all CTV players — have no VPAID runtime, so a VPAID-flagged interactive file cannot execute there.

What it costs

On 4.x and CTV environments the interactive unit does not run, so the campaign's interactivity is lost wherever VPAID is unsupported, which is an increasing share of inventory. The creative may fall back to base video or fail to render, and the engagement metrics that justified the interactive buy come back empty — all because the unit was flagged for a deprecated framework.

The fix

Replace VPAID with SIMID for interactivity (apiFramework="SIMID", HTTPS resource) and use OMID via <AdVerifications> for measurement. Keep a standard MediaFile as the universal fallback.

<!-- 4.x interactive context expects SIMID, not VPAID -->
<InteractiveCreativeFile type="text/html" apiFramework="SIMID">
  <![CDATA[https://cdn.example.com/simid/unit.html]]>
</InteractiveCreativeFile>

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

Related reading