The 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 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.
Prerequisites
- HTML5 video player with the IMA HTML5 SDK integrated. If you don't have one, check out our Get Started guide.
- A VAST ad tag URL that points to a VPAID 2 JavaScript creative.
Helpful primers
- If you're not familiar with VPAID 2, you can read more at IAB's VPAID page.
Enabling VPAID 2 support
To enable VPAID 2 JavaScript support, call the following method before initializing your AdDisplayContainer:
google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED); ... var adDisplayContainer = new google.ima.AdDisplayContainer(adContainerElement); var adsLoader = new google.ima.AdsLoader(adDisplayContainer); ...
The available VPAID modes are as follows:
ENABLED
- Allows VPAID ads with the default settings.INSECURE
- Allows VPAID ads in insecure mode. For more information, see IFrame security and Video player proxy element.DISABLED
- VPAID ads do not play. If a requested ad returns a VPAID creative, an error is thrown.
VPAID 2 support caveats
IFrame security
By 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:
adsLoader.getSettings().setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.INSECURE);
Video player proxy element
For 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.
Here are the methods, listeners and attributes available on the video proxy element:
Methods
addEventListener
canPlayType
load
play
pause
setattribute
Event types for addEventListener
abort
canplay
canplaythrough
click
durationchange
emptied
ended
error
loadeddata
loadedmetadata
loadstart
pause
play
playing
progress
ratechange
suspend
seeked
seeking
timeupdate
waiting
Attributes
currentTime
duration
ended
paused
playbackRate
src
type
FAQ
- Are VPAID 2 JavaScript creatives supported in the iOS or Android SDKs?
- The IMA HTML5 SDK is the only IMA SDK platform that currently supports VPAID 2 JavaScript creatives.
- Does this enable VPAID creatives in the IMA HTML5 SDK?
- Yes, the IMA HTML5 SDK supports VPAID 2 JavaScript creatives.