Release Notes Stay organized with collections Save and categorize content based on your preferences.
Page Summary
Recent versions include minor updates and bug fixes, with some adjustments to dependencies and nullable annotations.
Key feature additions in recent years include ad preloading APIs, support for placement IDs across formats, and updates to user messaging platform dependencies.
Significant breaking changes in major versions include increased minimum Android API levels, removal of deprecated APIs and ad formats, and changes to initialization and ad loading behaviors.
Mediation adapter functionality has been updated with new methods for ad destruction notification and loading native ad mappers.
Improvements to ad inspection tools, ad load failure logging, and monetization features for personalized ads have been implemented.
Version
Release Date
Notes
24.9.0
2025‑12‑11
Bug fixes and performance improvements.
24.8.0
2025‑11‑20
Fixed missing translations for SDK resources in versions 24.6.0 and 24.7.0.
Deprecated NativeAdViewHolder. Use NativeAdView to render native ads instead.
Deprecated the AdPreloader.getConfigurations() and AdPreloader.getConfiguration(preloadId) methods. There is no replacement for these methods.
24.7.0
2025‑10‑09
Corrected a missing nullable annotation on the return type for NativeCustomFormatAd.getDisplayOpenMeasurement(). Functionality is unchanged, as the method's ability to return null was already expected.
Downgraded androidx.webkit:webkit dependency from 1.14.0 to 1.12.1 to maintain compatibility with Android Gradle plugin 7.3.1.
24.6.0
2025‑09‑08
Native mediation adapters can now implement NativeAdMapper.destroy() to get notified when a native ad is destroyed.
24.5.0
2025‑07‑24
Publishers with access to the feature now have placement ID support for all ad formats.
Fixed a crash with the error message Fatal Exception: java.util.ConcurrentModificationException.
24.4.0
2025‑06‑09
Added several new APIs for ad preloading and deprecated existing ones. Ad preloading remains a limited alpha feature.
24.3.0
2025‑05‑19
Updated User Messaging Platform SDK dependency to version 3.2.0.
24.2.0
2025‑04‑07
Bug fixes and performance improvements.
24.1.0
2025‑03‑12
Minimum Kotlin version is now 2.1.0.
Bug fixes and performance improvements.
The play-services-ads-lite is moving to a reduced release cadence, and is not distributed with this release. For more information, see the Lite SDK documentation.
24.0.0
2025‑02‑24
Breaking changes:
Increased the minimum Android API level to 23.
Removed all APIs related to the interscroller ad format.
Removed deprecated AppOpenAd orientation APIs.
Removed SearchAdView and DynamicHeightSearchAdRequest classes.
Updated User Messaging Platform SDK dependency to version 3.1.0.
Added MediationRewardedAdCallback.onUserEarnedReward() and deprecated MediationRewardedAdCallback.onUserEarnedReward(RewardItem). Mediation adapters should update to use the new method.
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.
23.6.0
2024‑12‑03
Deprecated all APIs related to the interscroller ad format. For example, AdSize.getCurrentOrientationInterscrollerAdSize().
23.5.0
2024‑10‑29
Updated ad load failure logcat messages introduced in 23.4.0 release from error to info level.
Improved monetization of personalized ads in Custom Tabs for WebView API for ads.
23.4.0
2024‑09‑30
Ad load failures now invoke a logcat message that says ad failed to load in the failure's stack trace. The stack trace logs this message as an error, but doesn't imply a crash. Consult Debug common error logging messages to interpret common ad loading failures. If you see a recurring error related to ad serving that’s not documented, share the stack trace with Google Mobile Ads SDK support.
Native Mediation adapters: Deprecated loadNativeAd and loadRtbNativeAd() in favor of loadNativeAdMapper() and loadRtbNativeAdMapper(). Adapters should migrate to using these new load methods and related objects.
Removed the deprecated MobileAds.enableSameAppKey() API and updated the alternative method MobileAds.putPublisherFirstPartyIdEnabled() to return a boolean about whether the control persistence is successful or not.
Native Ads:
Removed AdLoader.forUnifiedNativeAd(). Use AdLoader.forNativeAd() instead.
Removed AdLoader.forCustomTemplateAd(). Use AdLoader.forCustomFormatAd() instead.
Removed AdFormat.UNKNOWN with no replacement. Apps using QueryInfo.generate() must pass an ad format.
AdManagerAdRequest.Builder methods inherited from its parent can now be chained together to build an object from a single call. This required a change in the inheritance structure such that AdManagerAdRequest.Builder no longer inherits from AdRequest.Builder.
Mediation: The return value for Adapter.getVersionInfo() and Adapter.getSDKVersionInfo() changed from type com.google.android.gms.ads.mediation.VersionInfo to com.google.android.gms.ads.VersionInfo. We recommend adapters return the new type since com.google.android.gms.ads.mediation.VersionInfo is deprecated.
21.5.0
2023‑01‑31
App Open Ads: Deprecated AppOpenAd.load() methods that accept an orientation input parameter and added new methods that don't take an orientation input. The new methods determine the orientation at request time, matching the behavior of other full-screen formats.
Mediation: Added mediation support for app open ads.
Removed the RECEIVE_BOOT_COMPLETED permission from the androidx.work:work-runtime dependency. If you're using Gradle versions earlier than 7.2.0 and require permission for your app, you may need to declare permission explicitly in your Android manifest.
21.4.0
2022‑12‑14
The Ad Manager App ID is now required for all Ad Manager apps and requires the ca-app-pub-################~########## format. See Configure your app for more details.
Ad inspector: Extend SDK support for showing banner ads and native ads requested through the ad inspector UI.
Added support for Publisher first-party ID (formerly known as same app key) to help you deliver more relevant and personalized ads by using data collected from your apps.
Official release version for QueryInfo generation.
21.3.0
2022‑10‑10
Ad inspector: Added SDK support for requesting and showing ads requested through the ad inspector UI.
Google Mobile Ads SDK will disable transmission of the Android advertising identifier (AAID) when the RequestConfiguration.Builder.setTagForChildDirectedTreatment() is called with TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE (see child-directed setting), or RequestConfiguration.Builder.setTagForUnderAgeOfConsent() is called with TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE (see users under the age of consent setting).
20.5.0
2021‑11‑18
Added support for Android 12 devices for apps targeting API 31.
Added support for app set ID for use cases such as reporting and fraud prevention.
20.4.0
2021‑09‑22
Starting from version 20.4.0, Google Mobile Ads 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.
Added the onAdClicked() callback to FullScreenContentCallback.
Enabled the onAdClicked() callback in the AdListener class for native ads format.
Added the onAdImpression() callback to FullScreenContentCallback.
Deprecated the InstreamAd format.
Mediation Adapters:
Deprecated MediationBannerAdapter, MediationInterstitialAdapter, and MediationNativeAdapter. New adapters should implement the Adapter class to load these formats.
Bidding adapters can now implement distinct load methods in the Adapter class for RTB-specific formats.
19.7.0
2021‑01‑20
Major changes to:
InterstitialAd
RewardedAd
NativeAd
AppOpenAd
Deprecated CustomRenderedAd.
Classes and packages with the prefix Publisher have been deprecated and replaced with the prefix AdManager.
Last minor release before version 20.0.0. All APIs marked as deprecated in this and prior releases will be removed in version 20.0.0. See version 20.0.0 migration guide for more details.
19.6.0
2020‑12‑04
Deprecated the onAdLeftApplication() AdListener method.
Fixed a bug where users on Android 11 devices are asked to select a browser when clicking an ad.
19.5.0
2020‑10‑20
Banner Ads: The onAdImpression() AdListener method is now called for banner ads.
Added the setHttpTimeoutMillis() method to customize the timeout for HTTPS calls made by the Google Mobile Ads SDK.
19.4.0
2020‑09‑10
Added support for Android 11 devices for apps targeting API 30.
App Open Ads: Changed the AppOpenAd format to operate more like a full screen format than a banner view. Added getResponseInfo() and show() methods to AppOpenAd. Deprecated AppOpenAdView and AppOpenAdPresentationCallback classes.
Mediation: Mediation status reporting is now available. Use ResponseInfo.getAdapterResponses() to get response information for each ad network that participated in an ad request.
Legacy Rewarded Ads: Deprecated RewardedVideoAd.
Fixed a bug where MobileAds.initialize() only calls back completion handler once. Every call to MobileAds.initialize() now invokes the completion callback.
Rewarded Ads: Added onRewardedAdFailedToShow(AdError) and deprecated onRewardedAdFailedToShow(int).
Rewarded Mediation: Added the MEDIATION_SHOW_ERROR presentation error code. All presentation errors related to mediated ads now return MEDIATION_SHOW_ERROR for AdError.getCode() and a NonNull AdError.getCause() representing the underlying mediation error.
19.2.0
2020‑06‑18
Added the RewardedInterstitialAd format. This feature is in private beta. Reach out to your account manager to request access.
Native Ads: Added Native Ad Validator UI on test requests to help you catch and fix native ads policy violations.
Added APIs for the InstreamAd ad format. This feature is in private beta. Reach out to your account manager to request access.
Adaptive Banner: Changed adaptive banner creation methods in the AdSize class. For example, renamed AdSize.getCurrentOrientationBannerAdSizeWithWidth() to AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize().
Mediation: Google Mobile Ads SDK now catches exceptions thrown by mediation adapters.
Rewarded Mediation: Fixed a bug where if multiple mediated rewarded ads are cached, only one would show.
Added the setTestDeviceIds() method to enable setting test devices once for all ad requests.
18.2.0
2019‑08‑29
Added APIs for the AppOpenAd format. This feature is in private beta. Reach out to your account manager to request access.
Mediation: Adapter exceptions whose stack traces include Google Mobile Ads SDK are now caught and handled by the Google Mobile Ads SDK.
18.1.0
2019‑07‑09
Official release for App Measurement support.
App measurement initializes and sends data on app start by default. Added an option to delay app measurement until Google Mobile Ads SDK is explicitly called.
Native ads: Added UnifiedNativeAd.getMediaContent(). Publishers who only load images using URLs can now get the ad's media content, supply an image to it, and call MediaView.setMediaContent() to populate image data through MediaView for non-video ads.
Added dependencies on play-services-measurement and play-services-measurement-sdk. Apps no longer need to add these dependencies explicitly.
18.0.0
2019‑06‑17
Migration from Android Support Libraries to Jetpack (AndroidX) Libraries. Refer to the Google Play services release notes for more information.
To avoid a crash that occurs on first launch after app install from the play store, this release requires publishers to declare additional dependencies in their build.gradle:
Fix for ANR originating at android.media.AudioManager.getStreamVolume.
17.2.0
2019‑03‑11
Rewarded Video: Added a new set of rewarded APIs (see the rewarded package) that enable you to load multiple rewarded ads concurrently.
Mediation: Added a new set of mediation adapter APIs that support initialization. Adapters implementing the new API implement the Adapter class.
Publishers using firebase-analytics along with version 17.2.0 of any of the ads library (e.g., com.google.android.gms:play-services-ads:17.2.0) must use com.google.firebase:firebase-analytics:16.3.0.
17.1.3
2019‑01‑31
Publishers using firebase-analytics along with version 17.1.3 of any of the ads library (e.g., com.google.android.gms:play-services-ads:17.1.3) must use com.google.firebase:firebase-analytics:16.3.0.
17.1.2
2018‑12‑03
Publishers using firebase-analytics along with version 17.1.2 of any of the ads library (e.g., com.google.android.gms:play-services-ads:17.1.2) must use com.google.firebase:firebase-analytics:16.0.6.
17.1.1
2018‑11‑12
Fixed a bug where certain combinations of play-services-ads & firebase-analytics (e.g., ads:17.1.0 & analytics:16.0.5) resulted in a duplicate entry compiler error. Publishers using firebase-analytics along with version 17.1.1 of any of the ads library (e.g., com.google.android.gms:play-services-ads:17.1.1) must use com.google.firebase:firebase-analytics:16.0.5.
Google AdMob publishers are required to specify a <meta-data> tag with key com.google.android.gms.ads.APPLICATION_ID in their AndroidManifest.xml. Refer to the Get Started guide for more details.
Native ads:NativeAppInstallAd, NativeContentAd, and associated APIs are deprecated in favor of UnifiedNativeAd. Refer to Native Ads Advanced Unified for further instructions on using the new APIs.
Native ads: Added the "Mute this Ad" feature.
Native ads: The benign warning log: "UnconfirmedClickListener must not be null while ClickConfirmingView is set." has been removed.
Rewarded Ads: Added the setAdMetadataListener method on RewardedVideoAd to listen for ad metadata changes.
Rewarded ads: Calling destroy() will null out the listener.
Fixed a bug where onRewardedVideoCompleted() wasn't firing on emulators.
16.0.0
2018‑10‑02
No ads changes. Refer to Google play services release notes for more information.
15.0.0
2018‑04‑12
MRAID v3 beta version.
Native ads: Added the Unified Native Ad API. This combines NativeAppInstallAds and NativeContentAds into one new type: UnifiedNativeAd.
Note: When using native ads, there is a benign warning that shows up in the logs when the native ad is clicked: "UnconfirmedClickListener must not be null while ClickConfirmingView is set." This warning can be ignored, and it will be removed in the next release.
12.0.1
2018‑03‑28
No ads changes. See the Google play services release notes for more details.
12.0.0
2018‑03‑20
Rewarded video: Added the onRewardedVideoCompleted() callback method to RewardedVideoAdListener.
Native mediation: Added the trackViews() method to NativeAdMapper, giving adapters access to View objects corresponding to individual native ad assets. Deprecated trackView() in favor of trackViews().
11.8.0
2017‑12‑18
Bug fixes and general improvements.
11.6.0
2017‑11‑07
Added the NativeAdViewHolder class and related methods in NativeAppInstallAd and NativeContentAd.
Deprecated AdLoader.getMediationAdapterClassName (publishers should instead use the methods of the same name in NativeAppInstallAd and NativeContentAd).
Test ads now show a label on top of the ad. See the testing guide for more details.
11.4.0
2017‑09‑19
Added getMediationAdapterClassName() methods to the NativeAppInstallAd and NativeContentAd classes. The method of the same name in AdLoader will be deprecated.
Added a new loadAd() method that takes in a PublisherAdRequest object to the RewardedVideoAd class.
11.2.0
2017‑08‑14
Added the loadAds() method to the AdLoader class, which allows apps to load multiple unique ads in a single request.
When you upgrade your app to version 11.2.0 or higher of the Google Mobile Ads SDK, your app's build.gradle must also be updated to specify a compileSdkVersion of at least 26 (Android O). This does not change the way your app runs. You won't be required to update targetSdkVersion.
Beginning with version 11.2.0, Google Mobile Ads SDK is available via Google's Maven repository. For more information, see the Google Play services release notes.
Removed the getInAppPurchaseListener() and setInAppPurchaseListener() methods from the AdView, InterstitialAd, and NativeExpressAdView classes. Also removed related in-app purchase classes.
Added the ability to enable immersive mode on full-screen ads by adding the setImmersiveMode() method to the PublisherInterstitialAd and RewardedVideoAd classes.
Added the OnPublisherAdViewLoadedListener interface, PublisherAdViewOptions class, and PublisherAdViewOptions.Builder class for use with AdLoader for native-plus-banner requests.
Added the optional OnImmersiveModeUpdatedListener interface that mediation adapters can implement to be informed of immersive mode updates.
Added the getMediationAdapterClassName() method to the RewardedVideoAd class.
Added keep rules to automatically preserve mediation adapter class names when using ProGuard.
10.2.0
2017‑2‑15
Google Play services 10.2.x is the first release that no longer includes full support for Android version 2.3.x (Gingerbread). Apps developed using SDK release 10.2.x and later require a minimum Android API level of 14 and cannot be installed on devices that run an API level lower than 14. To learn more about your options, including building multiple APKs to extend your app's support for Android Gingerbread, see the Android Developers Blog.
Added support for video assets for Native Advanced content and custom template ads.
Added the getVideoController(), setVideoOptions(), and getVideoOptions() methods to the PublisherAdView class.
Added the AdChoicesView class.
Added the getAdChoicesContent() and setAdChoicesContent() methods to the NativeAdMapper class.
Added the InitializableMediationRewardedVideoAdAdapter interface for rewarded video mediation adapters that want to opt in to early initialization before an ad request is made.
Added support for in-app preview and troubleshooting in Google Ad Manager.
10.0.1
2016‑11‑21
Bug fixes and general improvements.
9.8.0
2016‑10‑24
MobileAds.Initialize(Context) has been un-deprecated. Google Ad Manager publishers should call this method when initializing their apps. AdMob publishers should still use MobileAds.Initialize(Context, String) and pass their application code.
9.6.0
2016‑09‑22
Added the MediaView class for Native Ads Advanced video ads.
Added an openDebugMenu() method to the MobileAds class for creative preview and troubleshooting of Ad Manager ad units.
For this release only, apps that use ProGuard to post-process their application need to add the following keep option to their ProGuard configuration file: -keep public @com.google.android.gms.common.util.DynamiteApi class * { *; }
8.4.0
2015‑12‑18
Added a public method, MobileAds.setAppVolume(), to inform Google Mobile Ads SDK of an app's current volume level.
Implemented bug fixes and improvements.
8.3.0
2015‑11‑6
Added support for rewarded video ads.
Added an isLoading() method to PublisherAdView and PublisherInterstitialAd to check if an ad request is in progress.
Added the setIsDesignedForFamilies() method to AdRequest.Builder and PublisherAdRequest.Builder.
Added the setRequestAgent() method to AdRequest.Builder and PublisherAdRequest.Builder. This method should be used to denote ad request origins by third parties that mediate to Google Mobile Ads SDK.
6.5.87
2014‑12‑08
Introduced split JAR architecture--Android Studio developers can now just include the ads portion of Google Play services by depending on com.google.android.gms:play‑services‑ads:6.+. Note: Apps that create banner ads in XML must still reference the entire library com.google.android.gms:play‑services:6.+.
Various bug fixes.
6.1
2014‑10‑08
Added a getLocation() method to com.google.android.gms.ads.MediationAdRequest.
Added a content description to the interstitial close button for accessibility.
Removed logging of "Google Play resources not found" when the library project is linked correctly.
Added getMediationAdapterClassName() to AdView to get the class name of the ad network mediation adapter showing an ad.
17.0.0
2018‑10‑05
Added new APIs to implement Custom Events.
Added default purchase flow for In-App Purchase, using the Google Play Billing API.
4.4
2014‑05‑07
Added new Mediation Adapter APIs.
Added new 320x100 LARGE_BANNER ad format for both phones and tablets.
Added new interstitial format for In-App Purchase. Set an InAppPurchaseListener on InterstitialAd to listen for in-app purchase events.
Bug fix for SecurityException crash due to reading gservices without permission.
4.3
2014‑03‑17
InterstitialAd now functions if passed an application context.
Added the setContentUrl() method to PublisherAdRequest.Builder.
Fix for exception when Service not registered.
4.2
2014‑02‑03
Various bug fixes.
4.1
2014‑01‑16
Added support for Ad Manager and Search Ads for Mobile Apps.
AdRequest.Builder now has a setLocation() method.
Fixed a crash that occurred if an interstitial ad was requested but AdActivity wasn't specified in the manifest.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-12-22 UTC."],[],[]]