On November 10, 2026, IAB Tech Lab expanded OM SDK support to pause, menu, screensaver, and overlay formats in the CTV Ad Portfolio. Buyers get a consistent impression signal on inventory that never looked like a mid-roll spot. Sellers still deliver those buys as VAST, and third-party measurement still arrives through the same verification contract the SDK consumes. The confusion is not whether OMID matters on CTV. It is whether the tag you trafficked carries OMID in AdVerifications, SIMID in InteractiveCreativeFile, or a deprecated VPAID unit where the MP4 ought to be. Three strings named apiFramework. Three different files the runtime may or may not execute.
VPAID: the JavaScript MediaFile the player was supposed to run
Video Player-Ad Interface Definition made the ad executable. In VAST 2.0 and 3.0, and in plenty of legacy 4.x tags, VPAID shows up on a <MediaFile> with type="application/javascript" and apiFramework="VPAID". The player downloads that script, calls getAdLinear() and friends, and the script owns playback until it hands off media. Measurement vendors piggybacked on the same runtime, which is why so many teams still grep for VPAID when they mean "viewability."
IAB deprecated VPAID in VAST 4.1. SSAI has no browser to execute the script. CTV players treat a JS MediaFile as unrunnable. A tag that still names VPAID can validate against an older mental model and still die with error 901 or a silent skip on the living room screen. The VPAID rules reference catalogs detection, SSAI incompatibility, and the common case where SIMID migration leaves type="application/javascript" on the wrong element.
On 4.1+, VAST-4.1-vpaid-apiframework is the deprecation warning most traffickers see first. It does not remove the node. It tells you the environment you bought probably will not run it.
SIMID: the HTML document beside the video, never instead of it
Secure Interactive Media Interface Definition replaces VPAID for interactivity only. SIMID lives in <InteractiveCreativeFile> with apiFramework="SIMID" and type="text/html". The player loads that URL in a sandboxed iframe and talks to it over postMessage. The linear video still comes from a normal <MediaFile> (typically video/mp4 or HLS). SIMID does not substitute for that file. A tag with only an interactive creative and no media file leaves SSAI and strict CTV with nothing to stitch.
That split is why "we added SIMID for CTV" fails when the trafficker deleted the MP4 and kept the interactive URL. Empty or whitespace URLs fail quietly: SIMID-1.0-simid-url-empty flags a sidecar with no destination. Shipping VPAID and SIMID in one inline without a plain video file is two runtimes and zero fallback, which the VPAID and SIMID together write-up walks through hop by hop.
SIMID is what the player runs when the break allows interaction. It is not what OM SDK calls for viewability.
OMID: the verification script in AdVerifications
Open Measurement Interface Definition is the API surface inside OM SDK. In VAST 4.1+, vendors declare scripts under <AdVerifications> inside <Verification>, usually as <JavaScriptResource apiFramework="omid">. The player (or native OM SDK on app and CTV) loads those resources, isolates them from the page, and forwards geometry and quartile signals. OMID does not replace the creative. It does not sit in <MediaFiles>. It does not open in place of SIMID.
A common production bug is pasting a viewability snippet into the creative because VPAID used to bundle measurement and playback. OMID versus MRAID versus creative-side events is a different reporter on a different host; the OMID vs MRAID post lays out which VAST node each one uses. Uppercase apiFramework="OMID" on the verification resource still breaks strict parsers that expect lowercase omid. Missing verificationNotExecuted tracking leaves vendors guessing when the script never loaded.
After the November 2026 OM SDK release, pause and overlay buys need the same verification discipline as pre-roll. The portfolio format changes how much screen real estate the ad uses. The VAST contract for who measures it is still AdVerifications.
Side by side: what each framework expects the player to load
| Framework | Primary VAST placement | Typical MIME / type | Replaces video? | Runs on SSAI / CTV? |
|---|---|---|---|---|
| VPAID | <MediaFile apiFramework="VPAID"> |
application/javascript |
Yes (script was the ad) | No |
| SIMID | <InteractiveCreativeFile apiFramework="SIMID"> |
text/html |
No (needs separate MediaFile) | Sidecar only where SIMID is implemented |
| OMID |
<JavaScriptResource apiFramework="omid"> in AdVerifications |
vendor measurement script | No | Yes via OM SDK |
One field operators still mix up: apiFramework on a MediaFile is a playback declaration. apiFramework="omid" belongs on the verification resource, not on the MP4.
Wrappers make the mistake worse. Hop one can be a clean wrapper; the inline two levels down still carries VPAID as the only "media" while SIMID points at a 404. Schema validation on the outer shell does not tell you which file the stitcher resolved.
How you catch it
An LLM or trafficker assistant can emit a well-formed VAST tree with three frameworks named and still ship an unplayable creative. The wire contract does not move when the tool call returns OK. vastlint checks the VAST, VMAP, and DAAST envelope those frameworks ride in: deprecated VPAID media files, SIMID HTML requirements, OMID vendor shape, HTTPS on verification URLs. It is independent of IAB Tech Lab and of AAO. It does not execute VPAID, open a SIMID session, or certify an OM SDK build.
Start with the VAST tag tester on a live tag URL or pasted XML: fetch, preview the actual MP4, and see whether tracking and click URLs survived. When the campaign is wrapper-heavy, use the VAST inspector hop by hop so AdVerifications and interactive files from inner inlines are not lost in the chain. For SIMID handshake, host transport, and IAB sample creatives, the IAB-style VAST tester is an independent fork, not an IAB Tech Lab product. CLI and CI use cargo install vastlint or npm install vastlint on fixtures before launch.
Where to go next
- What is VPAID and why migration targets SIMID plus OMID, not a rename.
-
OMID in VAST AdVerifications for vendor format,
browserOptional, andverificationNotExecuted. - VPAID validation rules when legacy tags still share a chain with new interactive files.
Pick one job per node: the MP4 for playback, SIMID HTML for optional interaction, OMID script for measurement. The player runs exactly the files you put in those slots, not the framework names in the brief.
Top comments (0)