Stay organized with collections
Save and categorize content based on your preferences.
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.
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.
8Why 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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[],[],null,["This page provides general information on IMA DAI support and compatibility\nfor browsers, video formats, and platforms.\n\nSupported video formats and browsers\n\nHTML5 is still a new and evolving standard. As a result, support for various\nfeatures differs among browsers, and there is no single default video format\nsupported by all major browsers. The three main video formats used in the\nmajority of browsers are H.264, HLS, and Dash.\n\nVAST event compatibility\n\nThis section lists the VAST events that are automatically reported to the\nserver based on the information returned in the VAST response.\n\nFully supported\n\n`complete`, `creativeView`,\n`firstQuartile`, `impression`, `midpoint`,\n`pause`, `resume`, `rewind` (fired when there\nis any significant seeking in the backward direction), `start`,\n`thirdQuartile`.\n\nPartially supported\n\n- **`click`**\n\n\n The `Click` event is only sent for video ads.\n Clicks cannot be captured on the native fullscreen players on Android, iOS,\n or desktop, but clicks can still be captured by an in-page click tracking\n element when the video is closed. However, if the video element uses native\n controls on the iPad, clicks cannot be captured.\n- **`fullscreen`** \n\n\n IMA supports a **simulated full screen** mode,\n in which the video takes up the whole browser window.\n IMA considers a video to be in full screen mode\n when its `offsetWidth` and `offsetHeight`\n are at least the size of the document body.\n This mode is supported on all browsers.\n\n\n On the iPhone and pre-3.0 Android platforms,\n video always plays in full screen mode.\n- **`mute`** , **`unmute`**\n\n\n iOS and Android only have native control of the volume. As such, IMA cannot\n determine the volume or mute state, nor is the SDK notified of changes. Below is\n a list of the browser versions which do and do not support\n `mute`, `unmute`:\n - **Supported:** Firefox 3.5+, Chrome 8+, Safari 4+\n - **Not supported:** iOS, Android\n\n \u003cbr /\u003e\n\nRefer to the\n[IAB guidelines](//www.iab.com/wp-content/uploads/2015/06/VASTv3_0.pdf) for\nfurther details on VAST ad serving.\n\nAd events when rewatching ad breaks\n\nIMA does not fire ad events when rewatching ads for the following reasons:\n\n- Event URLs should only be triggered once, otherwise it could be read as spammy behavior.\n- This lets users seek in and around the ad breaks that they've already viewed, creating a better seeking experience.\n\nThese are the only events fired when rewatching ad breaks:\n\n- `AD_PERIOD_STARTED`\n- `AD_PERIOD_ENDED`\n\nSupported video player platforms\n\nThe Google IMA SDKs are supported on the following platforms:\n\n| Platform | Version |\n|-----------------|-------------------------------------------------------------------------------------------------------------------------------------------------|\n| **HTML5** | **Desktop** : Chrome, Firefox, Safari, Edge, Opera **Mobile**: Chrome/Android Browser (Android for phones and tablets), Safari and Chrome (iOS) |\n| **iOS** | iOS 10.0+ |\n| **Android** | Android 4.4+ |\n| **Google Cast** | All Cast devices |\n| **tvOS** | tvOS 14+ |\n| **Roku** | All devices that are still receiving software updates from Roku |\n\nVideo stream format support\n\nIMA supports both HLS and DASH across its SDKs. See this table for support\non specific SDK platforms. For proper stream playback, your video player\nneeds to support the stream type being used.\n\n| IMA SDK platform | HLS | DASH |\n|------------------|-----|------|\n| **HTML5** | | |\n| **iOS** | | |\n| **Android** | | |\n| **Google Cast** | | |\n| **tvOS** | | |\n| **Roku** | | |\n\nVideo features and SDK versions\n\nTo learn more about the following features, read\n[video advertising overview](//support.google.com/admanager/answer/1711021).\n\n| IAB Video Suite | Support |\n|------------------------------------------|---------------------------|\n| VAST 4 | [1](#vast4-footnote) |\n| VAST 3 | [2](#vast3-footnote) |\n| VAST 2 | |\n| VPAID 2 | |\n| VMAP 1.0.1 | [3](#vmap-footnote) |\n| Linear ads | |\n| Non-linear ads (Overlays) | |\n| Companions | [4](#companions-footnote) |\n| VAST 3 alternate companion ad resources | |\n| Active View viewability | |\n| VAST Redirects | |\n| Companion backfill with display request | |\n| Google Publisher Tag (GPT) compatibility | |\n| Content awareness | |\n| Ad rules | |\n| Podding | |\n| Bumpers | |\n| Reporting on multi-event tracking (MET) | |\n| Skippable (reservation / non-TrueView) | [5](#skippable-footnote) |\n| TrueView InStream | [6](#trueview-footnote) |\n| InStream Select | |\n| Standard InStream | |\n| Full-slot | |\n| Companions | [4](#companions-footnote) |\n| Companion backfill | |\n| Overlays | |\n| TrueView InStream | [6](#trueview-footnote) |\n| InStream Select | |\n| Standard InStream | |\n| Full-slot | |\n| Companions | [4](#companions-footnote) |\n| Companion backfill | |\n| Overlays | |\n| Active View viewability | |\n| Why This Ad? | [8](#wta-footnote) |\n\n^1^ Of the\n[VAST 4 features supported by Google Ad\nManager](//support.google.com/admanager/answer/7358411), IMA support the following features:\n\n- VAST 4.2\n - Support for [Secure\n Interactive Media Interface Definition (SIMID)](//support.google.com/admanager/answer/1711021#simid)\n - Allowance of multiple `UniversalAdID` nodes\n- VAST 4.0\n - AdID\n - Mezzanine file\n - New VAST error codes\n - New VAST macros\n - `AdVerifications` support\n\n\u003cbr /\u003e\n\n^2^ The following VAST 3.0 features are not\nyet supported:\n\n- Companion `adSlotId`\n- Companion delivery options\n- Icons\n\n^3^ The following VMAP features are not yet supported:\n\n- VMAP-specific tracking events\n- VMAP-specific error codes\n- Overlay ads\n- Time offsets other than hh:mm:ss or \"start\" and \"end\"\n- Display `breakType` attribute\n- `repeatAfter` attribute\n\n^4^ Only image companions are supported. Image companions\nrequire custom implementation for populating ads. Companion ads are not supported on tvOS.\n\n^5^ Traditional skippable ads are only supported in\nthe IMA DAI SDKs for HTML5, iOS, tvOS, Roku, and Android (including Android TV).\nWith the Cast SDK, you must declare skipping capability with\n[`StreamRequest.senderCanSkip`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/js/StreamRequest#senderCanSkip),\nto supports tradditional skippable ads.\n\n^6^ TrueView skippable ads are only supported in\nthe IMA DAI SDKs for HTML5, iOS, and Android (including Android TV).\n\n^7^ AdSense features are not supported in the Cast SDK.\n\n^8^ *Why This Ad?* requires that the\n`adUiElement` parameter be passed when creating the `StreamManager`.\n*Why This Ad?* is not supported in the Cast SDK.\n| **Important:** Using the HTML5 IMA DAI SDK with skippable ads or *Why This Ad?* requires that the `adUiElement` parameter be passed when creating the `StreamManager`.\n\nCaveats for JavaScript frameworks\n\nThere are certain considerations when using a JavaScript framework, such as\nReact or AngularJS, with the IMA HTML5 SDK. These frameworks often move elements\nof the DOM, which can break the IMA SDK since the SDK expects the DOM to be\nstatic when it's initiated. The IMA SDK supports JavaScript frameworks as long\nas the SDK is initiated after the framework has finished moving DOM elements.\nSpecifically, the HTML5 element passed as the `adUiElement` argument when\nconstructing the\n[`StreamManager`](/ad-manager/dynamic-ad-insertion/sdk/html5/reference/js/StreamManager#StreamManager)\nshouldn't be moved once it's instantiated.\n\nApple AirPlay support\n\nThe IMA SDK doesn't support Apple AirPlay. Either disable AirPlay or disable ad\nrequests when AirPlay is detected."]]