VASTlint

VAST examples / SIMID

An <InteractiveCreativeFile> with no apiFramework

VAST 4.10 errors2 warningsVAST-4.0-interactive-creative-no-api

The scenario

A creative team delivered an interactive video unit using VAST 4.x's <InteractiveCreativeFile>, expecting players to load it through the SIMID interactive API on the big screen.

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>
              <!-- InteractiveCreativeFile with no apiFramework -->
              <InteractiveCreativeFile type="text/html">
                <![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.0-interactive-creative-no-apiIAB VAST 4.0 §2.3.5.4line 12

<InteractiveCreativeFile> should have an apiFramework attribute (e.g. "SIMID")

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

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 <InteractiveCreativeFile> provides a resource and a type but no apiFramework attribute. apiFramework declares which interactive framework the file uses — for modern interactivity that is SIMID. Without it, the player has an interactive resource but no idea which runtime to load it into, so it cannot initialize the interactive layer.

What it costs

The interactive unit does not run. The player falls back to the base video (if one is present) or leaves the interactive slot inert, so the engagement the campaign was built around never happens — yet base-video delivery keeps reporting impressions, hiding the failure. Without a fallback MediaFile the slot can blank out entirely on supporting devices.

The fix

Declare apiFramework="SIMID" (with the correct type) on every InteractiveCreativeFile, and always pair it with a standard MediaFile fallback for players that do not support the framework.

<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