IMA DAI SDK release history for Android

Version Release Date Notes
3.35.1 2024-09-24
  • Fixes an issue where Open Measurement 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.
  • 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.
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
3.33.0 2024-03-28
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 for more info. This change includes adding the following APIs:
  • 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()
  • We will deprecate SDK version 3.31.0 on 2025-03-28. See the Deprecation Schedule for more details.
3.30.3 2023-08-03
  • Updates internal library dependencies to improve startup latency.
  • We will deprecate SDK version 3.30.3 on 2024-08-31. See the Deprecation Schedule for more details.
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 for more info.
  • We will deprecate SDK version 3.30.2 on 2024-08-03. See the Deprecation Schedule for more details.
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
3.29.0 2022-10-14
  • Renames the EspVersion class to the VersionInfo class.
  • Renames the Encrypted Signals for Publishers (ESP) APIs to the Secure Signals APIs.
  • Adds the feature flags APIs. You can use the feature flag APIs to enable or disable specific features in IMA. Use ImaSdkSettings.getFeatureFlags() and 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
  • We will deprecate SDK version 3.29.0 on 2024-03-29. See the Deprecation Schedule for more details.
3.28.2 2022-09-14
  • Updates SDK dependencies to use AndroidX.
  • We will deprecate SDK version 3.28.2 on 2023-10-14. See the Deprecation Schedule for more details.
3.28.1 Deprecated 2022-08-03
3.27.1 2022-05-27
  • Service release, no new features.
  • We will deprecate SDK version 3.27.1 on 2023-08-03. See the Deprecation Schedule for more details.
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 .
  • We will deprecate SDK version 3.27.0 on 2023-05-27. See the Deprecation Schedule for more details.
3.26.0 2022-01-12
  • Adds Encrypted Signals for Publishers (ESP) APIs (renamed to Secure Signals in IMA SDK v3.29.0). This lets publishers enable Network Bidders and IDPs.
  • We will deprecate SDK version 3.26.0 on 2023-03-01. See the Deprecation Schedule for more details.
3.25.1 2021-11-08
  • Adds AdsRenderingSettings.setEnableCustomTabs() and AdsRenderingSettings.getEnableCustomTabs() for in-app click-through of ads using 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.
  • Adds support for the 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.
  • We will deprecate SDK version 3.25.1 on 2023-01-12. See the Deprecation Schedule for more details.
3.24.0 2021-06-03
3.23.0 2021-04-07
  • Adds the ImaSdkSettings.setSessionId() and the ImaSdkSettings.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.
  • We will deprecate SDK version 3.23.0 on 2022-06-03. See the Deprecation Schedule for more details.
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.
  • We will deprecate SDK version 3.22.3 on 2022-04-07. See the Deprecation Schedule for more details.
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.
  • We will deprecate SDK version 3.22.2 on 2022-03-16. See the Deprecation Schedule for more details.
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() 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.
  • We will deprecate SDK version 3.22.0 on 2022-02-26. See the Deprecation Schedule for more details.
3.21.4 2020-12-09
  • Removes a harmless warning message related to calling adsLoader.release() after the webview has been destroyed.
  • We will deprecate SDK version 3.21.4 on 2022-01-08. See the Deprecation Schedule for more details.
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().
  • We will deprecate SDK version 3.21.2 on 2021-12-09. See the Deprecation Schedule for more details.
3.21.1 2020-11-17
  • Fixes an issue that occasionally led to app crashes when events were fired.
  • We will deprecate SDK version 3.21.1 on 2021-11-20. See the Deprecation Schedule for more details.
3.21.0 2020-10-23
  • Adds support for SIMID ads in the DAI Android SDK.
  • Adds the AdsLoader.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().
  • We will deprecate SDK version 3.21.0 on 2021-11-17. See the Deprecation Schedule for more details.
3.20.1 2020-10-12
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. 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.
  • Adds the onPause() and onResume() callbacks for the DAI VideoStreamPlayer class.
  • Adds the adPeriodDuration() method to the AdProgressInfo class.
  • Adds support for icon click fallback images on Android TV devices.
  • Adds the 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() 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) method and then use the focus() method based on the custom requirements.
  • Adds the getCurrentTimeMs() and 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.
  • We will deprecate SDK version 3.20.0 on 2021-10-12. See the Deprecation Schedule for more details.
3.19.4 2020-07-08
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.
  • We will deprecate SDK version 3.19.3 on 2021-07-08. See the Deprecation Schedule for more details.
3.19.2 2020-06-22
3.19.0 2020-05-12
3.18.1 2020-03-25
  • Adds scaling for Companion Ads on high-pixel-density devices.
  • Adds support for client-side SIMID ads.
  • We will deprecate SDK version 3.18.1 on 2021-05-12. See the Deprecation Schedule for more details.
