VASTlint
Back to blog

A VPAID alternative lines up a media file, SIMID, and OMID

vastlint is not a VPAID runtime. It checks that the executable is not the only file. It does not play the ad.

Old VPAID jobReplacementElementLeave it out when
PlaybackMedia fileMediaFileNever. Without it nothing plays
Click or overlaySIMIDInteractiveCreativeFileThe spot is not interactive
Viewability and verificationOMIDAdVerificationsNobody was hired to measure
A VPAID alternative is a playable media file, SIMID only when interaction is required, and OMID when a vendor must measure.
vastlint is not a VPAID runtime. It checks that the executable is not the only file. It does not play the ad. Diagram by vastlint.org. An independent open-source project. The diagram restates figures already cited in this post.

Alex Sekowski · September 29, 2026 · 7 min read

VPAID alternative is the search for one successor to an executable that used to do three jobs. IAB does not offer one successor. The SIMID page says VPAID is being replaced by OMID for measurement and verification and by SIMID for interactivity, with the interactive layer separated from the media asset and both delivered by VAST 4.x. The player keeps the file. That file is the part VPAID was allowed to swallow, and it is the part a television can still play.

vastlint is not that alternative. It does not render a creative, execute JavaScript, or stand in for a player. It checks VAST 2.0–4.4 structure: a media file a player can select, SIMID only on an interactive file that has something beside it, and a verification node when the tag claims measurement. A green result means the document matches that split. It does not mean a particular TV ran the ad.

What fails if you replace the name and keep the shape

A SIMID document as the only creative is the VPAID shape with a new apiFramework. Players that skip the sidecar, which is a normal SSAI outcome, then have nothing to splice. Google's IMA HTML5 page still documents VPAID 2 as an HTML5-only compatibility mode, which is a narrowing, not a recommendation to keep it as the universal spare. Shipping VPAID for the web row and SIMID for everyone else, inside one vast tag aimed at both, is two products. It is not a migration.

Measurement has the same trap. A script that fires a quartile from inside the creative is the creative claiming it played. OMID is a verification resource the player's OM SDK can expose signals to. IAB's OM SDK page lists OMID 1.6 as the current API docs as of November 4, 2025. vastlint does not speak that API. It checks that the VAST resource pointing at a vendor script is present, secure, and not duplicated into nonsense.

MRAID is not the video spare either

MRAID 3.0 integrated selected VPAID events for in-app video reporting. Teams read that sentence as permission to treat MRAID as the VPAID alternative on mobile. The host is still an app webview. Expandables and playables belong there. A VAST preroll does not become one of them because the apiFramework string changed. If the campaign has both a playable and a preroll, they are two deliveries.

The replacement shape in a VAST 4.3 inline is a media file, an optional SIMID file, and an optional OMID verification. browserOptional is the 4.3 detail on the verification script. Omit the SIMID file when there is no interaction. Omit the verification when nobody is measuring. Do not omit the media file.

The replacement shape in a VAST 4.3 inline
xml
<MediaFiles>  <MediaFile delivery="progressive" type="video/mp4" width="1280" height="720">    <![CDATA[https://cdn.example.com/ad.mp4]]>  </MediaFile>  <InteractiveCreativeFile type="text/html" apiFramework="SIMID">    <![CDATA[https://cdn.example.com/interactive.html]]>  </InteractiveCreativeFile></MediaFiles><AdVerifications>  <Verification vendor="measurement.example">    <JavaScriptResource apiFramework="omid" browserOptional="true">      <![CDATA[https://cdn.example.com/omid.js]]>    </JavaScriptResource>  </Verification></AdVerifications>

Replace the job, not the acronym

  • Always leave a media file the player can decode.
  • Add SIMID only for a real interaction, as a sidecar.
  • Add OMID only for a real measurement vendor, in AdVerifications.
  • Treat a remaining VPAID file as legacy HTML5, not as the CTV copy.
  • Keep MRAID on the in-app rich-media placement.

Three jobs left the executable, and a single replacement string cannot carry all three back in.

standards triage note

See whether a VPAID file is still the only creative

Run VAST 2.0–4.4 tags against specification-derived rules. Nothing is stored. vastlint does not execute VPAID, open a SIMID session, run OMID, or certify an MRAID SDK.

Paste the tag

XML opens the validator, and a live tag URL opens the tester.

Or test a live URL

Sources

IAB Tech Lab SIMIDIAB Tech Lab

SIMID page, updated January 3, 2024. SIMID 1.2 separates the interactive layer from the media asset. Both are delivered by VAST 4.x. OMID is named for measurement and SIMID for interactivity, as the replacement for VPAID.

IAB Tech Lab VASTIAB Tech Lab

VAST standards hub. VPAID is marked deprecated and replaced with SIMID.

OM SDK page, updated November 4, 2025. Measurement providers collect signals through the OMID API. The current API docs listed there are OMID 1.6.

MRAID is the in-app rich media interface. Version 3.0 adds creative-side viewability and audibility, and selected VPAID events for in-app video reporting.

Only the IMA HTML5 SDK supports VPAID 2 JavaScript creatives.

The index of the split.

Why a VPAID fallback narrows the devices that can play.

The checklist for moving a live tag off the executable.

How the deprecated apiFramework shows up in XML.

Read another comparison in this set

All posts

Check the tag these notes describe

The comparison does not execute the creative. The tag still has to carry a media file, and the node for interaction or measurement.