启用 VPAID 2 JavaScript 广告素材
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
IMA HTML5 SDK 支持 VPAID 2 JavaScript 广告素材。启用支持时,您需要注意 VPAID 2 规范与 IMA SDK 支持 VPAID 2 的方式之间存在两项主要区别。这些差异不会影响播放器或 SDK 实现代码,但对于 VPAID 2 JavaScript 广告素材作者来说非常重要,因为当 IMA HTML5 SDK 呈现广告素材时,广告素材可能会抛出错误或无法按预期运行。
前提条件
如需学习本指南,请先创建一个具有以下特征的应用:
- 集成了 IMA HTML5 SDK 的 HTML5 视频播放器。如果您没有,请参阅设置 IMA SDK。
- 指向 VPAID 2 JavaScript 广告素材的 VAST 广告代码网址。
实用的入门信息
启用 VPAID 2 支持
如需启用 VPAID 2 JavaScript 支持,请在初始化 AdDisplayContainer 之前调用以下方法:
google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED);
...
var adDisplayContainer = new google.ima.AdDisplayContainer(adContainerElement);
var adsLoader = new google.ima.AdsLoader(adDisplayContainer);
...
可用的 VPAID 模式如下:
ENABLED
- 允许使用默认设置的 VPAID 广告。
INSECURE
- 允许在不安全模式下投放 VPAID 广告。如需了解详情,请参阅 IFrame 安全性和视频播放器代理元素。
DISABLED
- VPAID 广告不播放。如果所请求的广告返回 VPAID 广告素材,则会抛出错误。
如需详细了解 VPAID 模式,请参阅 ImaSdkSettings.VpaidMode 的 API 文档。
VPAID 2 支持注意事项
iframe 安全性
默认情况下,IMA SDK 使用安全 iframe(而非友好型 iframe [同一网域] 或网页内脚本)来渲染 VPAID 2 JavaScript 广告素材。这意味着,如果广告素材希望访问父网页的 DOM,则可能会导致错误。如需改为在友好型 iframe 中呈现广告,您可以使用 ImaSdkSettings.setVpaidMode(...)
,如下所示:
adsLoader.getSettings().setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.INSECURE);
视频播放器代理元素
为了确保安全性和正常的移动功能,在 ENABLED
模式下,IMA HTML5 SDK 不会向广告提供实际的视频元素,而是提供一个代理元素,该元素可模拟正常视频元素的大部分功能。对于仅调用受支持的 API 方法的广告素材,广告素材的呈现行为应该不会发生变化。在 VpaidMode.INSECURE
模式下,SDK 提供的是视频播放器元素,而不是代理。
以下是视频代理元素中可用的方法、监听器和属性:
方法
addEventListener
canPlayType
load
play
pause
setattribute
addEventListener 的事件类型
abort
canplay
canplaythrough
click
durationchange
emptied
ended
error
loadeddata
loadedmetadata
loadstart
pause
play
playing
progress
ratechange
suspend
seeked
seeking
timeupdate
waiting
属性
currentTime
duration
ended
paused
playbackRate
src
type
常见问题解答
- iOS 或 Android SDK 是否支持 VPAID 2 JavaScript 广告素材?
-
IMA HTML5 SDK 是唯一支持 VPAID 2 JavaScript 广告素材的 IMA SDK 平台。
- 这是否会在 IMA HTML5 SDK 中启用 VPAID 广告素材?
- 可以,IMA HTML5 SDK 支持 VPAID 2 JavaScript 广告素材。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-31。
[null,null,["最后更新时间 (UTC):2025-08-31。"],[[["\u003cp\u003eThe IMA HTML5 SDK supports VPAID 2 JavaScript creatives, requiring a simple setup process outlined in the guide.\u003c/p\u003e\n"],["\u003cp\u003eKey differences exist between the VPAID 2 spec and the IMA SDK's implementation, primarily impacting creative authors.\u003c/p\u003e\n"],["\u003cp\u003eBy default, the SDK uses a secure iframe for rendering VPAID 2 creatives, but you can switch to a friendly iframe for DOM access.\u003c/p\u003e\n"],["\u003cp\u003eA video proxy element is used for security and mobile functionality, providing a subset of video element functionalities to the ad.\u003c/p\u003e\n"],["\u003cp\u003eVPAID 2 JavaScript creative support is currently exclusive to the IMA HTML5 SDK, not available in the iOS or Android SDKs.\u003c/p\u003e\n"]]],[],null,["# Enable VPAID 2 JavaScript creatives\n\nThe IMA HTML5 SDK supports VPAID 2 JavaScript creatives. Enabling support is easy, but there are two differences to be aware of between the [VPAID 2 spec](//iabtechlab.com/standards/video-player-ad-interface-definition-vpaid/) and the way the IMA SDK supports VPAID 2. These differences do not impact player or SDK implementation code, but they are important for VPAID 2 JavaScript creative authors, as creatives may throw errors or not work as expected when rendered by the IMA HTML5 SDK.\n\nPrerequisites\n-------------\n\n- HTML5 video player with the IMA HTML5 SDK integrated. If you don't have one, check out [Set up the IMA SDK](/interactive-media-ads/docs/sdks/html5/client-side).\n- A VAST ad tag URL that points to a VPAID 2 JavaScript creative.\n\nHelpful primers\n---------------\n\n- If you're not familiar with VPAID 2, you can read more at [IAB's VPAID page](//iabtechlab.com/standards/video-player-ad-interface-definition-vpaid/).\n\nEnabling VPAID 2 support\n------------------------\n\nTo enable VPAID 2 JavaScript support, call the following method before initializing your [AdDisplayContainer](/interactive-media-ads/docs/sdks/html5/client-side/reference/class/google.ima.AdDisplayContainer): \n\n```gdscript\n google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED);\n ...\n var adDisplayContainer = new google.ima.AdDisplayContainer(adContainerElement);\n var adsLoader = new google.ima.AdsLoader(adDisplayContainer);\n ...\n```\n\nThe available VPAID modes are as follows:\n\n- `ENABLED` - Allows VPAID ads with the default settings.\n- `INSECURE` - Allows VPAID ads in insecure mode. For more information, see [IFrame security](#iframe-security) and [Video player proxy element](#proxyelement).\n- `DISABLED` - VPAID ads do not play. If a requested ad returns a VPAID creative, an error is thrown.\n\nFor more information on VPAID modes, see the API documentation for [ImaSdkSettings.VpaidMode](/interactive-media-ads/docs/sdks/html5/client-side/reference/namespace/google.ima.ImaSdkSettings#google.ima.ImaSdkSettings.VpaidMode).\n\nVPAID 2 support caveats\n-----------------------\n\n### IFrame security\n\nBy default, the IMA SDK uses a secure iframe instead of a friendly iframe (same domain) or an in-page script to render VPAID 2 JavaScript creatives. This means that if a creative expects to access the DOM of the parent page, it could potentially cause an error. To render your ad in a friendly iframe instead, you can use `ImaSdkSettings.setVpaidMode(...)` like so: \n\n```text\nadsLoader.getSettings().setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.INSECURE);\n```\n\n\u003cbr /\u003e\n\n### Video player proxy element\n\nFor security and proper mobile functionality, in `ENABLED` mode the IMA HTML5 SDK doesn't provide the actual video element to the ad; instead it provides a proxy element that mimics much of the functionality of the normal video element. For ad creatives that call only supported API methods, there should be no behavior changes in the rendering of the creatives. With `VpaidMode.INSECURE` mode, the SDK provides the video player element instead of the proxy.\n\nHere are the methods, listeners and attributes available on the video proxy element:\n\n#### Methods\n\n- `addEventListener`\n- `canPlayType`\n- `load`\n- `play`\n- `pause`\n- `setattribute`\n\n#### Event types for addEventListener\n\n- `abort`\n- `canplay`\n- `canplaythrough`\n- `click`\n- `durationchange`\n- `emptied`\n- `ended`\n- `error`\n- `loadeddata`\n- `loadedmetadata`\n- `loadstart`\n- `pause`\n- `play`\n- `playing`\n- `progress`\n- `ratechange`\n- `suspend`\n- `seeked`\n- `seeking`\n- `timeupdate`\n- `waiting`\n\n#### Attributes\n\n- `currentTime`\n- `duration`\n- `ended`\n- `paused`\n- `playbackRate`\n- `src`\n- `type`\n\nFAQ\n---\n\nAre VPAID 2 JavaScript creatives supported in the iOS or Android SDKs?\n: The IMA HTML5 SDK is the only IMA SDK platform that currently supports VPAID 2 JavaScript creatives.\n\nDoes this enable VPAID creatives in the IMA HTML5 SDK?\n: Yes, the IMA HTML5 SDK supports VPAID 2 JavaScript creatives."]]