3.18.0 2020-03-04
  • Adds pause() and resume() to the VideoStreamPlayer interface. These must be implemented for v3.18.0 and later.
  • We will deprecate SDK version 3.18.0 on 2021-03-25. See the Deprecation Schedule for more details.
3.17.0 2020-02-07
3.16.5 2020-01-22
  • Reworks support for OMID 1.3 contentUrl with AdsRequest.setContentUrl and StreamRequest.setContentUrl .
  • Reworks support for OMID 1.3 friendly obstructions with FriendlyObstruction .
  • Deprecates the methods BaseDisplayContainer.registerVideoControlsOverlay and BaseDisplayContainer.unregisterAllVideoControlsOverlay in favor of FriendlyObstruction .
  • 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.
  • We will deprecate SDK version 3.16.5 on 2021-02-07. See the Deprecation Schedule for more details.
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.
  • We will deprecate SDK version 3.16.2 on 2021-01-22. See the Deprecation Schedule for more details.
3.16.1 2019-11-08
3.16.0 2019-10-23
  • Adds the replaceAdTagParameters method to the StreamManager, 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()
  • We will deprecate SDK version 3.16.0 on 2020-11-08. See the Deprecation Schedule for more details.
3.14.0 2019-09-11
  • Service release, no new features.
  • We will deprecate SDK version 3.14.0 on 2020-10-23. See the Deprecation Schedule for more details.
3.13.1 2019-09-03
  • Adds the ability to set the continuous play context for an ads request. See the setContinuousPlayback() for more details.
  • Adds the getUniversalAdIds() method to the Ad class.
  • Adds the setAuthToken, getAuthToken, setFormat, getFormat and the StreamFormat 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.
  • We will deprecate SDK version 3.13.1 on 2020-09-11. See the Deprecation Schedule for more details.
3.11.3 2019-06-11
  • Fixes bug with is_lat setting on AOSP devices.
  • We will deprecate SDK version 3.11.3 on 2020-09-03. See the Deprecation Schedule for more details.
3.11.2 2019-04-16
  • Fixes the following crash: java.lang.ClassNotFoundException: Didn't find class "j$.util.concurrent.ConcurrentHashMap".
  • We will deprecate SDK version 3.11.0 is officially deprecated as of 2020-06-11. See the Deprecation Schedule for more details.
3.11.0 Deprecated 2019-03-22
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() API.
  • We will deprecate SDK version 3.10.7 on 2020-03-22. See the Deprecation Schedule for more details.
3.10.7 2019-02-19
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.
  • We will deprecate SDK version 3.10.2 on 2020-02-19. See the Deprecation Schedule for more details.
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.
  • We will deprecate SDK version 3.9.4 on 2020-01-23. See the Deprecation Schedule for more details.
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.
  • We will deprecate SDK version 3.9.0 on 2019-08-01. See the Deprecation Schedule for more details.
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.
  • We will deprecate SDK version 3.8.7 on 2019-07-09. See the Deprecation Schedule for more details.
3.8.7 2018-05-23
  • Allows animation in HTML companion ads.
  • We will deprecate SDK version 3.8.5 on 2019-05-23. See the Deprecation Schedule for more details.
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.
  • We will deprecate SDK version 3.8.2 on 2019-04-09. See the Deprecation Schedule for more details.
3.8.2 2018-01-24
  • Adds setLiveStreamPrefetchSeconds to AdsRequest.
  • Various documentation fixes.
  • We will deprecate SDK version 3.7.4 on 2019-01-24. See the Deprecation Schedule for more details.
3.7.4 2017-06-29
  • Adds setVastLoadTimeout to AdsRequest.
  • Adds getSkipTimeOffset to Ad.
  • We will deprecate SDK version 3.7.2 on 2018-06-29. See the Deprecation Schedule for more details.
3.7.2 2017-05-25
  • Adds setDebugMode to ImaSdkSettings.
  • We will deprecate SDK version 3.7.1 on 2018-05-25. See the Deprecation Schedule for more details.
3.7.1 2017-03-24
  • Resolves a namespace conflict when using Proguard.
  • Jar size reduced by around 30KB.
  • We will deprecate SDK version 3.7.0 on 2018-03-24. See the Deprecation Schedule for more details.
3.7.0 2017-03-13
  • Fixes an issue where some IMA classes were inadvertently merged into ProGuard's a.a.a.a package.
  • We will deprecate SDK version 3.6.0 on 2018-03-13. See the Deprecation Schedule for more details.
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()
  • We will deprecate SDK version 3.5.2 on 2018-02-16. See the Deprecation Schedule for more details.
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.
  • We will deprecate SDK version 3.4.0 on 2017-11-14. See the Deprecation Schedule for more details.
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
3.3.0 2016-05-31
3.2.1 2016-04-07
  • Service release, no new features.
3.1.3 2015-12-16
3.b13.3 (beta) 2015-09-10
  • Service release, no new features.
3.b12.1 (beta) 2015-07-20
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.
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.