vastlint

SIMID interactive VAST ads

SIMID (Secure Interactive Media Interface Definition) is the IAB Tech Lab standard for interactive video ad creatives. It replaces VPAID, providing a secure, sandboxed communication protocol between a video player and an interactive HTML ad unit. SIMID is declared in VAST using the <InteractiveCreativeFile> element with apiFramework="SIMID".

Unlike VPAID, SIMID runs in a sandboxed iframe with no direct DOM access to the player or page. All communication happens via window.postMessage using the SIMID protocol. This makes SIMID safer for publishers and more portable across environments.

Quick reference

VAST element<InteractiveCreativeFile> inside <Linear>
apiFrameworkSIMID
CommunicationSandboxed iframe via window.postMessage
VAST version4.1+ (InteractiveCreativeFile added in VAST 4.1)
ReplacesVPAID (deprecated)

VAST structure for SIMID

A SIMID creative is a linear ad that includes both a standard video <MediaFile> (for the video component) and an <InteractiveCreativeFile> (for the interactive HTML overlay). The video plays as normal; the SIMID iframe loads alongside it and communicates with the player via the SIMID protocol.

<VAST version="4.2">
  <Ad id="1">
    <InLine>
      <AdSystem>My Ad Server</AdSystem>
      <AdTitle>Interactive SIMID Ad</AdTitle>
      <Impression id="imp1"><![CDATA[https://track.example.com/impression]]></Impression>
      <UniversalAdId idRegistry="Ad-ID">SIMD1234</UniversalAdId>
      <Creatives>
        <Creative id="creative1" sequence="1">
          <Linear>
            <Duration>00:00:30</Duration>
            <TrackingEvents>
              <Tracking event="start"><![CDATA[https://track.example.com/start]]></Tracking>
              <Tracking event="firstQuartile"><![CDATA[https://track.example.com/q1]]></Tracking>
              <Tracking event="midpoint"><![CDATA[https://track.example.com/mid]]></Tracking>
              <Tracking event="thirdQuartile"><![CDATA[https://track.example.com/q3]]></Tracking>
              <Tracking event="complete"><![CDATA[https://track.example.com/complete]]></Tracking>
            </TrackingEvents>
            <VideoClicks>
              <ClickThrough><![CDATA[https://example.com/landing]]></ClickThrough>
            </VideoClicks>
            <MediaFiles>
              <!-- Standard video MediaFile — required alongside SIMID -->
              <MediaFile delivery="progressive" type="video/mp4"
                width="1920" height="1080" bitrate="2500">
                <![CDATA[https://cdn.example.com/ad-1080p.mp4]]>
              </MediaFile>
              <MediaFile delivery="progressive" type="video/mp4"
                width="1280" height="720" bitrate="1500">
                <![CDATA[https://cdn.example.com/ad-720p.mp4]]>
              </MediaFile>
              <!-- SIMID interactive overlay — HTML file loaded in sandboxed iframe -->
              <InteractiveCreativeFile
                apiFramework="SIMID"
                type="text/html">
                <![CDATA[https://cdn.example.com/simid-interactive.html]]>
              </InteractiveCreativeFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>

InteractiveCreativeFile attributes

The <InteractiveCreativeFile> element has the following key attributes:

AttributeRequiredValue
apiFrameworkYesSIMID
typeYesMIME type of the file — typically text/html
variableDurationNotrue if the interactive component may extend the ad duration. Default: false.

→ vastlint rule: VAST-4.1-interactive-creative-file-api-framework

SIMID communication protocol

The SIMID creative HTML file runs inside a sandboxed iframe and communicates with the player using window.postMessage. The player and creative exchange messages following the SIMID protocol. Key message types:

Message directionMessage typePurpose
Player → CreativeSIMID:Player:initPasses video metadata and environment data to the creative
Creative → PlayerSIMID:Creative:readyCreative signals it is loaded and ready to render
Player → CreativeSIMID:Player:startCreativePlayer instructs the creative to start displaying
Creative → PlayerSIMID:Creative:requestNavigateCreative requests the player open a URL (click-through)
Creative → PlayerSIMID:Creative:requestStopCreative requests the ad stop (e.g. user closed it)
Player → CreativeSIMID:Player:adStoppedPlayer notifies the creative it has been stopped

The full SIMID protocol specification is available from the IAB Tech Lab. Implementing SIMID requires writing the JavaScript inside your interactive HTML file to handle these messages.

VAST version requirement

<InteractiveCreativeFile> was introduced in VAST 4.1. Tags using SIMID must declare version="4.1" or higher. Declaring a lower version will cause spec-compliant parsers to ignore the element.

Fallback video is required

Always include a standard <MediaFile> MP4 alongside the <InteractiveCreativeFile>. Players that do not support SIMID will use the video MediaFile as a fallback. Without a video MediaFile, the ad will fail to deliver on any player that does not support SIMID — which includes all CTV platforms that have not implemented SIMID.

Platform SIMID support

PlatformSIMID support
Google IMA SDK (web)Supported
Google IMA SDK (Android / iOS)Supported (limited)
Google IMA SDK (CTV)Partial — check platform-specific IMA docs
JW PlayerSupported via SIMID plugin
Roku RAFNot supported
Amazon Fire TVNot supported

Common mistakes checklist

  • VAST version below 4.1<InteractiveCreativeFile>does not exist in VAST 3.0 or earlier. Declare version 4.1 or higher.
  • No video MediaFile fallback — without a standard video MediaFile, the ad will not deliver on platforms that do not support SIMID.
  • Using apiFramework="VPAID" instead of "SIMID" — VPAID and SIMID are different protocols. A SIMID creative with apiFramework="VPAID" will not initialize correctly.
  • Creative not implementing SIMID:Creative:ready — if the creative HTML file does not send SIMID:Creative:ready within the player's timeout, the ad will fail and fall back to the video-only experience.
  • Expecting SIMID on CTV — most CTV platforms do not support SIMID. Always provide a non-interactive video fallback.

Migrating from VPAID to SIMID? See the VPAID → SIMID migration guide.