ORTB
…
SIMID chapter navigation

SIMID

1.2.0 · Current version

The Secure Interactive Media Interface Definition (SIMID) specifies the messaging protocol between the media player and the executable ad creative: the creative is sandboxed inside a cross-origin iframe, both sides exchange serialized messages over postMessage, and neither calls the other's functions or touches the other's DOM. It takes over the interactivity role from VPAID, alongside OMID which handles measurement and verification.

38 messages · 36 response sections · 36 error codes · 22 workflow sections

On this page
SIMID 1.2 currently exists only as Markdown in the repository — the official rendered site is still 1.1.0. References are pinned to the commit used for collection, and historical versions come from the official rendered documents.

Body text is the IAB Tech Lab English original, reproduced verbatim — the site does not rewrite, summarise or translate it; section order and table structure follow the source.

Sandbox and communication model

Every SIMID design constraint follows from one fact: the creative and the player live in separate security sandboxes.

Contract essentials

  1. The creative is the HTML document referenced by the VAST InteractiveCreativeFile element, loaded by the player into a cross-origin (unfriendly) iframe.
  2. The player loads and plays the media file while the creative only overlays interactivity; both the asset and the creative can therefore be pre-cached, and SSAI and live remain viable.
  3. All communication follows the §8 protocol: the data layer defines the Message structure, the transport layer uses Window.postMessage with JSON serialization, and the session layer isolates concurrent ads by sessionId.
  4. Request messages are answered with resolve / reject, and the creative and the player each maintain an independent message-id counter.

Differences from VPAID

The table below reproduces the official §2.1 comparison verbatim, to scope the impact when migrating existing creatives.

FeatureVPAIDSIMID
SecurityCreative directly accesses player DOM and shared global JavaScript context.Creative is sandboxed into a crossorigin iframe. No player DOM access or shared JavaScript context.
Ad media asset managementCreative manages ad video loading and playback.Player manages ad media loading and playback (audio or video).
Pre-cachingOnly the VPAID script can be reliably pre-cached. Video asset cannot be pre-cached.Audio or video asset and SIMID creative can both be pre-cached.
Errors influence on performance or UXFatal script errors from ad creative can result in significant player or publisher site performance and user experience deterioration (due to shared security sandbox).Fatal script errors from ad creative do not affect player or publisher site directly. Impact is limited to performance and user experience of the creative, only.
SSAI feasibilitySSAI is not possible.Interactive creatives can be rendered in SSAI context.
LatenciesPublishers are at the mercy of VPAID creative implementation efficiency and uncontrollable internal processes (verification, trading, wrapping, etc.). Each of these behaviors can impose significant latencies.Players can pre-load media and creative assets due to maintaining full control over decisioning, loading and displaying of the ad unit. Ad decisioning latency is removed, risks of internal processes are minimized due to separate security sandboxes.
APIBoth the player and creative must support specific JavaScript functions. Each component calls functions directly on the other in a shared security sandbox (insecure).No functions are directly called on either component by the other. All communication is achieved using standard postMessage API and SIMID messaging protocol across separate security sandboxes.
Ad blockingVPAID can prevent an ad from rendering.SIMID is built for interactivity and was not designed for ad blocking. The Open Measurement SDK (OMID) is expected to support this capability in the future.
Verification servicesVerification features can be fully implemented and executed in shared DOM and global Javascript context.SIMID creative cannot access any DOM, elements, or JS context outside of its own security sandbox so is unable to handle any verification use cases. OMID handles the use case for verification allowing SIMID to be focused on interactivity only.
Creative wrappingVPAID ads can load other ads (including other VPAID ads).Cannot be executed.
Audio advertisingOut of standard scope.Enables interactive components serving with audio ads.
Environment constraintsPlayer must be an HTML video element.Player can be native or web so long as the SIMID creative has sandboxed DOM access (such as a web view).
Resource MIME typeapplication/javascripttext/html

How the creative is delivered

SIMID defines no signalling of its own: the interactive layer arrives as a VAST resource — InteractiveCreativeFile for linear creatives, NonLinear/IFrameResource for non-linear ones, both with apiFramework set to SIMID.

The VAST 4.x response designates the element to describe the ad’s interactive component data. For SIMID, element must include the following required attributes and their values: type="text/html" and apiFramework="SIMID".

