| Version | Release Date | Notes |
|---|---|---|
| 1.6.0 | 2026-10-22 | - Updated the [ad inspector](https://developers.google.com/admob/android/next-gen/ad-inspector/troubleshoot-ad-units.md.txt#troubleshoot_an_ad_unit) share sheet when exporting the ad request and response to provide text previews, a copy button, and direct-share suggestions. - Fixed a bug in rewarded and rewarded interstitial ads where the `OnUserEarnedRewardListener.onUserEarnedReward()` method could be invoked after the `AdEventCallback.onAdDismissedFullScreenContent()` method. - Updated the `com.google.android.play:hsdp` dependency to version 2.2.0 to fix a `java.lang.IllegalStateException` crash. - Updated consumer ProGuard rules to prevent a `java.lang.RuntimeException` crash in the `androidx.work.WorkManagerInitializer` class when R8 full mode is enabled. - Fixed a bug where an available `Activity` context wasn't passed to third-party SDKs when showing mediated full-screen ads. |
| 1.5.0 | 2026-09-24 | - Added signal generation and rendering APIs for the `SwipeableInterstitialAd` format. This feature is in private beta. Contact your account manager to request access. - Added an `excludedAppIds` API to icon ad requests, allowing publishers to optionally exclude a list of app IDs from icon ad responses. |
| 1.4.0 | 2026-08-20 | - Added support for the `PictureInPictureAd` format. Picture-in-Picture ads are in open beta. - Added `onInitializationFailed(AdError)` and deprecated `onInitializationFailed(String)` in `InitializationCompleteCallback`. Mediation adapters can now report third-party SDK initialization errors to the SDK with the error code, error domain, and error message. |
| 1.3.1 | 2026-07-29 | - Bug fixes and performance improvements for a limited access feature. |
| 1.3.0 | 2026-07-21 | - Changed `AdView.loadAd()` to pause automatic retries for failed ad requests when automatic refresh is disabled for the ad unit. - When an ad request for multiple native ads or icon ads yields no available ads, the SDK now returns a `NO_FILL` error instead of an `INTERNAL_ERROR`. - Added a manifest flag to [disable ad inspector](https://developers.google.com/admob/android/next-gen/ad-inspector/disable-ad-inspector.md.txt). - Added the `Ad.getAdUnitId()` method to identify the ad unit ID used to request the ad. - Added the `InitializationConfig.Builder.disableSdkCrashReporting()` method, which provides a manual opt-out for the default crash handler in the GMA Next-Gen SDK. By default, the SDK still delegates crashes to other registered handlers (such as Crashlytics). - When using mediation with custom event ad sources, `ResponseInfo.getAdapterClassName()` now returns your custom event class name instead of `com.google.ads.mediation.customevent.CustomEventAdapter`. |
| 1.2.1 | 2026-06-15 | - For apps using WebView API for Ads, fixed an issue that prevented the SDK from providing signals to supported ad tags (AdSense code, Google Publisher Tag, IMA for HTML5). This issue was caused by Webkit methods being incorrectly called on a background thread. |
| 1.2.0 | 2026-06-11 | - Fixed a bug causing a `java.lang.NullPointerException` in `androidx.webkit.internal.PrefetchOperationCallbackAdapter`. - Added the `SwipeableInterstitialAd` format. This feature is in private beta. Contact your account manager to request access. - For apps requesting multiple Icon ads, added `IconAd.load(IconAdRequest, int, IconAdLoadCallback)`, and deprecated `IconAd.load(IconAdRequest, int, AdLoadCallback<IconAd>)`. `IconAdLoadCallback` includes an `onAdLoadingCompleted()` method to signal when all ad loading finishes. - Mediation Adapters: - Added the `RequestConfiguration.getAgeRestrictedTreatment()` method to let adapters read the age treatment setting. - Changed `untrackView()` to accept `View` instead of `View?` to maintain compatibility with adapters built against Google Mobile Ads SDK (Legacy). |
| 1.1.1 | 2026-05-27 | - Fixed an issue where rewarded ad pods could freeze during transitions, preventing users from closing the ad. |
| 1.1.0 | 2026-05-18 | - Added `RequestConfiguration.Builder.setAgeRestrictedTreatment()` and deprecated the following methods: - `RequestConfiguration.Builder.setTagForChildDirectedTreatment()` - `RequestConfiguration.Builder.setTagForUnderAgeOfConsent()` - Added `destroyAll()` and `peekAdResponseInfo()` to ad preloader classes. - Added `load()` methods to `IconAd` that support loading multiple icon ads. |
| 1.0.1 | 2026-04-30 | - Fixed an issue where ads that use `window.open()` or links with `target="_blank"` failed to open landing pages. |
| 1.0.0 | 2026-04-14 | - Breaking changes: - Removed deprecated [`AdPreloader.numAdsAvailable()`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/common/AdPreloader.md.txt#numAdsAvailable()) method. Use [`AdPreloader.getNumAdsAvailable()`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/common/AdPreloader.md.txt#getNumAdsAvailable()) instead. - Updated [`org.chromium.net:cronet-api`](https://developer.android.com/develop/connectivity/cronet) to version `143.7445.0` to prevent unique namespace violations. - Fixed a bug where [`MediaContent.currentTime`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/nativead/MediaContent.md.txt#getCurrentTime()) and [`NativeAdMapper.getCurrentTime()`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/gms/ads/mediation/NativeAdMapper.md.txt#getCurrentTime()) always returned `0`. |
| 0.25.0-beta01 | 2026-03-24 | - Fixed an issue where [`Ad.getResponseInfo()`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/common/Ad.md.txt#getResponseInfo()) did not return updated [`ResponseInfo`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/common/ResponseInfo.md.txt) metadata when a banner ad refreshed. |
| 0.24.0-beta03 | 2026-03-07 | - Fixed an issue where [`AdView.destroy()`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/banner/AdView.md.txt#destroy()) failed to stop ad load retries after an ad load failed. - Added zero-argument constructors to [`NativeAdMapper`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/gms/ads/mediation/NativeAdMapper.md.txt) and [`UnifiedNativeAdMapper`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/gms/ads/mediation/UnifiedNativeAdMapper.md.txt) to improve compatibility with Kotlin. - Added the [`packageName`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/iconad/IconAd.md.txt#getPackageName()) property to the [`IconAd`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/iconad/IconAd.md.txt) interface. - Added an option to force the SDK to use [Cronet](https://developer.android.com/develop/connectivity/cronet) instead of [OkHttp](https://square.github.io/okhttp/) for network operations. To resolve runtime errors in projects that use OkHttp 5, we recommend forcing Cronet for network operations. To force Cronet, set the `force_use_cronet` extra to `true` in the [`InitializationConfig.Builder`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/initialization/InitializationConfig.Builder.md.txt#setExtras(android.os.Bundle)) when calling [`MobileAds.initialize()`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/MobileAds.md.txt#initialize(android.content.Context,com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig,com.google.android.libraries.ads.mobile.sdk.initialization.OnAdapterInitializationCompleteListener)): ```kotlin val config = InitializationConfig.Builder() .setExtras(bundleOf("force_use_cronet" to true)) .build() MobileAds.initialize(this, config) ``` - Added support for Java 11. To use Java 11, add the following code to the `android` block in your `build.gradle` file: ``` android { compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '11' } } ``` |
| 0.24.0-beta02 | 2026-03-03 | - Resolved a third-party dependency class loading issue that impacted server-to-server ad request signal generation. |
| 0.24.0-beta01 | 2026-02-13 | - Added support for large anchored adaptive banners. Large anchored adaptive banners are designed to increase engagement and revenue. Request large anchored adaptive banners using the following methods in the [`AdSize`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/banner/AdSize.md.txt) class: - `getLargePortraitAnchoredAdaptiveBannerAdSize()` - `getLargeLandscapeAnchoredAdaptiveBannerAdSize()` - `getLargeAnchoredAdaptiveBannerAdSize()` - The following methods in the [`AdSize`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/banner/AdSize.md.txt) class are deprecated: - `getCurrentOrientationAnchoredAdaptiveBannerAdSize()` - `getLandscapeAnchoredAdaptiveBannerAdSize()` - `getPortraitAnchoredAdaptiveBannerAdSize()` - Fixed a bug where banner ads may stop refreshing if the platform invokes [`onViewAttachedToWindow()`](https://developer.android.com/reference/android/view/View.OnAttachStateChangeListener#onViewAttachedToWindow(android.view.View)) and [`onViewDetachedFromWindow()`](https://developer.android.com/reference/android/view/View.OnAttachStateChangeListener#onViewDetachedFromWindow(android.view.View)) out of order when a new ad is shown. |
| 0.23.0-beta01 | 2026-01-26 | - Updated the minimum required Android Gradle Plugin (AGP) version to 8.3.0. - Fixed a bug where the [`AdView`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/banner/AdView.md.txt) constructor threw a `java.lang.NoSuchMethodError` when called from Kotlin. - Fixed a bug where custom event adapters were not invoked during waterfall execution. - Updated [`RtbSignalData`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/gms/ads/mediation/rtb/RtbSignalData.md.txt) to provide an Activity Context to [`RtbAdapter.collectSignals()`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/gms/ads/mediation/rtb/RtbAdapter.md.txt#collectSignals(com.google.android.gms.ads.mediation.rtb.RtbSignalData,com.google.android.gms.ads.mediation.rtb.SignalCallbacks)) when available. - Updated `androidx.webkit` dependency to version 1.15.0. - Updated User Messaging Platform SDK dependency to version 4.0.0. - Reverted deprecation of [`AdPreloader.getConfiguration()`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/common/AdPreloader.md.txt#getConfiguration(kotlin.String)) and [`AdPreloader.getConfigurations()`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/common/AdPreloader.md.txt#getConfigurations()). |
| 0.22.0-beta04 | 2025-12-04 | - Fixed an issue in SDK version 0.22.0-beta02 where Java 17 preview metadata was incorrectly included in class files. |
| 0.22.0-beta03 | 2025-11-25 | - Fixed a bug where server-to-server ad requests using `NativeSignalRequest.Builder.setAdSize()` did not properly set the requested ad size. |
| 0.22.0-beta02 | 2025-11-24 | - Resolved an Ad Manager loading bug where server-to-server ad requests utilizing `NativeSignalRequest` failed to render if the ad response was for type `NativeAd.NativeAdType.BANNER`. |
| 0.22.0-beta01 | 2025-11-20 | - Update the banner ads API: - Added the [`AdView`](https://developers.google.com/admob/android/next-gen/reference/com/google/android/libraries/ads/mobile/sdk/banner/AdView.md.txt) class. - Deprecated `BannerAd.load()` and `BannerAd.loadFromAdResponse()`. To load a single banner ad, use `AdView.loadAd()` and `AdView.loadFromAdResponse()` instead. - Deprecated `BannerAd.getView()`. To render a `BannerAd` loaded with `BannerAdPreloader`, create an `AdView` instance and use `AdView.registerBannerAd()`. - Fixed a bug in mediated ads where the `NativeAdRequest.Builder.setAdChoicesPlacement()` was not respected, causing the Ad Choices icon placement to be incorrect. - Lowered the minimum required Android Gradle Plugin (AGP) version from 8.2.0 to 7.3.1. - Deprecated `AdPreloader.getConfigurations()` and `AdPreloader.getConfiguration(preloadId)`. There is no replacement. |
| 0.21.0-beta01 | 2025-10-08 | - Added the `InitializationConfig.Builder.disableMediationAdapterInitialization()` method. Call this method prior to initializing GMA Next-Gen SDK to disable mediation adapter initialization. > [!WARNING] > Calling this method can negatively impact your Google mediation performance. This method should only be called if you include Google mediation adapters in your app but aren't using AdMob Mediation during a particular app session, such as running an A/B mediation test. - Improved `WebView` initialization usage to reduce ANRs. - Downgraded `androidx.webkit` dependency from 1.13.0 to 1.12.1. - Removed the `android.permission.RECEIVE_BOOT_COMPLETED` permission used by the `androidx.work` package. - Fixed a misnamed field in the `NativeAdMapper` class. |
| 0.20.0-beta01 | 2025-09-19 | - Fixed a bug where some native video ads don't autoplay. |
| 0.19.0-beta01 | 2025-08-14 | - Downgraded versions of two dependencies. - `androidx.work:work-runtime` from 2.10.0 to 2.7.0. - `androidx.core:core and androidx.core:core-ktx` from 1.15.0 to 1.12.0. - Renamed the `loadedAdSourceResponse` property on `ResponseInfo` to `loadedAdSourceResponseInfo`. - Fixed a bug that allowed users to prematurely dismiss some full-screen ads with the back button. - Publishers with access to the feature now have placement ID support for all ad formats. - Added a `destroy()` callback to `NativeAdMapper` for native mediation adapters. |
| 0.18.0-beta01 | 2025-07-17 | - Fixed a native mediation bug that broke ad serving for adapters that referenced `com.google.android.gms.ads.NativeAd.MediaView`. - Annotated `MobileAds.registerCustomTabsSession()` with `@JvmStatic`. - Fixed a bug where Banner ads loaded using AdMob Network Waterfall would stop refreshing. |
| 0.17.0-alpha02 | 2025-06-23 | - Fixed a native mediation bidding bug where adapters that implement bidding but not waterfall (e.g. Meta Audience Network) would always fail to render native ads. - Fixed a crash that occurring when a mediation adapter invokes multiple `MediationAdLoadCallback` methods for a single ad request. |
| 0.17.0-alpha01 | 2025-06-18 | - Version 0.17.0-alpha01 was an accidental release that does not contain the intended new features. Use 0.17.0-alpha02 instead. |
| 0.16.0-alpha01 | 2025-05-23 | - It is no longer required to enable [Java 8+ API desugaring support](https://developer.android.com/studio/write/java8-support#library-desugaring). - Updated User Messaging Platform SDK dependency to version 3.2.0. - Fixed a native ads mediation bug that caused crashes in adapters referencing the `com.google.android.gms.ads.formats.MediaView` class. - **Ad Preloading** : Added `getNumAdsAvailable()` and deprecated `numAdsAvailable()`. - Removed the `android.adservices.AD_SERVICES_CONFIG` property tag from the SDK's manifest file to prevent merge conflicts for apps that [Configure API-specific Ad Services](https://developers.google.com/privacy-sandbox/private-advertising/setup/android/setup-api-access#configure-api-specific). |
| 0.15.1-alpha01 | 2025-04-28 | - It is now required to enable [Java 8+ API desugaring support](https://developer.android.com/studio/write/java8-support#library-desugaring). - For apps developed using Kotlin, reduced minimum required Kotlin version from 2.1 to 1.9. |
| 0.15.0-alpha01 | 2025-04-24 | - **Native ads**: Added support for loading multiple native ads. - Added a `NativeAdLoader.load(NativeAdRequest, numberOfAds, NativeAdLoaderCallback)` method that requests multiple ads at once. - Added a `NativeAdLoaderCallback.onAdLoadingCompleted()` callback that fires when all native ads complete loading. - To support Kotlin asynchronous loading, added a `NativeAdLoader.load(NativeAdRequest, numberOfAds)` method that returns a `Flow<NativeAdLoadResult>`. - Updated `kotlinx-coroutines-android` dependency from version 1.7.3 to 1.9.0. |
| 0.14.0-alpha01 | 2025-03-20 | - Ad requests fail if you initialize the SDK with an invalid application ID. - The `AdPreloader.start()` method no longer requires a `PreloadCallback` callback. - The `bufferSize` property is optional when creating an object through `PreloadConfiguration` data class. To enable Google to optimize the buffer size, don't set the `bufferSize` property. - Removed the `maxAdsPerSession` property in `PreloadConfiguration` data class. - Added `shouldRequestMultipleImages` and `shouldReturnUrlsForImageAssets` properties to `NativeAdOptions` class. |
| 0.13.0-alpha01 | 2025-02-26 | - Added `MediationRewardedAdCallback.onUserEarnedReward()` and deprecated `MediationRewardedAdCallback.onUserEarnedReward(RewardItem)`. - Added ad preloading APIs. |
| 0.12.0-alpha01 | 2025-01-22 | - Fixed a bug where some methods inside `AdRequest`, `AdRequest.Builder`, `SignalRequest`, and `SignalRequest.Builder` were obfuscated. - For WebView API for Ads users that don't have an AdMob application ID, added `InitializationConfig.WEBVIEW_APIS_FOR_ADS_APPLICATION_ID` that can be passed during SDK initialization. - Added support for combining native and banner ads in Ad Manager ad requests. |
| 0.11.0-alpha01 | 2024-12-12 | - Updated the dependency on User Messaging Platform SDK to version 3.1.0. - Added support for custom click gestures in native ads. |
| 0.10.0-alpha01 | 2024-11-08 | - Added DSL functions for `VideoOptions` and `RequestConfiguration` for better Kotlin support. - Added support for the [Publisher Privacy Treatment API](https://support.google.com/admob/answer/14323214) with `RequestConfiguration.setPublisherPrivacyPersonalizationState()`. - Added Kotlin suspend APIs for loading ads and generating signals. - Removed `IconAd.LoadAdResult` and replaced it with `AdLoadResult`. - Fixed an issue where OMID sessions did not start for native video ads. |
| 0.9.0-alpha01 | 2024-10-02 | - Removed dependency on [Java 8+ APIs available through desugaring](https://developer.android.com/studio/write/java8-support-table) from 0.6.0-alpha01 release. Apps that use `minSdkVersion` lower than `26` no longer need to enable [Java 8+ API desugaring support](https://developer.android.com/studio/write/java8-support#library-desugaring). - Added support for ad inspector. - Added video support for custom native ad format. - Official release for signal collection and rendering APIs. |
| 0.8.0-alpha01 | 2024-08-22 | - Updated the dependency on User Messaging Platform SDK to version 3.0.0. - **Native Ads:** - Official release version for the native ad format. - Added support for serving video in the `MediaContent` asset. - Added video lifecycle callbacks. - Added video playback custom controls. - Enabled Open Measurement for native and custom native ads. - `signalType` is now a required field when building a `SignalRequest`. |
| 0.6.0-alpha01 | 2024-06-20 | - Added code that uses [Java 8+ APIs available through desugaring](https://developer.android.com/studio/write/java8-support-table). Apps that use `minSdkVersion` lower than `26` must enable [Java 8+ API desugaring support](https://developer.android.com/studio/write/java8-support#library-desugaring). - Added support for native and custom native ad formats that don't include video assets. - Added support for MRAID v3. - Added dependency on User Messaging Platform SDK version 2.2.0. - Updated error domain for Google errors from `com.google.android.gms.ads` to `com.google.android.libraries.ads.mobile.sdk`. - Added `MobileAds.isInitialized()` method to check if the SDK has already been initialized. - Added `BannerAd.isCollapsible()` to check if the returned banner ad is collapsible. - Added `MobileAds.registerCustomTabsSession()` to improve monetization for ads in Custom Tabs. - Renamed `OnInitializationCompleteListener` to `OnAdapterInitializationCompleteListener`. - Renamed `AdapterResponseInfo` to `AdSourceResponseInfo`. - Renamed `AdRequest.Builder.putAdNetworkExtrasBundle()` to `AdRequest.Builder.putAdSourceExtrasBundle()`. - Fixed a bug where bidding adapter classes weren't instantiated correctly. |
| 0.3.0-alpha01 | 2024-03-20 | > [!WARNING] > The GMA Next-Gen SDK introduces major changes with new APIs. See the [Migration guide](https://developers.google.com/admob/android/next-gen/migration.md.txt) for details on how to migrate from the current Mobile Ads SDK. - Initial release of the GMA Next-Gen SDK. - Supports banner, interstitial, rewarded, rewarded interstitial, and app open ads. - Supports mediation for all ad formats. Adapters written for the current Mobile Ads SDK are forward-compatible with the GMA Next-Gen SDK. - Added dependency on Open Measurement SDK version 1.4.10. |