Compatibility

This page provides general information on IMA DAI support and compatibility for browsers, video formats, and platforms.

Supported video formats and browsers

HTML5 is still a new and evolving standard. As a result, support for various features differs among browsers, and there is no single default video format supported by all major browsers. The three main video formats used in the majority of browsers are H.264, HLS, and Dash.

VAST event compatibility

This section lists the VAST events that are automatically reported to the server based on the information returned in the VAST response.

Fully supported

complete, creativeView, firstQuartile, impression, midpoint, pause, resume, rewind (fired when there is any significant seeking in the backward direction), start, thirdQuartile.

Partially supported

  • click

    The Click event is only sent for video ads. Clicks cannot be captured on the native fullscreen players on Android, iOS, or desktop, but clicks can still be captured by an in-page click tracking element when the video is closed. However, if the video element uses native controls on the iPad, clicks cannot be captured.

  • fullscreen

    IMA supports a simulated full screen mode, in which the video takes up the whole browser window. IMA considers a video to be in full screen mode when its offsetWidth and offsetHeight are at least the size of the document body. This mode is supported on all browsers.

    On the iPhone and pre-3.0 Android platforms, video always plays in full screen mode.

  • mute, unmute

    iOS and Android only have native control of the volume. As such, IMA cannot determine the volume or mute state, nor is the SDK notified of changes. Below is a list of the browser versions which do and do not support mute, unmute:

    • Supported: Firefox 3.5+, Chrome 8+, Safari 4+
    • Not supported: iOS, Android

Refer to the IAB guidelines for further details on VAST ad serving.

Ad events when rewatching ad breaks

IMA does not fire ad events when rewatching ads for the following reasons:

  • Event URLs should only be triggered once, otherwise it could be read as spammy behavior.
  • This lets users seek in and around the ad breaks that they've already viewed, creating a better seeking experience.

These are the only events fired when rewatching ad breaks:

  • AD_PERIOD_STARTED
  • AD_PERIOD_ENDED

Supported video player platforms

The Google IMA SDKs are supported on the following platforms:

Platform Version
HTML5 Desktop: Chrome, Firefox, Safari, Edge, Opera
Mobile: Chrome/Android Browser (Android for phones and tablets), Safari and Chrome (iOS)
iOS iOS 10.0+
Android Android 4.4+
Google Cast All Cast devices
tvOS tvOS 14+
Roku All devices that are still receiving software updates from Roku

Video stream format support

IMA supports both HLS and DASH across its SDKs. See this table for support on specific SDK platforms. For proper stream playback, your video player needs to support the stream type being used.

IMA SDK platform HLS DASH
HTML5 Checkmark Checkmark
iOS Checkmark Red-X
Android Checkmark Checkmark
Google Cast Checkmark Checkmark
tvOS Checkmark Red-X
Roku Checkmark Checkmark

Video features and SDK versions

To learn more about the following features, read video advertising overview.

IAB Video Suite Support
VAST 4 Warning 1
VAST 3 Warning 2
VAST 2 Checkmark
VPAID 2 Red-X
VMAP 1.0.1 Warning 3
Ad Manager Video features Support
Linear ads Checkmark
Non-linear ads (Overlays) Red-X
Companions Warning 4
VAST 3 alternate companion ad resources Red-X
Active View viewability Checkmark
VAST Redirects Checkmark
Companion backfill with display request Red-X
Google Publisher Tag (GPT) compatibility Red-X
Content awareness Red-X
Ad rules Checkmark
Podding Checkmark
Bumpers Checkmark
Reporting on multi-event tracking (MET) Checkmark
Skippable (reservation / non-TrueView) Warning 5
AdSense for Video features 7 Support
TrueView InStream Warning 6
InStream Select Checkmark
Standard InStream Checkmark
Full-slot Red-X
Companions Warning 4
Companion backfill Red-X
Overlays Red-X
Ad Manager Ad Exchange features Support
TrueView InStream Warning 6
InStream Select Checkmark
Standard InStream Checkmark
Full-slot Red-X
Companions Warning 4
Companion backfill Red-X
Overlays Red-X
Active View viewability Checkmark
Why This Ad? Warning 8

1 Of the VAST 4 features supported by Google Ad Manager, IMA support the following features:

2 The following VAST 3.0 features are not yet supported:

  • Companion adSlotId
  • Companion delivery options
  • Icons

3 The following VMAP features are not yet supported:

  • VMAP-specific tracking events
  • VMAP-specific error codes
  • Overlay ads
  • Time offsets other than hh:mm:ss or "start" and "end"
  • Display breakType attribute
  • repeatAfter attribute

4 Only image companions are supported. Image companions require custom implementation for populating ads. Companion ads are not supported on tvOS.

5 Traditional skippable ads are only supported in the IMA DAI SDKs for HTML5, iOS, tvOS, Roku, and Android (including Android TV). With the Cast SDK, you must declare skipping capability with StreamRequest.senderCanSkip, to supports tradditional skippable ads.

6 TrueView skippable ads are only supported in the IMA DAI SDKs for HTML5, iOS, and Android (including Android TV).

7 AdSense features are not supported in the Cast SDK.

8 Why This Ad? requires that the adUiElement parameter be passed when creating the StreamManager. Why This Ad? is not supported in the Cast SDK.

Caveats for JavaScript frameworks

There are certain considerations when using a JavaScript framework, such as React or AngularJS, with the IMA HTML5 SDK. These frameworks often move elements of the DOM, which can break the IMA SDK since the SDK expects the DOM to be static when it's initiated. The IMA SDK supports JavaScript frameworks as long as the SDK is initiated after the framework has finished moving DOM elements. Specifically, the HTML5 element passed as the adUiElement argument when constructing the StreamManager shouldn't be moved once it's instantiated.

Apple AirPlay support

The IMA SDK doesn't support Apple AirPlay. Either disable AirPlay or disable ad requests when AirPlay is detected.