<InteractiveCreativeFile type="text/html" apiFramework="SIMID"
variableDuration="true">
<![CDATA[https://adserver.com/ads/creative.html]]>
</InteractiveCreativeFile>

The value of the apiFramework attribute identifies SIMID as the required API for the creative. Players that do not support the SIMID API may load an audio or video file included with the ad, but they will not load or play the SIMID creative.

Media players that do support the SIMID API should handle version negotiation between the creative and the media player via the § 6.1 How to Handle Ad Loading algorithm. The SIMID API version is not identified by any element or attribute in the VAST file.

A third, optional attribute which may be included on the InteractiveCreativeFile element is variableDuration="true". If present, this attribute indicates that the ad unit is only playable if the media player allows the creative to pause playback of the ad’s audio or video and extend the duration of the ad break (for example, with interactive content such as a game or survey). If the player does not support or allow this capability, then it must not render the current ad’s audio/video or SIMID creative. The player should error out the ad instead (and either resume its primary content or continue on to the next ad in the current ad pod).

Non-linear and L-shaped ads

A non-linear creative only has collapsed / expanded states and ships no media asset; expanding requires the player to pause the main content. L-shaped (squeeze back) ads work by cropping the video and overlaying the creative in the blank area — SIMID does not support L-shapes achieved by resizing the player.

VAST supports nonlinear ads since version 2.0 including interactive ads that implement API frameworks.

VAST response describes nonlinear ads in the node children. The node attribute’s apiFramework value is SIMID. The node delivers a URI to the SIMID interactive component. The node contains custom ad data for the creative’s consumption.

<Creative>
<NonLinear>
<IFrameResource type="text/html" apiFramework="SIMID">
<![CDATA[https://adserver.com/videoads/simidshell.html]>
</IFrameResource>
<AdParameters>
<![CDATA[{adid:345893,cturi:"https://mycar.com/modelS.html"}]>
</AdParameters>
</NonLinear>
</Creative>

Session, messages and responses

The creative posts createSession to signal readiness, the player answers with resolve and then posts Player:init; only after the creative resolves init does the player make the iframe visible and post Player:startCreative. §8.4 also defines the timeout and recovery paths.

Versions and data sources

Each version gets its own message catalogue page, comparable against the others.

1.2.02026-07-23Current version

38 msg · 36 resp · 36 err · 22 flow

Markdown · SIMID 1.2.md

1.1.02020-11-19Historical version

38 msg · 36 resp · 36 err · 22 flow

Bikeshed · simid-1.1.0.html

1.0.12020-05-29Historical version

34 msg · 29 resp · 26 err · 21 flow

Bikeshed · simid-1.0.1.html

1.0.02019-06-27Historical version

34 msg · 29 resp · 12 err · 12 flow

Bikeshed · simid-1.0.html

Official text extract

2Executive Summary

Secure Interactive Media Interface Definition (SIMID) is a standard for providing rich interactivity in the context of streaming audio and video (media) ads. While the Video Ad Serving Template (VAST) standard addresses how publishers discover various metadata assets related to an ad campaign, SIMID addresses how the publisher’s media player should communicate and interface with a rich interactive layer and vice versa. As such, one can think of the SIMID creative as one of the assets listed in a VAST document.

A main tenet of SIMID is the separation of the interactive layer from the media asset. This clear separation allows publisher players to be in control of their streams and enables use cases such as server-side ad insertion (SSAI), as well as live streaming.

SIMID was built with strong security from the ground up, and is designed to be sandboxed from the media player, providing peace of mind to publishers when serving ads from third party services. SIMID aims to provide the tools and controls to allow creatives to offer rich augmented user experiences while degrading gracefully if certain features are not supported.

*SIMID ads sandboxing from the publisher player environment*

A diagram showing SIMID ads sandboxed from the publisher player environment

SIMID is part of a broader effort to replace the older VPAID standard (more details in this blog post by the IAB Tech Lab). While Open Measurement replaces the use case of verification and measurement, SIMID replaces the use case of interactive streaming media ads, the original intended purpose of the VPAID standard. SIMID provides a path for VPAID deprecation and allows the industry to move to more secure and transparent standards. SIMID aims to gain broad industry adoption by ensuring that the standard is focused on the primary use case of interactivity.

2.1SIMID vs. VPAID Comparison

*VPAID vs. SIMID APIs*

SIMID vs. VPAID Comparison.

FeatureVPAIDSIMID
SecurityCreative directly accesses player DOM and shared global JavaScript context.Creative is sandboxed into a crossorigin iframe. No player DOM access or shared JavaScript context.
Ad media asset managementCreative manages ad video loading and playback.Player manages ad media loading and playback (audio or video).
Pre-cachingOnly the VPAID script can be reliably pre-cached. Video asset cannot be pre-cached.Audio or video asset and SIMID creative can both be pre-cached.
Errors influence on performance or UXFatal script errors from ad creative can result in significant player or publisher site performance and user experience deterioration (due to shared security sandbox).Fatal script errors from ad creative do not affect player or publisher site directly. Impact is limited to performance and user experience of the creative, only.
SSAI feasibilitySSAI is not possible.Interactive creatives can be rendered in SSAI context.
LatenciesPublishers are at the mercy of VPAID creative implementation efficiency and uncontrollable internal processes (verification, trading, wrapping, etc.). Each of these behaviors can impose significant latencies.Players can pre-load media and creative assets due to maintaining full control over decisioning, loading and displaying of the ad unit. Ad decisioning latency is removed, risks of internal processes are minimized due to separate security sandboxes.
APIBoth the player and creative must support specific JavaScript functions. Each component calls functions directly on the other in a shared security sandbox (insecure).No functions are directly called on either component by the other. All communication is achieved using standard postMessage API and SIMID messaging protocol across separate security sandboxes.
Ad blockingVPAID can prevent an ad from rendering.SIMID is built for interactivity and was not designed for ad blocking. The Open Measurement SDK (OMID) is expected to support this capability in the future.
Verification servicesVerification features can be fully implemented and executed in shared DOM and global Javascript context.SIMID creative cannot access any DOM, elements, or JS context outside of its own security sandbox so is unable to handle any verification use cases. OMID handles the use case for verification allowing SIMID to be focused on interactivity only.
Creative wrappingVPAID ads can load other ads (including other VPAID ads).Cannot be executed.
Audio advertisingOut of standard scope.Enables interactive components serving with audio ads.
Environment constraintsPlayer must be an HTML video element.Player can be native or web so long as the SIMID creative has sandboxed DOM access (such as a web view).
Resource MIME typeapplication/javascripttext/html
2.2Intended Audience

The SIMID standard is geared toward the digital media advertising community. Anyone who works with digital media advertising products or services can benefit from reading the Introduction sections of this document. The Messaging Protocol, API Reference, and later sections predominantly target software engineers.|

2.3Changes In SIMID 1.2

SIMID version 1.2 introduces the following enhancements:

  1. Details for working with L-Shaped “squeeze backs.” (section 3.6.1)
  2. Specify unknown size (such as for responsive ads) using -1. (section 4.3.7)
  3. Session IDs must be cryptographically secure. (section 8.4)
  4. Note on deep links. (section 4.4.1)
3Introduction

Throughout this document, the SIMID interactive component is referred to as a “SIMID creative” or “creative”.

Compliance with SIMID requires support for all features and behaviors specificied in this document, unless a given feature or behavior is explicitly designated as optional. Standard RFC language will be used. See https://tools.ietf.org/html/rfc2119 for RFC 2119 for enforcement terminology used in this standard.

3.1SIMID Interactive Creative Nature

*SIMID Assets loading*

A SIMID creative can be included in a VAST document by way of an element. The text within this element must be a url which returns an HTML document. When loaded into an iframe by a media player, this HTML document will define the SIMID creative’s content, and will direct the web browser or host application to load any additional assets required by that creative (images, CSS, scripts, etc.).

The element is defined as a child of the element in VAST 4.0. For more technical details, see the § 5 Referencing a SIMID creative from VAST section.

<MediaFiles>
<MediaFile>
<![CDATA[https://example.com/mediafile.mp4]]>
</MediaFile>
<InteractiveCreativeFile type="text/html" apiFramework="SIMID" variableDuration="true">
<![CDATA[https://adserver.com/ads/creative.html]]>
</InteractiveCreativeFile>
</MediaFiles>
3.2SIMID Ad Serving Flow

The SIMID ad experience is delivered by a web browser or application concurrently rendering an ad’s streaming audio or video file and its interactive creative file. The media player obtains urls for both files from a VAST document, loads the files, assembles them into a single ad unit, and ensures a cohesive ad experience.

*SIMID creative loading and presentation process.*

3.3Player and Creative Communication

A media player and a SIMID creative communicate by sending serialized messages back and forth to each other.

Because a SIMID creative is an HTML document that is served from an advertiser’s web domain, and it is loaded by a media player into an iframe within a web page hosted on a different domain, loading the creative requires the creation of a cross-origin iframe (also known as an "unfriendly iframe"). Due to browser sandbox security restrictions, JavaScript communication across this type of iframe can only be achieved via the standard postMessage API.

SIMID API requirements govern message construction conventions as well as the message data structure. See sections § 8 Messaging Protocol, § 4 API Reference for more information.

3.4Audio Only in a Web Player

While SIMID was designed to support interactive video creative, SIMID can also be used to handle interactive audio without the visual component. Interactivity in an audio-only creative can take advantage of SIMID controls to pause, play, seek, and skip. SIMID can also help with performance by reporting on media events and any errors.

The use of SIMID features in audio player must maintain an internet connection. For audio content that is downloaded and executed offline, SIMID features will be inoperable.

3.5Scope and Limitations

The use of HTML is only required for the SIMID creative, not the publisher property hosting that creative. As long as the publisher can load HTML and communicate with it over the standard postMessage API, it can support SIMID. In practice, this means that SIMID can be hosted in web page iframes, mobile app web views, and other platforms. In fact, SIMID can better support mobile use cases than VPAID because a native app or media player directly controls loading and playback of a SIMID ad unit’s media asset (whereas a VPAID ad unit offers no direct access or control of its internal media asset).

Note: Certain devices, including TV sets and OTT boxes, restrict loading of external assets, have limited HTML rendering capabilities, or are unable to display HTML along with audio or video. These devices are incapable of implementing SIMID. Devices that support HTML and JavaScript can support SIMID - on both client side as well as in server side ad insertion scenarios

SIMID cannot be used to decide which media to show on the client pre-impression. This is because the media file must be present alongside the SIMID creative and delivered via the VAST MediaFile node.

SIMID should not be set up to measure viewability. IAB Tech Lab offers resources for measurement in its Open Measurement initiative. For more information, please visit:

iabtechlab.com/standards/open-measurement-sdk/

Any use of the SIMID spec to support something other than interactive or dynamic content within the ad unit is counter to the intentions of this spec.

3.5.1Privacy Compliance

Compliance with current privacy regulations involve actions that occur during the transaction on the ad and before SIMID is loaded. As long as the ad is contained in a SIMID container, it cannot access any data the publisher may have in the player app or the environment where the player is installed (web page, mobile device, etc.). Please visit iabtechlab.com to learn more about what IAB Tech Lab offers in support of your efforts to respect the privacy of consumers’ data.

3.6Introduction to Nonlinear Ads

Nonlinear ads are served and displayed concurrently with the primary media content. In video players, nonlinear ads overlay a portion of the video.

Nonlinear ads implement two states: collapsed and expanded. The player renders the nonlinear ad in the original state, collapsed, while media content progresses uninterrupted. The expanded ad state typically occupies the entire player viewport and requires the media content to be paused. The expanded state of the nonlinear ad usually occurs via user interaction with the creative.

Unlike the linear ads, there is no media asset that the player needs to render with a nonlinear ad.

SIMID supports nonlinear ads by providing a nonlinear specific API. Both linear and nonlinear ads share the same communication protocol and data providers. As with linear ads, the interactive creative is a single resource that the player loads into a cross-origin iframe.

*Nonlinear Ad User Experience*

  1. User clicks on expand button. The player pauses content and expands the creative.
  2. User clicks collapse button.
  3. Player resizes the creatigve to its default state and resumes content playback.
  4. User clicks close button.
  5. Player unloads the creative and resumes media content.
  6. User clicks close button provided by the default state. Player unloads the creative.
3.6.1L-Shaped Ads (L Squeeze backs)

SIMID already supports L shape ads. As a creative vendor, you should have access to the media files for the ad as well as the interactive creative files. Using these two things, you can create an L shape ad experience using SIMID.

The video asset will need to be cropped or resized to allow the interactive creative to be put into the correct place. This means replacing the part that the interactive creative would cover with blank areas. Effectively, you are shrinking the effective size of the video to fit the new window that’s created when the interactive creative overlay is placed over it. Since the video and interactive asset are coming from the same source, when you know you want an L shape ad experience, serve the proper cropped video along with the interactive creative and a SIMID enabled player should play the video and overlay the interactive creative over the blank spots which preserves the L shape ad experience.

While this takes some work on the video size, it can also be achieved by making the parts of the video that the interactive creative overlays a less relevant part of the video ad. Meaning, if the overlay is covering those parts of the video, minimal information is lost. This is the second way L shaped ads can run right now.

SIMID does not support L shaped ads that resize the video player without an overlay covering the video. Video assets and interactive creatives should be able to work together to achieve the same result.

3.6.2Nonlinear Ads VAST Response

VAST supports nonlinear ads since version 2.0 including interactive ads that implement API frameworks.

VAST response describes nonlinear ads in the node children. The node attribute’s apiFramework value is SIMID. The node delivers a URI to the SIMID interactive component. The node contains custom ad data for the creative’s consumption.

<Creative>
<NonLinear>
<IFrameResource type="text/html" apiFramework="SIMID">
<![CDATA[https://adserver.com/videoads/simidshell.html]>
</IFrameResource>
<AdParameters>
<![CDATA[{adid:345893,cturi:"https://mycar.com/modelS.html"}]>
</AdParameters>
</NonLinear>
</Creative>

Inconsistencies in the official source

These differences are detected automatically in the official text during collection and reproduced as-is (the site neither corrects nor overrides them). They explain where the document, player implementations and this table may disagree.

VersionTypeDetail
1.2.0reference-table-incomplete正文有但 §4.1 总表未列出:SIMID:Creative:requestNavigation
1.2.0summary-vs-webidl-mismatchSIMID:Player:resize: 汇总表写 mediadimensions,WebIDL 无此字段(实际 videodimensions/creativedimensions/fullscreen)
1.2.0response-subsection-unlisted正文存在响应小节但 §4.1 标 n/a:SIMID:Creative:clickThru.resolve, SIMID:Creative:clickThru.reject
1.2.0media-event-table-misplaced「Required and optional media event types」表在 §4.2 只有表题、表格实体落在「Messages from the player」节末尾;站内按表头特征认领,不改写归属
1.2.0example-not-strict-json4 处官方报文示例为 JS 对象字面量(键未加引号),非严格 JSON;站内已存 raw + repaired 两份,解析器按 repair 后校验
1.2.0reject-example-type§8.2.2 reject Messages 的示例把 Message.type 写成 "resolve",与同节正文要求(must be reject)矛盾
1.2.0non-webidl-type官方类型名不合 WebIDL 或无法解析:MessageArgs.trackingUrls:Array, MessageArgs.uri:string, SIMID:Creative:reportTracking.trackingUrls:Array, SIMID:Creative:requestNavigation.uri:string
1.2.0markdown-table-malformed-row表格行缺起始竖线(原文排版缺陷):Reference Table 1 行
1.2.0official-typo-preserved以下拼写/断词为官方原文所有,站内照录未修正:"Creaitve"(§4.4.3 正文);"creatigve"(§3.6 非线性交互列表);"proccesses"(§6.2/§6.4 时序步骤);"Initilaizatioin"(§6.2 图题);"interuppted"(§4.2 媒体事件表行名);"startCreativemes"(§9 错误码 1213 描述断词);"expandNonline"(§9 错误码 1222 描述断词)
1.1.0reference-table-incomplete正文有但 §4.1 总表未列出:SIMID:Creative:requestNavigation
1.1.0summary-vs-webidl-mismatchSIMID:Player:resize: 汇总表写 mediadimensions,WebIDL 无此字段(实际 videodimensions/creativedimensions/fullscreen)
1.1.0response-subsection-unlisted正文存在响应小节但 §4.1 标 n/a:SIMID:Creative:clickThru.resolve, SIMID:Creative:clickThru.reject
1.1.0example-not-strict-json4 处官方报文示例为 JS 对象字面量(键未加引号),非严格 JSON;站内已存 raw + repaired 两份,解析器按 repair 后校验
1.1.0non-webidl-type官方类型名不合 WebIDL 或无法解析:MessageArgs.trackingUrls:Array, MessageArgs.uri:string, SIMID:Creative:reportTracking.trackingUrls:Array, SIMID:Creative:requestNavigation.uri:string
1.1.0official-typo-preserved以下拼写/断词为官方原文所有,站内照录未修正:"Initilaizatioin"(§6.2 图题);"expandNonline"(§9 错误码 1222 描述断词)
1.0.1summary-vs-webidl-mismatchSIMID:Player:resize: 汇总表写 mediadimensions,WebIDL 无此字段(实际 videodimensions/creativedimensions/fullscreen)
1.0.1example-not-strict-json4 处官方报文示例为 JS 对象字面量(键未加引号),非严格 JSON;站内已存 raw + repaired 两份,解析器按 repair 后校验
1.0.1reject-example-type§8.2.2 reject Messages 的示例把 Message.type 写成 "resolve",与同节正文要求(must be reject)矛盾
1.0.1non-webidl-type官方类型名不合 WebIDL 或无法解析:MessageArgs.trackingUrls:Array, SIMID:Creative:reportTracking.trackingUrls:Array
1.0.1official-typo-preserved以下拼写/断词为官方原文所有,站内照录未修正:"Initilaizatioin"(§6.2 图题)
1.0.0example-not-strict-json1 处官方报文示例为 JS 对象字面量(键未加引号),非严格 JSON;站内已存 raw + repaired 两份,解析器按 repair 后校验
1.0.0prose-type-names1.0 的散文参数用了 int / number 这类实现语言类型名(1.0.1 起改为 WebIDL 标量):SIMID:Media:timeupdate.currentTime:number, SIMID:Media:volumechange.volume:number, SIMID:Player:adStopped.code:int, SIMID:Creative:clickThru.x:int, SIMID:Creative:clickThru.y:int, SIMID:Creative:fatalError.errorCode:int, SIMID:Creative:reportTracking.reject.errorCode:int, SIMID:Creative:requestChangeAdDuration.duration:int
1.0.0official-typo-preserved以下拼写/断词为官方原文所有,站内照录未修正:"paramaters"(1.0 参数段标签拼写);"ackPromise"(1.0 的 Promise 机制术语)
1.0.0section-number-skew渲染稿章节编号与规范正文不一致:Error Codes 标为 §8.4、Terminology 标为 §9(站内结构按标题定位,编号仅作展示)
1.0.0args-notation-prose10 条消息的参数在官方稿里是「name(Type): 描述」散文列表而非 WebIDL(1.0 的写法),站内归一为同一 args 结构并标 argsSource="prose-list";另有 22 条官方未给参数结构

Data sources and baseline

Collected on 2026-10-04 from the official IAB Tech Lab repository (commit pinned), licensed CC BY-NC-ND 4.0(index.bs metadata 的 License 声明);同一文件另附 Open Web Foundation 1.0 声明,两处口径并存; checksums of the four source documents and the inconsistencies found in them are recorded in PROVENANCE.

Open the official specification ↗

1.2.0
457bad1f165e242e… · SIMID 1.2.md
1.1.0
48a5fe114f8d96b9… · simid-1.1.0.html
1.0.1
601481d5fe7e0da1… · simid-1.0.1.html
1.0.0
619859b3e6e316bf… · simid-1.0.html

Known gaps

  • 官方站点(GitHub Pages)仍是 1.1.0 渲染稿,1.2 只有 Markdown 文本,站内 §引用锚点因此按各版本自身 anchor 生成。
  • 官方未提供 1.2 的正式发布说明(新闻稿/PDF),releasedAt 用仓库提交日期代替。
  • 1.0.0 渲染稿的 IDL 代码块未标 class="idl"(1.0.1 起才有),但纯文本形态一致,解析结果同构。

Protocol reference · works with VAST Debugger and HTML5 Ad Tools · VAST · OMID · AdCOM