VASTlint
Back to blog

VPAID vs OMID lines up a self-reported quartile and a verification script

A quartile from the creative is not OMID. vastlint checks the verification node. It does not execute VPAID or run OM SDK.

SpecCan play the adWho reports playbackWhere it sits
VPAIDYes, it can be the playerThe creative, if it choosesMediaFile apiFramework VPAID
OMIDNoA verification script via OM SDKAdVerifications
SIMIDNo, the player owns the fileThe player, for quartilesInteractiveCreativeFile
VPAID is a deprecated executable that can play the ad and emit its own events. OMID is a verification resource that does not play the ad.
A quartile from the creative is not OMID. vastlint checks the verification node. It does not execute VPAID or run OM SDK. 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 vs OMID is what a trafficking sheet asks when measurement used to live inside the executable. A VPAID unit can be the playback engine. The player hands it a slot, the unit loads its own media, and impressions and quartiles can be fired by the creative rather than by the player's playhead. That bundling is why verification code shipped inside VPAID. OMID pulls the measurement back out. IAB's SIMID page names OMID for measurement and verification, and SIMID for interactivity, as the pair that replaces VPAID. OMID does not draw the ad and does not own the playhead.

Google's IMA docs limit VPAID 2 JavaScript support to the HTML5 SDK. A television, a native app, and a server-side stitcher are outside that environment even when they play an ordinary MP4. An OMID resource does not restore the executable for those devices. It gives a player that already integrated OM SDK a script to read signals from. vastlint checks whether a VAST 2.0–4.4 tag still declares that verification node, and whether a VPAID media file is the only thing left to play. It does not execute VPAID and it does not run OM SDK.

A creative quartile is not a verification

The number people try to preserve is the quartile. A VPAID unit that emits firstQuartile feels measured. The event came from the same JavaScript that was supposed to be measured. OMID's point is that a third-party script reads signals the player exposes, including viewability, and the creative is not that script. IAB's OM SDK page describes the split directly: integrators send measurement signals to the OMID API, and measurement providers place tags that collect them. The current API docs listed on that page, updated November 4, 2025, are OMID 1.6. Earlier versions remain documented because players in the field are not all on one release.

In the XML, the provider's tag is a Verification. On VAST 4.1 and later the parent is AdVerifications. Older documents sometimes carry the same block as an Extension with type AdVerifications. apiFramework on the JavaScriptResource is omid, lowercase in the examples that validate. A resource URL that is empty or not HTTPS does not become measurement because the vendor name is familiar. A missing verificationNotExecuted tracker makes the failure silent.

What not to migrate into the other name

Replacing the VPAID media file with an OMID script, and deleting the MP4, leaves a measurement resource and no ad. Replacing OMID with a new VPAID unit because the vendor's old snippet was VPAID puts the executable back on a CTV path. The interactive half, if you still need a click, is SIMID beside a media file, not a second copy of the verification script. Measurement vendors are a choice inside OMID. They are not a choice between OMID and VPAID.

Read the inline. A wrapper can advertise a vendor and drop AdVerifications on the hop the player sees. vastlint will flag the structure. It will not tell you whether the vendor's script, once loaded by a compliant player, agreed with another vendor's script.

A VPAID unit is not an OMID integration

  • A media file remains after any VPAID file is removed.
  • Measurement is a Verification resource, not a quartile the creative emits.
  • apiFramework omid sits on that resource, not on the media file.
  • SIMID, if the ad is interactive, sits beside the media file and does not carry the measurement.
  • The inline, not the wrapper, is where the node has to survive.

The executable that reports its own playback and the script that reads the player are different objects, and only one of them is measurement.

standards triage note

See whether measurement is still inside the executable

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

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.

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.

Only the IMA HTML5 SDK supports VPAID 2 JavaScript creatives.

The other half of the same split.

What can stand in for OMID, and what cannot.

The XML checks before any player runs OM SDK.

AdVerifications, JavaScriptResource, and what vastlint validates.

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.