VASTlint
Back to blog

VPAID vs MRAID lines up a video-player API and an in-app bridge

Shared event names are not a shared runtime. vastlint checks VPAID in the VAST tag. It does not certify MRAID.

SpecHostJobWhat it is not
VPAIDA VAST player that runs JavaScriptPlayback, interaction, and often measurementA current CTV path
MRAIDA mobile SDK webviewExpand, resize, interstitial, playableThe IAB replacement for VPAID
SIMIDA VAST player, sandboxedInteraction beside a media fileAn MRAID container
VPAID is a deprecated video player API replaced by SIMID and OMID. MRAID is the in-app rich media bridge. MRAID 3.0 added selected VPAID events, which is not a substitute in a VAST tag.
Shared event names are not a shared runtime. vastlint checks VPAID in the VAST tag. It does not certify MRAID. 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 MRAID is a name collision between two host APIs. VPAID, the Video Player-Ad Interface Definition, let an executable run in a video player, often as the thing that played the ad. IAB marks it deprecated. The SIMID page names the replacement: OMID for measurement and verification, SIMID for interactivity. MRAID, the Mobile Rich Media Ad Interface Definitions, is the API a creative calls inside an in-app webview: expand, resize, open, orientation, full-screen interstitials. The host is the app SDK, not a VAST player.

MRAID 3.0 is the reason the names get welded together. IAB's MRAID 3.0 note says selected VPAID events were integrated so in-app video creatives could report more uniformly, alongside creative-side viewability and audibility. Those are events inside the MRAID container. They do not make an MRAID playable into a VAST inline, and they do not make a VPAID media file into a legal mobile interstitial. vastlint checks apiFramework VPAID on a VAST 2.0–4.4 media file, and whether a decodable file remains. It does not execute VPAID and it does not certify an SDK's MRAID implementation.

Where each one fails

VPAID fails closed on the devices that do not offer a browser-like player. Google's IMA documentation says only the HTML5 SDK supports VPAID 2 JavaScript creatives. A stitcher cannot splice the script into an MPEG segment and keep the script's behavior. The error looks like a media-file miss. The trafficking sheet still said the line item had a creative.

MRAID fails when the SDK webview is missing or speaks an older subset. MRAID 3.0 says it is backward compatible with 2.0 containers and can degrade. That sentence is about in-app rich media. It is not a promise that a connected TV will run the creative. A VAST linear campaign that sets apiFramework to MRAID because the mobile SDK knew that word has renamed the interface. It has not given the television a file.

What to ship on each path

In-stream video gets a VAST document, a media file, SIMID only when there is a real interaction, and OMID when a vendor must measure. In-app expandable units and playables stay on MRAID, in an SDK that actually implements the version the creative calls. The two paths can belong to one campaign. They are not fallbacks for each other.

If a partner sends one tag and calls it both, split the artifact. The VAST XML is vastlint's document. The MRAID creative is a different file, loaded by a different host. Checking one will not bless the other.

Questions that separate the two

  • Is the host a video player or a mobile SDK webview?
  • Is the creative a VAST media file, or the ad itself inside the webview?
  • Are the shared words VPAID events inside MRAID 3.0, or a VAST apiFramework?
  • Does a decodable media file remain if the executable never runs?
  • Is measurement OMID, or the creative reporting its own events?

A shared event name inside a mobile container does not turn that container into a VAST player.

standards triage note

See whether the VAST tag still depends on VPAID

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

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.

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 sandbox beside a media file, against the in-app bridge.

SIMID and OMID, not MRAID.

VAST is the document. VPAID was an executable inside it.

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.