> [!NOTE]
> **Note:** There could be numeric gaps in the sequence numbers of releases shown on this page---for instance, v.3.582.5 prior to v.3.583.1---due to periodic skipped release numbers.

<br />

| Version | Release Date | Notes |
|---|---|---|
| 3.40.0 | 2026-08-20 | - Requires (`minSdkVersion`) 24. - Fixes an issue where IMA SDK silently fails to invoke the `onLoadStream()` or `loadUrl()` methods following a successful DAI stream request. - Adds the following ad error codes: - `COMPANION_DIMENSION_MISMATCH`: occurs when a companion ad creative's dimensions don't match the creative's display area. - `STREAM_INITIALIZATION_FAILED`: occurs when there is an error with stream initialization during server-side ad insertion. - `ASSET_FALLBACK_FAILED`: occurs when an issue exists with asset fallback. - `UNSUPPORTED_URL`: occurs when the ad URL is invalid or the current browser doesn't support. - `STREAM_INITIALIZATION_TIMEOUT`: occurs when the stream initialization request times out. - `STREAM_AUTHORIZATION_FAILED`: occurs when stream authorization fails. - Resolves the following warning: - `Unable to resolve Lcom/google/ads/interactivemedia/v3/impl/data/AutoValue_WebViewInitData_JavaScriptNativeBridgeInitData; annotation class 8784 `. - Enhances nullability annotations for APIs to improve type safety. |
| 3.39.0 | 2026-01-22 | - **A known issue occurs in this version where IMA SDK silently fails to invoke the `onLoadStream()` or `loadUrl()` methods following a successful DAI stream request. To resolve this issue, use version 3.40.0 and higher.** - Adds the [`getAudioMimeType()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/AdMediaInfo.md.txt#getAudioMimeType()) and [`getVideoMimeType()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/AdMediaInfo.md.txt#getVideoMimeType()) methods to the `AdMediaInfo` class. - Adds the `@Nullable` annotation to SDK interface methods. - Adds a [`ImaSdkFactory.release()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.md.txt#release()) method to clean up IMA assets if no `AdsLoader` interface is instantiated. - Removes the following deprecated `AdsRequest` interface methods: - `setExtraParameter()` - `getExtraParameter()` - `getExtraParameters()` - Removes the deprecated methods `AdDisplayContainer.setPlayer()` and `StreamDisplayContainer.setVideoStreamPlayer()`. - Removes the following deprecated `BaseDisplayContainer` interface methods: - `setAdContainer()` - `registerVideoControlsOverlay()` - `unregisterAllVideoControlsOverlays()` - Removes the following deprecated `CuePoint` interface methods: - `getStartTime()` - `getEndTime()` - Fixes a memory leak issue when destroying a `BaseManager` instance related to an `Attempted to send bridge message after cleanup` message in logcat. |
| 3.38.0 | 2025-10-07 | - **A known issue occurs in this version where IMA SDK silently fails to invoke the `onLoadStream()` or `loadUrl()` methods following a successful DAI stream request. To resolve this issue, use version 3.40.0 and higher.** - Requires (`minSdkVersion`) 23. - Adds a [`AdSlot`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/api/reference/com/google/ads/interactivemedia/v3/api/AdSlot.md.txt) interface and updates the `CompanionAdSlot` interface to to extend the `AdSlot` interface. - Fixes an ANR issue that happens when fetching the device volume from the main thread. - The IMA SDK version 3.38.0 deprecates on 2027-01-22. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.37.0 | 2025-07-15 | - Adds app desugaring as a requirement for apps integrating the IMA SDK. Apps without desugaring enabled won't build with the current or future IMA versions. To enable app desugaring, see [Add the IMA SDK to your project](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/get-started.md.txt#2.-add-the-ima-sdk-to-your-project). - Updates the minimum version requirements for Android `compileSdk` value to 35 and Android Gradle plugin value to 8.6.0. - Adds the [`AdPeriodInfo`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/api/reference/com/google/ads/interactivemedia/v3/api/AdPeriodInfo.md.txt) interface, accessible using the [`AdEvent#getAdPeriodInfo()`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/api/reference/com/google/ads/interactivemedia/v3/api/AdEvent.md.txt#getAdPeriodInfo()) method on the `AD_PERIOD_STARTED` event. - Adds the [`PlaybackMeasurementCollector`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/api/reference/com/google/ads/interactivemedia/v3/api/player/PlaybackMeasurementCollector.md.txt) interface to evaluate SDK performance and scheduling ads in ExoPlayer apps. - Updates IMA to throw an exception if you make an ad or stream request with invalid parameters. - Adds the `AdError.WEB_VIEW_ERROR` error type which occurs if the WebView renderer crashes. This new error type fixes an issue where `WebView` renderer crashes cause the app to crash. - Optimizes the `ImaSdkFactory.initialize()` function by moving parts of the WebView initialization to a background thread. This change reduces the likelihood of ANR errors during `ImaSdkFactory.initialize()` call. - Fixes a `NullPointerException` error caused by initiating a new ads request while also calling `AdsLoader.release()`. - Fixes a `WebViewCompat.addWebMessageListener` crash that occurs on legacy CTV devices. - Fixes an issue where the IMA SDK did not mark `getPreviousCuePointForStreamTimeMs()` as `nullable`. - Fixes an issue that caused the SDK to crash when no WebView is installed. Note: WebView is a crucial component of the SDK. If no WebView is installed, the SDK can't function properly. - Updates the webkit dependencies to the latest stable versions. - The IMA Android SDK plans to update its minimum required API level (`minSdkVersion`) to version 23, to match the Android Jetpack (AndroidX) libraries. For more info, see the [Jetpack version requirements](https://developer.android.com/jetpack/androidx/versions). - Removes the following deprecated methods: - `Ad.getUniversalAdIdValue()` - `Ad.getUniversalAdIdRegistry()` - `AdsManager.requestNextAdBreak()` - `BaseManager.isCustomPlaybackUsed()` - `ImaSdkFactory.createAdDisplayContainer()` - `ImaSdkFactory.createAudioAdDisplayContainer(Context)` - `ImaSdkFactory.createStreamDisplayContainer()` - `StreamManager.getStreamTimeForContentTime(double contentTime)` - `StreamManager.getContentTimeForStreamTime(double streamTime)` - `StreamManager.getPreviousCuePointForStreamTime(double streamTime)` - `VideoProgressUpdate.getCurrentTime()` - `VideoProgressUpdate.getDuration()` - The IMA SDK version 3.37.0 deprecates on 2026-10-07. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.36.0 | 2024-11-07 | - **A known issue is introduced in this version for [instant apps](https://developer.android.com/topic/google-play-instant). If you integrate IMA into instant apps, we recommend not updating your app to IMA version 3.36.0. The next SDK release will include a fix for this issue.** - Adds new stream request methods that include the `NetworkCode` parameter. The new methods are `ImaSdkFactory.createLiveStreamRequest()` and `ImaSdkFactory.createVodStreamRequest()`. Deprecates the similar APIs that don't include the `networkCode` parameter. - Wraps companion creatives in a frame layout matching the slot size declared with `CompanionAdSlot.setSize()`. - The IMA SDK version 3.36.0 deprecates on 2026-07-15. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.35.1 | 2024-09-24 | - Fixes an issue where [Open Measurement](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/omsdk.md.txt) fails when using the `ImaSdkFactory.initialize()` API. - Increases the `minSdkVersion` that IMA supports to 21. - Adds `ImaSdkFactory.initialize()` to fetch and initialize IMA assets prior to the first ad request. Calling `initialize()` allocates memory required for future ad playback and reduces latency playing the first ad. For more information, see [Improve IMA load time](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/load-time.md.txt). - Fixes an invalid ad click-through URL issue. - Fixes a crash introduced in IMA v3.34.0 affecting apps that are not using java8 desugaring on Android API versions 25 and lower. - Adds optimizations to IMA start-up time on legacy CTV devices. - Improves stability for opening links on devices without a browser installed. - The IMA SDK version 3.35.1 deprecates on 2025-11-07. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.35.0 Deprecated | 2024-08-28 | - **A known issue exists with this version where OMID measurement fails when using the `ImaSdkFactory.initialize()` API. Use IMA SDK Android v3.35.1 instead.** - *Because version 3.35.0 is deprecated, its release notes have been moved to the version 3.35.1 section.* |
| 3.34.0 | 2024-06-13 | - **A known issue exists with this version that affects apps which do not enable [Java 8+ API desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring). This issue is limited to devices on Android API version 25 or lower, and may cause app crashes.** - Adds [`getVideoStitcherSessionOptions()`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/api/reference/com/google/ads/interactivemedia/v3/api/StreamRequest.md.txt#public-abstract-mapstring,-object-getvideostitchersessionoptions) and [`setVideoStitcherSessionOptions()`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/api/reference/com/google/ads/interactivemedia/v3/api/StreamRequest.md.txt#public-abstract-void-setvideostitchersessionoptions-mapstring,-object-videostitchersessionoptions) to `StreamRequest` to manage video stitching sessions in the [`ImaSdkFactory.createVideoStitcherLiveStreamRequest()`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.md.txt#public-streamrequest-createvideostitcherlivestreamrequest-string-networkcode,-string-customassetkey,-string-livestreameventid,-string-region,-string-projectnumber,-string-oauthtoken) or [`ImaSdkFactory.createVideoStitcherVodStreamRequest()`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.md.txt#public-streamrequest-createvideostitchervodstreamrequest-string-networkcode,-string-region,-string-projectnumber,-string-oauthtoken,-string-vodconfigid) workflow. - Fixes a rare crash caused by invalid audio volume values. - Removes setting `taskAffinity` to null in the android manifest. This change fixes issues where the app's behavior would change unexpectedly. - The IMA SDK version 3.34.0 deprecates on 2025-09-24. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.33.0 | 2024-03-28 | - Adds [`ImaSdkFactory.createVideoStitcherVodStreamRequest(String networkCode, String region, String projectNumber, String oAuthToken, String vodConfigId)`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.md.txt#public-streamrequest-createvideostitchervodstreamrequest-string-networkcode,-string-region,-string-projectnumber,-string-oauthtoken,-string-vodconfigid). This new API includes the `vodConfigId` parameter which replaces the use of `contentSourceUrl` and `adTagUrl` in the previous API. - Adds [`StreamRequest.getVodConfigId()`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/api/reference/com/google/ads/interactivemedia/v3/api/StreamRequest.md.txt#public-abstract-string-getvodconfigid). - Fixes the unexpected crash on Android API levels 25 and lower, introduced in v3.32.0. - The IMA SDK version 3.33.0 deprecates on 2025-06-13. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.32.0 Deprecated | 2024-01-30 | - **This version has an issue with device running Android API levels 25 and lower. Use IMA SDK Android v3.33.0 instead.** - Adds third-party stitcher VOD stream support for pod serving. See the [Android pod serving guide](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android?service=pod) for more info. This change includes adding the following APIs: - `ImaSdkFactory.createPodVodStreamRequest()` - `StreamManager.loadThirdPartyStream()` - Increases the `minSdkVersion` that IMA supports to 19. - Fixes the issue where ad clickthroughs using the Learn more button wouldn't open a new page in Android API version 30 and higher. The issue still exists on IMA SDK versions 3.31.0 through 3.29.0 where a workaround is needed for ad clickthroughs to work. - Fixes a bug where using `AdsLoader.addAdsLoadedListener()` could cause an `ArrayIndexOutOfBoundsException` exception. - Adds the ad error `VAST_NO_ADS_AFTER_WRAPPER`. |
| 3.31.0 | 2023-08-31 | - There is an issue with IMA SDK versions 3.31.0 through 3.29.0 with Android API version 30 and higher where ad clickthroughs using the **Learn more** button don't open a new page. As a workaround for the affected versions, you should add intent declarations to open web links in your app manifest as follows: ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.project_name"> ... </application> <queries> <intent> <action android:name="android.intent.action.VIEW" /> <data android:scheme="https" /> </intent> <intent> <action android:name="android.intent.action.VIEW" /> <data android:scheme="http" /> </intent> </queries> </manifest> ``` - Updates IMA's dependency of OM SDK to version 1.4.8, which includes new connected TV signals. - Deprecates the following `AdsRequest` APIs: - `getExtraParameter()` - `getExtraParameters()` - `setExtraParameter()` - The IMA SDK version 3.31.0 deprecates on 2025-03-28. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.30.3 | 2023-08-03 | - Updates internal library dependencies to improve startup latency. - The IMA SDK version 3.30.3 deprecates on 2024-08-31. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.30.2 | 2023-07-28 | - Fixes the unexpected `NullPointerException` errors introduced in v3.30.1. - Fixes an issue with proguarding which caused some events to not be emitted from the SDK. This bugfix affects the ExoPlayer extension for the IMA DAI SDK. - Adds support for Gradle v8+. Past versions of the Android IMA SDK need to set `android.enableR8.fullMode=false` in the **gradle.properties** file. See the [R8 full mode article](https://r8.googlesource.com/r8/+/refs/heads/master/compatibility-faq.md#r8-full-mode) for more info. - The IMA SDK version 3.30.2 deprecates on 2024-08-03. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.30.1 Deprecated | 2023-04-18 | - **This version has an issue with unexpected `NullPointerException` errors. Use the older IMA SDK Android v3.29.0 until a newer working version is released.** - Fixes an issue where apps using v3.30.0 crash on non-Android TV devices. |
| 3.30.0 Deprecated | 2023-03-29 | - **This version has an issue causing crashes for apps that are not running on the Android TV platform. Use IMA SDK Android v3.29.0 instead.** - Adds the [`ImaSdkFactory.createVideoStitcherVodStreamRequest()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory#createVideoStitcherVodStreamRequest(java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String)) API. - Adds compatibility for Google TVs Hybrid inventory. - Removes support for the deprecated `ImaSdkFactory.createSdkOwnedPlayer()` API. - Adds the [ADS_PLAYER_NOT_PROVIDED](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdError.AdErrorCode.md.txt#public-static-final-aderror.aderrorcode-ads_player_not_provided) error code. - Creates the `BaseRequest` class that both `AdsRequest` and `StreamRequest` now implement. - Adds the [`SecureSignals`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/signals/SecureSignals.md.txt) class. - Adds the [`BaseRequest.setSecureSignals()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/BaseRequest.md.txt#setSecureSignals(com.google.ads.interactivemedia.v3.api.signals.SecureSignals)) method. - The IMA SDK version 3.30.0 deprecates on 2024-04-18. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.29.0 | 2022-10-14 | - Renames the `EspVersion` class to the [`VersionInfo`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/VersionInfo) class. - Renames the Encrypted Signals for Publishers (ESP) APIs to the [Secure Signals](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/signals/package-summary) APIs. - Adds the feature flags APIs. You can use the feature flag APIs to enable or disable specific features in IMA. Use [`ImaSdkSettings.getFeatureFlags()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkSettings#getFeatureFlags()) and [`ImaSdkSettings.setFeatureFlags()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkSettings#setFeatureFlags()) to get and set feature flags. - Fixes an issue where some IMA events weren't sent. - Adds androidx.webkit:webkit as an IMA SDK dependency - The IMA SDK version 3.29.0 deprecates on 2024-03-29. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.28.2 | 2022-09-14 | - Updates SDK dependencies to use AndroidX. - The IMA SDK version 3.28.2 deprecates on 2023-10-14. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.28.1 Deprecated | 2022-08-03 | - **This version has an issues with crashes on Android v27 and lower. Use IMA SDK Android v3.28.2 instead.** - Adds the [`ImaSdkFactory.createVideoStitcherLiveStreamRequest()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory#createVideoStitcherLiveStreamRequest(java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String)) API. - The IMA SDK version 3.28.1 deprecates on 2023-09-14. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.27.1 | 2022-05-27 | - Service release, no new features. - The IMA SDK version 3.27.1 deprecates on 2023-08-03. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.27.0 | 2022-03-01 | - Adds support for fluid sized companion slots by setting companion width and height to the IMA constant [`FLUID_SIZE`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/CompanionAdSlot.md.txt#public-static-final-int-fluid_size). - The IMA SDK version 3.27.0 deprecates on 2023-05-27. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.26.0 | 2022-01-12 | - Adds Encrypted Signals for Publishers (ESP) APIs (renamed to [Secure Signals](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/signals/package-summary) in IMA SDK v3.29.0). This lets publishers enable Network Bidders and IDPs. - The IMA SDK version 3.26.0 deprecates on 2023-03-01. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.25.1 | 2021-11-08 | - Adds [`AdsRenderingSettings.setEnableCustomTabs()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.md.txt#public-abstract-boolean-getenablecustomtabs) and [`AdsRenderingSettings.getEnableCustomTabs()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.md.txt#public-abstract-void-setenablecustomtabs-boolean-enablecustomtabs) for in-app click-through of ads using [custom tabs](https://developer.chrome.com/docs/android/custom-tabs/). - Starting from version 3.25.1, IMA SDK includes the `com.google.android.gms.permission.AD_ID` permission in the SDK's manifest that is automatically merged into the app manifest by Android build tools. To learn more about the `AD_ID` permission declaration, including how to disable it, refer to this [Play Console Help article](https://support.google.com/googleplay/android-developer/answer/6048248). - Adds support for the [app set ID](https://developer.android.com/training/articles/app-set-id) for use cases such as reporting and fraud prevention. - Adds performance improvements when using multiple `AdsLoader` instances by supporting thread caching and reuse. - The IMA SDK version 3.25.1 deprecates on 2023-01-12. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.24.0 | 2021-06-03 | - Adds fixed-point precision APIs for the `CuePoint` and `StreamManager` classes used in DAI. This adds the following APIs: - [`CuePoint.getEndTimeMs()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/CuePoint#getEndTimeMs()) - [`CuePoint.getStartTimeMs()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/CuePoint#getStartTimeMs()) - [`StreamManager.getContentTimeMsForStreamTimeMs()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/StreamManager#getContentTimeMsForStreamTimeMs(long)) - [`StreamManager.getPreviousCuePointForStreamTimeMs()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/StreamManager#getPreviousCuePointForStreamTimeMs(long)) - [`StreamManager.getStreamTimeMsForContentTimeMs()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/StreamManager#getStreamTimeMsForContentTimeMs(long)) And deprecates the following APIs: <!-- --> - `CuePoint.getEndTime()` - `CuePoint.getStartTime()` - `StreamManager.getContentTimeForStreamTime()` - `StreamManager.getPreviousCuePointForStreamTime()` - `StreamManager.getStreamTimeForContentTime()` - Prevents a `NullPointerException` error related to internal calls to `StreamRequest.getContentUrl()`. - The IMA SDK version 3.24.0 deprecates on 2022-11-08. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.23.0 | 2021-04-07 | - Adds the [`ImaSdkSettings.setSessionId()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.md.txt#public-abstract-void-setsessionid-string-sessionid) and the [`ImaSdkSettings.getSessionId()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.md.txt#public-abstract-string-getsessionid) methods to get and set the **Session ID**. This is a temporary random ID used exclusively for frequency capping. - Fixes a `NullPointerException` error related to companion ads. - Disables javascript within companion ads lower then API level 21 to fix an issue with security vulnerabilities. - The IMA SDK version 3.23.0 deprecates on 2022-06-03. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.22.3 | 2021-03-16 | - Fixes a `NullPointerException` error related to releasing the `AdsLoader` while an ad is being loaded. - Adds the `1206` error for an `UNEXPECTED_ADS_LOADED_EVENT` in cases when an ads loaded event is sent unexpected. - The IMA SDK version 3.22.3 deprecates on 2022-04-07. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.22.2 | 2021-02-26 | - The IMA SDK now depends on the following libraries: - com.google.android.gms:play-services-base - com.google.android.gms:play-services-basement - androidx.preference:preference - Fixes the error message when `AdsLoader` would receive an error without a valid session ID. - The IMA SDK version 3.22.2 deprecates on 2022-03-16. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.22.0 | 2021-01-11 | - Adds pod serving for DAI streams. In the pod serving workflow, Ads Manager is only responsible for serving ads. Publishers are responsible for content and creating the manifest that will then point to Ads Manager. Use [`ImaSdkFactory.createPodStreamRequest()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.md.txt#public-streamrequest-createpodstreamrequest-string-networkcode,-string-assetkey,-string-apikey) to create a stream request for pod serving. If using this, you will be responsible for loading the stream on `streamInit()`. - Fixes a memory leak caused by the app lifecycle monitor not being properly cleaned up. - The IMA SDK version 3.22.0 deprecates on 2022-02-26. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.21.4 | 2020-12-09 | - Removes a harmless warning message related to calling `adsLoader.release()` after the webview has been destroyed. - The IMA SDK version 3.21.4 deprecates on 2022-01-08. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.21.2 | 2020-11-20 | - Fixes unexpected thread-safe issues caused by sending message updates from an empty queue. - Updates the documentation for [`AdsLoader.release()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsLoader.md.txt#release()). - The IMA SDK version 3.21.2 deprecates on 2021-12-09. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.21.1 | 2020-11-17 | - Fixes an issue that occasionally led to app crashes when events were fired. - The IMA SDK version 3.21.1 deprecates on 2021-11-20. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.21.0 | 2020-10-23 | - Adds support for SIMID ads in the DAI Android SDK. - Adds the [`AdsLoader.release()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsLoader.md.txt#release()) method and deprecates `BaseDisplayContainer.destroy()`. This change resolves a memory leak which occurred when disposing of a `BaseDisplayContainer` in the middle of a VMAP ad schedule. `AdsLoader.release()` is the new recommended method to dispose of IMA SDK objects, instead of using `BaseDisplayContainer.destroy()`. - The IMA SDK version 3.21.0 deprecates on 2021-11-17. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.20.1 | 2020-10-12 | - Fixes an issue with HTMLResource companions on API Level 29+ of Android. For more details, see the documented [change in Android API behavior](https://developer.android.com/reference/android/webkit/WebView#loadData(java.lang.String,%20java.lang.String,%20java.lang.String)). - The IMA SDK version 3.20.1 deprecates on 2021-10-23. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.20.0 | 2020-08-18 | - Version 3.20.0 is the first version that will be affected by the [changes to IMA pause behavior](https://ads-developers.googleblog.com/2020/09/changes-to-pause-behavior-in.html). If you use this or any future version of the SDK we recommend reading the blog post and making the changes to pause behavior in your application. Publishers can test their implementation of these changes using the [test ad tag](https://storage.googleapis.com/interactive-media-ads/ad-tags/pause_change_test.xml). - Adds the [`onPause()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoStreamPlayer.VideoStreamPlayerCallback.md.txt#onPause()) and [`onResume()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoStreamPlayer.VideoStreamPlayerCallback.md.txt#onResume()) callbacks for the DAI `VideoStreamPlayer` class. - Adds the [`adPeriodDuration()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdProgressInfo.md.txt#public-abstract-double-getadperiodduration) method to the `AdProgressInfo` class. - Adds support for icon click fallback images on Android TV devices. - Adds the [`ICON_FALLBACK_IMAGE_CLOSED`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdEvent.AdEventType.md.txt#public-static-final-adevent.adeventtype-icon_fallback_image_closed) event to handle when the icon fallback image is closed on Android TV devices. - Removes the deprecated `focusSkipButton()` method from `AdsManager` in favor of the [`focus()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsManager.md.txt#public-abstract-void-focus) method. - For CTV devices, ads are now auto focused when the `AdEvent.AdEventType STARTED` event is fired. To disable auto focus for ads, use the [`adsRenderingSettings.setFocusSkipButtonWhenAvailable(false)`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.md.txt#setFocusSkipButtonWhenAvailable(boolean)) method and then use the [`focus()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsManager.md.txt#public-abstract-void-focus) method based on the custom requirements. - Adds the [`getCurrentTimeMs()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoProgressUpdate.md.txt#public-long-getcurrenttimems) and [`getDurationMs`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoProgressUpdate.md.txt#public-long-getdurationms) methods to the `VideoProgressUpdate()` class. - Deprecates the `getCurrentTime` and `getDuration` methods in favor of the new `getCurrentTimeMs` and `getDurationMs` methods. - Fixes an issue for DASH live streams where ad events were not being reported correctly. - The IMA SDK version 3.20.0 deprecates on 2021-10-12. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.19.4 | 2020-07-08 | - Fixes an issue that was preventing [`setLoadVideoTimeout`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.md.txt#setLoadVideoTimeout(int)) from correctly updating the timeout. - The IMA SDK version 3.19.4 deprecates on 2021-08-18. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.19.3 | 2020-06-29 | - Fixes an issue with the IAB TCF integration for GDPR that caused crashes for players integrated with Consent Management Platform SDKs. - The IMA SDK version 3.19.3 deprecates on 2021-07-08. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.19.2 | 2020-06-22 | - Fixes an issue that caused the SDK to ignore [`VideoAdPlayerCallback.onContentComplete()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoAdPlayer.VideoAdPlayerCallback.md.txt#public-abstract-void-oncontentcomplete) events outside of ad playback. - Adds the ability to specify different DAI subtitle sets for the same language by using the `subtitle_name` parameter for [`VideoStreamPlayer.loadUrl()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoStreamPlayer.md.txt#public-abstract-void-loadurl-string-url,-listhashmapstring,-string-subtitles). - The IMA SDK version 3.19.2 deprecates on 2021-06-29. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.19.0 | 2020-05-12 | - Adds the [`VideoAdPlayerCallback.onLoaded()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoAdPlayer.VideoAdPlayerCallback.md.txt#public-abstract-void-onloaded-admediainfo-admediainfo) callback to `VideoAdPlayer`. - Deprecates `AdsLoader.contentComplete()` in favor of [`VideoAdPlayerCallback.onContentComplete()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoAdPlayer.VideoAdPlayerCallback.md.txt#public-abstract-void-oncontentcomplete) and [`VideoStreamPlayerCallback.onContentComplete()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoStreamPlayer.VideoStreamPlayerCallback.md.txt#public-abstract-void-oncontentcomplete). - The IMA SDK version 3.19.0 deprecates on 2021-06-22. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.18.1 | 2020-03-25 | - Adds scaling for Companion Ads on high-pixel-density devices. - Adds support for client-side SIMID ads. - The IMA SDK version 3.18.1 deprecates on 2021-05-12. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.18.0 | 2020-03-04 | - Adds pause() and resume() to the [`VideoStreamPlayer`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoStreamPlayer) interface. These must be implemented for v3.18.0 and later. - The IMA SDK version 3.18.0 deprecates on 2021-03-25. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.17.0 | 2020-02-07 | - Adds the following APIs to move the validation of display containers to the time of their creation: - [`createAdDisplayContainer(ViewGroup container, VideoAdPlayer player)`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory#createAdDisplayContainer(android.view.ViewGroup,%20com.google.ads.interactivemedia.v3.api.player.VideoAdPlayer)) - [`createStreamDisplayContainer(ViewGroup container, VideoStreamPlayer player)`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory#createStreamDisplayContainer(android.view.ViewGroup,%20com.google.ads.interactivemedia.v3.api.player.VideoStreamPlayer)) - [`createAudioAdDisplayContainer(Context context, VideoAdPlayer player)`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory#createAudioAdDisplayContainer(android.content.Context,%20com.google.ads.interactivemedia.v3.api.player.VideoAdPlayer)) - Adds the [`ImaSdkFactory.createSdkOwnedPlayer`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory#createSdkOwnedPlayer(android.content.Context,%20android.view.ViewGroup)) which should be used by those using IMAs built-in player (SdkOwnedPlayer). It should be manually constructed and passed into the constructor for AdDisplayContainer. - Adds not null checks to [`setAdContainer`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/BaseDisplayContainer#setAdContainer(android.view.ViewGroup)) and [`setPlayer`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/AdDisplayContainer#setPlayer(com.google.ads.interactivemedia.v3.api.player.VideoAdPlayer)). - Updates cuepoint data to now use floating point precision. - Deprecates the following methods: - `AdDisplayContainer.setPlayer(VideoAdPlayer player)` - `BaseDisplayContainer.setAdContainer(ViewGroup container)` - `BaseManager.isCustomPlaybackUsed()` - `ImaSdkFactory.createAdDisplayContainer()` - `ImaSdkFactory.createAudioAdDisplayContainer(Context context)` - `ImaSdkFactory.createStreamDisplayContainer()` - `StreamDisplayContainer.setVideoStreamPlayer(VideoStreamPlayer player)` - The IMA SDK version 3.17.0 deprecates on 2021-03-04. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.16.5 | 2020-01-22 | - Reworks support for OMID 1.3 contentUrl with [`AdsRequest.setContentUrl`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRequest.md.txt#setContentUrl(java.lang.String)) and [`StreamRequest.setContentUrl`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/StreamRequest.md.txt#setContentUrl(java.lang.String)). - Reworks support for OMID 1.3 friendly obstructions with [`FriendlyObstruction`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory#createFriendlyObstruction(android.view.View, com.google.ads.interactivemedia.v3.api.FriendlyObstructionPurpose, java.lang.String)). - Deprecates the methods `BaseDisplayContainer.registerVideoControlsOverlay` and `BaseDisplayContainer.unregisterAllVideoControlsOverlay` in favor of [`FriendlyObstruction`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory#createFriendlyObstruction(android.view.View, com.google.ads.interactivemedia.v3.api.FriendlyObstructionPurpose, java.lang.String)). - Fixes an issue with a `NullPointerException` occurring after calling `clear()` on `CompanionAdSlots`. - Fixes an issue that was potentially causing memory leaks when calling `destroy()` during ad playback. - The IMA SDK version 3.16.5 deprecates on 2021-02-07. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.16.2 | 2019-12-05 | - Adds support for automatic inclusion of consent parameters from IAB TCFv2 and CCPA. - Using Android preferences now requires the `androidx` package. - The IMA SDK version 3.16.2 deprecates on 2021-01-22. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.16.1 | 2019-11-08 | - Adds a new method to the ImaSdkFactory for [`createAudioAdDisplayContainer`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.md.txt#createAudioAdDisplayContainer(android.content.Context)) - The IMA SDK version 3.16.1 deprecates on 2020-12-05. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.16.0 | 2019-10-23 | - Adds the [replaceAdTagParameters](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/StreamManager.md.txt#public-abstract-void-replaceadtagparameters-mapstring,-string-adtagparameters) method to the [StreamManager](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/StreamManager.md.txt), which provides the ability to replace all ad tag parameters during a livestream. - Removes support of the following deprecated methods: - `AdsRequest.getAdDisplayContainer()` - `AdsRequest.setAdDisplayContainer(AdDisplayContainer adDisplayContainer)` - `ImaSdkFactory.createAdsLoader(Context context)` - `ImaSdkFactory.createAdsLoader(Context context, ImaSdkSettings settings)` - `ImaSdkFactory.createLiveStreamRequest(String assetKey, String apiKey, StreamDisplayContainer streamDisplayContainer)` - `ImaSdkFactory.createVodStreamRequest(String contentSourceId, String videoId, String apiKey, StreamDisplayContainer streamDisplayContainer)` - `StreamRequest.getStreamDisplayContainer()` - The IMA SDK version 3.16.0 deprecates on 2020-11-08. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.14.0 | 2019-09-11 | - Service release, no new features. - The IMA SDK version 3.14.0 deprecates on 2020-10-23. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.13.1 | 2019-09-03 | - Adds the ability to set the continuous play context for an ads request. For more details, see the [setContinuousPlayback()](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/continuous-playback.md.txt). - Adds the [getUniversalAdIds()](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/Ad.md.txt#getUniversalAdIds()) method to the Ad class. - Adds the [setAuthToken](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/StreamRequest.md.txt#setAuthToken(java.lang.String)), [getAuthToken](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/StreamRequest.md.txt#getAuthToken()), [setFormat](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/StreamRequest.md.txt#setFormat(com.google.ads.interactivemedia.v3.api.StreamRequest.StreamFormat)), [getFormat](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/StreamRequest.md.txt#getFormat()) and the [StreamFormat](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/StreamRequest.StreamFormat.md.txt) enum. - Fixes an error in nexus 5 devices that occurs when a container is removed before receiving an ad response. - Fixes an issue where companion ads would only render once. - Fixes an issue where unsupported ad types (nonlinears, VPAID) were not failing gracefully. - The IMA SDK version 3.13.1 deprecates on 2020-09-11. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.11.3 | 2019-06-11 | - Fixes bug with is_lat setting on AOSP devices. - The IMA SDK version 3.11.3 deprecates on 2020-09-03. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.11.2 | 2019-04-16 | - Fixes the following crash: `java.lang.ClassNotFoundException: Didn't find class "j$.util.concurrent.ConcurrentHashMap"`. - The IMA SDK version 3.11.0 deprecates on 2020-06-11. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.11.0 Deprecated | 2019-03-22 | - Introduces support for the [Open Measurement SDK](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/omsdk.md.txt) for third-party viewability. - Adds the [`registerVideoControlsOverlay()`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/v3/api/reference/com/google/ads/interactivemedia/v3/api/BaseDisplayContainer#registerVideoControlsOverlay(android.view.View)) and [`unregisterAllVideoControlsOverlays()`](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/v3/api/reference/com/google/ads/interactivemedia/v3/api/BaseDisplayContainer#unregisterAllVideoControlsOverlays()) methods to `BaseDisplayContainer`. - The IMA SDK version 3.10.9 deprecates on 2020-03-22. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.10.9 | 2019-03-13 | - Fixed a race condition bug where ad UI sometimes doesn't render on subsequent ads after the first ad is skipped. - Fixed a crash that occurred when calling the [`getCompanionAds()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/Ad.md.txt#getCompanionAds()) API. - The IMA SDK version 3.10.7 deprecates on 2020-03-22. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.10.7 | 2019-02-19 | - Adds the [`onAdPeriodStarted()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoStreamPlayer#onAdPeriodStarted()) and [`onAdPeriodEnded()`](https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoStreamPlayer#onAdPeriodEnded()) ad events. These events are supported for **DAI only**. - The IMA SDK version 3.10.6 deprecates on 2020-03-13. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.10.6 | 2019-01-23 | - Adds `seek()` method to the stream player interface. - Adds support for `AD_BUFFERING` ad event callbacks. - Containers must no longer be passed in the ad request. The new workflow requires a container to be passed through an `AdsLoader` constructor. - Adds the `BaseDisplayContainer.destroy()` method. - Fixes a memory leak that occurred when video playback completes. - Deprecates `requestNextAdBreak`. This API will be removed in a future release. Afterwards, ads will automatically be fetched 4 seconds before ad break time. - The IMA SDK version 3.10.2 deprecates on 2020-02-19. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.10.2 | 2018-11-13 | - Fixes a race condition that causes the second ad in a pod to throw a `VAST 402` error. - Adds frequency capping and competitive exclusion to the DAI Android SDK. - Moves `getAdProgressInfo()` from `StreamManager` to `BaseManager`. - Adds `getVastMediaHeight()`, `getVastMediaWidth()` and `getVastMediaBitrate()` to `Ad`. - The IMA SDK version 3.9.4 deprecates on 2020-01-23. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.9.4 | 2018-08-01 | - Adds `getCompanionAds()` to `Ad`. This returns companion ads while using DAI only. - Adds new `CompanionAd` class. - Adds new `SKIPPABLE_STATE_CHANGED` event to `AdEvent`. - Fixes an issue where the default setting for `focusSkipButtonWhenAvailable` wasn't being respected in some cases. - The IMA SDK version 3.9.0 deprecates on 2019-08-01. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.9.0 | 2018-07-09 | - Android TV is now supported. - Adds `focusSkipButton()` to `AdsManager`. This will only work on Android TV. - Adds `getFocusSkipButtonWhenAvailable()` to `AdsRenderingSettings`, defaulting to `true`. This will only work on Android TV. - Adds `setFocusSkipButtonWhenAvailable()` to `AdsRenderingSettings`. This will only work on Android TV. - `VideoAdPlayer` now extends the `VolumeProvider` interface. Implementing this interface is now required for custom playback. - The IMA SDK version 3.8.7 deprecates on 2019-07-09. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.8.7 | 2018-05-23 | - Allows animation in HTML companion ads. - The IMA SDK version 3.8.5 deprecates on 2019-05-23. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.8.5 | 2018-04-09 | - Fixes an issue with `ImaSdkSettings` being ignored. - Fixes an issue where there were build conflicts with com.android.support version files. - Adds `setAdWillPlayMuted` to `AdsRequest`. - Adds `setLoadVideoTimeout` to `AdsRenderingSettings`. - The IMA SDK version 3.8.2 deprecates on 2019-04-09. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.8.2 | 2018-01-24 | - Adds `setLiveStreamPrefetchSeconds` to `AdsRequest`. - Various documentation fixes. - The IMA SDK version 3.7.4 deprecates on 2019-01-24. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.7.4 | 2017-06-29 | - Adds `setVastLoadTimeout` to `AdsRequest`. - Adds `getSkipTimeOffset` to `Ad`. - The IMA SDK version 3.7.2 deprecates on 2018-06-29. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.7.2 | 2017-05-25 | - Adds `setDebugMode` to `ImaSdkSettings`. - The IMA SDK version 3.7.1 deprecates on 2018-05-25. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.7.1 | 2017-03-24 | - Resolves a namespace conflict when using Proguard. - Jar size reduced by around 30KB. - The IMA SDK version 3.7.0 deprecates on 2018-03-24. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.7.0 | 2017-03-13 | - Fixes an issue where some IMA classes were inadvertently merged into ProGuard's `a.a.a.a` package. - The IMA SDK version 3.6.0 deprecates on 2018-03-13. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.6.0 | 2017-02-16 | - Adds the following to `Ad`: - `getAdWrapperCreativeIds()` - `getAdvertiserName()` - `getCreativeAdId()` - `getCreativeId()` - `getDealId()` - `getSurveyUrl()` - `getUniversalAdIdRegistry()` - `getUniversalAdIdValue()` - Adds `AdsManager.requestNextAdBreak().` - Adds the following to `AdsRenderingSettings`: - `setEnablePreloading()` - `getEnablePreloading()` - Adds the following to `AdsRequest`: - `setContentDuration()` - `setContentKeywords()` - `setContentTitle()` - The IMA SDK version 3.5.2 deprecates on 2018-02-16. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.5.2 | 2016-11-14 | - Adds an SDK-owned video player that optionally handles ad playback. - Adds `CompanionAdSlot.ClickListener` and methods to add and remove a listener. - Fixes an issue with invalid `getViewability()` error logs. - Fixes an issue with icons' clickthrough behavior and not rendering correctly. - The IMA SDK version 3.4.0 deprecates on 2017-11-14. For more details, see the [Deprecation Schedule](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/deprecation.md.txt). |
| 3.4.0 | 2016-09-12 | - Fixes a duplicate files error when using Google Play services version 9.0.0 and up. |
| 3.3.2 | 2016-07-11 | - Adds `AD_BREAK_STARTED` and `AD_BREAK_ENDED` events to [AdEventListener.onAdEvent](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdEvent.AdEventListener.md.txt#onAdEvent(com.google.ads.interactivemedia.v3.api.AdEvent)) callback. |
| 3.3.0 | 2016-05-31 | - Adds [AdsRenderingSetting.setPlayAdsAfterTime](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.md.txt#public-methods). |
| 3.2.1 | 2016-04-07 | - Service release, no new features. |
| 3.1.3 | 2015-12-16 | - Out of beta. - Adds [AdsManager.discardAdBreak](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsManager.md.txt#discardAdBreak()) to the API. |
| 3.b13.3 (beta) | 2015-09-10 | - Service release, no new features. |
| 3.b12.1 (beta) | 2015-07-20 | - Allows the user to customize ad UI elements using [AdsRenderingSettings.setUiElements](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.md.txt#public-abstract-void-setuielements-setuielement-uielements). - Adds ability to play ad breaks manually instead of automatically. See [Manual Ad Break Playback](https://developers.google.com/interactive-media-ads/docs/sdks/android/manual_ad_playback). - Adds the restriction that [ContentProgressProvider.getContentProgress](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/ContentProgressProvider.md.txt#getContentProgress()) should never return null. - Adds [AdEvent.TAPPED](https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdEvent.AdEventType.md.txt#TAPPED) which will fire when the user taps on any non-clickable region of a video ad. |
| 3.b11.4 (beta) | 2015-05-21 | - Adds the following to the API: - `AdError.AdErrorCode.VAST_EMPTY_RESPONSE` - `AdError.getErrorNumber()` - `AdsRequest.setAdWillAutoPlay(Boolean)` - `CompanionAdSlot.isFilled()` - `ImaSdkSettings.setPlayerType(String)` - `ImaSdkSettings.setPlayerVersion(String)` |
| 3.b10.3 (beta) | 2015-03-24 | - Added `ImaSdkSettings.getMaxRedirects` and `ImaSdkSettings.setMaxRedirects`. - IMA API classes are now `final`. - SDK version numbers are now in the format 3.bX.Y with b to indicate the SDK's beta status. - The following `AdError.AdErrorCode` values have been removed: - `API_ERROR` - instead use `UNKNOWN_AD_RESPONSE`. - `PLAYLIST_MALFORMED_RESPONSE` - instead use `UNKNOWN_AD_RESPONSE`. - `REQUIRED_LISTENERS_NOT_ADDED` - was not being raised by the SDK. - `VAST_INVALID_URL` - instead use `VAST_LOAD_TIMEOUT`. |
| Beta v9 | 2014-10-17 | - Adds the Ad APIs `getTitle`, `getDescription`, and `getContentType`. - Adds information about ad pod position to the ad UI, for example, "Ad 1 of 4: (0:13)". - You should no longer directly control the pause/play/resume of ads using your video player. Instead, use `AdsManager.pause()` and `AdsManager.resume()`. |
| Beta v8 | 2014-06-12 | - Fixes an issue with the ad UI not clearing for skippable ads. - Documents the error code for media file load timeouts. |
| Beta v7 | 2014-05-27 | - Fixes an issue with Google Play services. The SDK now requires that Google Play services be built into your app. For more information, see [Set Up Google Play services SDK](http://developer.android.com/google/play-services/setup.html). |
| Beta v6 | 2014-04-14 | - Adds VAST 3 support. - Adds partial VMAP support (parity with current Ad Manager ad rules). - Adds the following to the API: - AdError.AdErrorCode.ADS_REQUEST_NETWORK_ERROR - AdEvent.AdEventType.LOG - AdEvent.getAdData() - AdPodInfo.getMaximumDuration() - AdPodInfo.getPodIndex() - AdPodInfo.getTimeOffset() - Fixes a bug where mid-rolls with an optimized pod with a wrapper caused all other ads in the pod to be skipped. - AdsRenderingSettings passed to the AdsManager will no longer be ignored. - Fixed multiple bugs to add stability. |
| Beta v5 | 2013-12-12 | - Fixes issue with skippable ads in playlists. |
| Beta v4 | 2013-10-15 | - Added ability to reset correlator values by calling contentComplete on the AdsLoader. |
| Beta v3 | 2013-09-05 | - Service release, no new features. |
| Beta v2 | 2013-07-07 | - Public release of Beta version of SDK. |
| Closed Beta v2 | 2013-06-24 | - Added API to set UI language on `ImaSdkSettings` object. Note that this is used to set the UI language, not the ad language. - Fixed conflict that was being encountered when an app included both IMA SDK and AdMob SDK libraries. - Added logging for various internal performance metrics. |
| Closed Beta v1 | 2013-04-02 | - Initial Beta release. The following are known issues with the Beta release: **SDK-related** The following `AdEvents` available within the HTML5 IMA SDK are not supported within the Android v3 IMA SDK: `IMPRESSION`, `LOG`, `SKIPPABLE_STATE_CHANGED`, `STOPPED`, `VOLUME_CHANGED`, `VOLUME_MUTED` **Sample App-related** 1. There is an intermittent issue where the ad player does not properly resume after the user has clicked through on an ad. For example, occasionally, when you return to the app after clicking through on an ad, resuming play of that ad causes it to skip to the end and complete, rather than resuming where it left off prior to click through. 2. The ads returned by the "Instream 2" ad tag are not compatible with the v3 IMA Android SDK. 3. The sample player does not automatically disable seeking (scrubbing) while ads are playing. Be sure to disable seeking in your video player while ads are being played. |