ORTB
…
SIMID 分册导航

SIMID

1.2.0 · 现行版本

安全交互媒体接口定义(Secure Interactive Media Interface Definition,SIMID)规定播放器与可执行广告创意之间的消息协议:创意被沙箱在跨域 iframe 内,两侧只通过 postMessage 交换序列化消息,任何一方都不直接调用对方的函数或访问对方的 DOM。它接替了 VPAID 的交互职责,与负责测量验证的 OMID 分工并行。

38 条消息 · 36 个响应小节 · 36 个错误码 · 22 段工作流

本页目录
SIMID 1.2 目前只有仓库里的 Markdown 文本,官方渲染站点仍是 1.1.0;站内按采集时的 commit 固定引用地址,历史版本取自官方渲染稿。

正文照录 IAB Tech Lab 官方英文原文,站内不改写、不概括、不翻译;章节顺序与表格结构随原文一并保留。

沙箱与通信模型

SIMID 的十条设计约束都源于同一件事:创意与播放器处于两个安全沙箱内。

契约要点

  1. 创意是 VAST InteractiveCreativeFile 指向的 HTML 文档,由播放器载入跨域(unfriendly)iframe。
  2. 媒体文件由播放器加载与播放,创意只叠加交互层;因此素材与创意都可预缓存,SSAI 与直播也成立。
  3. 全部通信走 §8 的消息协议:数据层定义 Message 结构,传输层用 Window.postMessage 与 JSON 序列化,会话层用 sessionId 隔离并发广告。
  4. 请求类消息以 resolve / reject 应答,创意与播放器各自维护独立的消息序号计数器。

与 VPAID 的差异

下表照录官方 §2.1 的逐条对比(英文原文),用于判断存量创意迁移时的影响面。

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

创意如何被带出

SIMID 不定义信令,交互层作为 VAST 的一种资源出现:线性创意用 InteractiveCreativeFile,非线性创意用 NonLinear 的 IFrameResource,两者的 apiFramework 取值为 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).

非线性与 L 形广告

非线性创意只有折叠 / 展开两态,没有随附的媒体素材;展开需要播放器能暂停主内容。L 形(squeeze back)靠把视频裁出空白区、由创意叠加填补来实现,SIMID 不支持靠改变播放器尺寸实现的 L 形。

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>

会话、消息与响应

创意先 post createSession 表示已就绪,播放器回 resolve 后再 post Player:init;创意应答 init 之后播放器才让 iframe 可见并发 Player:startCreative。§8.4 还规定了超时与恢复路径。

版本与数据源

站内按版本各出一张消息目录页,可互为对照。

1.2.02026-07-23现行版本

38 msg · 36 resp · 36 err · 22 flow

Markdown · SIMID 1.2.md

1.1.02020-11-19历史版本

38 msg · 36 resp · 36 err · 22 flow

Bikeshed · simid-1.1.0.html

1.0.12020-05-29历史版本

34 msg · 29 resp · 26 err · 21 flow

Bikeshed · simid-1.0.1.html

1.0.02019-06-27历史版本

34 msg · 29 resp · 12 err · 12 flow

Bikeshed · simid-1.0.html

官方正文摘录

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>

官方源不一致项

以下差异由采集脚本在官方原文中自动检出并照录(站内不修正、不覆盖),用于解释文档、播放器实现与本表之间可能出现的口径差异。

版本类型说明
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 条官方未给参数结构

数据源与基线

采集于 2026-10-04,来源为 IAB Tech Lab 官方仓库(commit 固定),许可 CC BY-NC-ND 4.0(index.bs metadata 的 License 声明);同一文件另附 Open Web Foundation 1.0 声明,两处口径并存;四版原文的校验和与官方源不一致项记录在 PROVENANCE。

打开官方规范原文 ↗

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

已知缺口

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

协议参考页 · 与 VAST Debugger、HTML5 Ad Tools 联动 · VAST · OMID · AdCOM