Release Notes

Version Release Date Notes
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 Mobile Ads SDK support.
  • Added addCustomTargeting() methods to AdRequest.
23.3.0 2024‑08‑12
  • Updated User Messaging Platform SDK dependency to version 3.0.0.
23.2.0 2024‑06‑27
23.1.0 2024‑05‑09
  • Requires a minimum compileSdkVersion of 34.
  • 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.
23.0.0 2024‑03‑07
  • Breaking changes:
    • Increased the minimum Android API level to 21.
    • To continue collecting user metrics in AdMob, link your AdMob app to Firebase and integrate the Google Analytics for Firebase SDK into your app.
    • 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.
  • Adds MobileAds.registerCustomTabsSession() to improve monetization for ads in Custom Tabs. See Optimize Custom Tabs for more information.
  • Updated User Messaging Platform SDK dependency to version 2.2.0.
22.6.0 2023‑12‑06
22.5.0 2023‑10‑30
22.4.0 2023‑09‑13
  • Requires a minimum compileSdkVersion of 33.
  • Ad inspector: Added SDK support for requesting and showing ads requested through Ad Inspector UI.
  • Added a new QueryInfo.generate() method that takes an ad unit ID.
  • Enables initial testing of the Attribution Reporting Beta and Topics Beta privacy-preserving APIs. See the Ad Manager Privacy Sandbox on Android guide for more information.
22.3.0 2023‑08‑22
22.2.0 2023‑07‑05
22.1.0 2023‑05‑18
  • Ad inspector: Enabled ability to trigger ad requests from the ad inspector UI on devices that don't have Google Play services.
22.0.0 2023‑03‑29
  • Breaking changes:
  • Added AdRequest.getRequestAgent().
  • 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
21.2.0 2022‑09‑06
  • Ad inspector: Added SDK support for exporting ad request logs through Android Sharesheet.
21.1.0 2022‑07‑14
  • Added support for ad monetization within WebView. See Integrate the WebView API for ads for more details.
  • Added getResponseExtras() to ResponseInfo which may return extra information about the ad response.
21.0.0 2022‑05‑25
  • Breaking changes:
    • Google Mobile Ads SDK now requires all apps to be on a minimum Android API level 19 to run.
    • Added @NonNull annotations in every method that previously did not explicitly define nullability.
    • Removed AdRequest.Builder.addNetworkExtras() method. Use AdRequest.Builder.addNetworkExtrasBundle() instead.
    • Removed the following location methods:
      • setLocation() on AdRequest.Builder
      • getLocation() on AdRequest
      • getLocation() on MediationAdConfiguration
  • Added manifest flags to optimize initialization and ad loading, see Optimize initialization and ad loading guide for more details.
  • Deprecated MobileAds.getVersionString(). Use MobileAds.getVersion() instead.
  • Added the getLoadedAdapterResponseInfo() method in ResponseInfo.
  • Added the following methods in AdapterResponseInfo:
    • getAdSourceName()
    • getAdSourceId()
    • getAdSourceInstanceName()
    • getAdSourceInstanceId()
  • Added support for custom events in ad inspector.
20.6.0 2022‑02‑22
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 ad format.
20.3.0 2021‑08‑23
20.2.0 2021‑06‑08
  • Added ad inspector (Beta) support for Google Ad Manager publishers.
20.1.0 2021‑04‑29
20.0.0 2021‑04‑05
  • Breaking changes:
    • Removed legacy Interstitial API.
    • Removed legacy RewardedVideoAd API.
    • Removed classes prefixed with Publisher (e.g.: PublisherAdView).
    • Removed CustomRenderedAd.
    • Removed InstreamAd.
    • Removed SearchAdRequest.
    • Removed AdListener.onAdLeftApplication().
    • Removed NativeAppInstallAd, NativeContentAd, and UnifiedNativeAd. There is now one native ad format named NativeAd.
    • RewardedAd is now an abstract class. Use the RewardedAd.load() static method to load a rewarded ad.
  • Deprecated AdSize.SMART_BANNER in favor of adaptive banner ads.
  • Added explicit nullability annotations on all public APIs.
19.8.0 2021‑03‑15
  • Added a dependency on the User Messaging Platform SDK.
  • 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
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.
  • Added the RewardedInterstitialAd format, currently in private beta.
  • Fixed a bug where MobileAds.initialize() only calls back completion handler once. Every call to MobileAds.initialize() now invokes the completion callback.
19.3.0 2020‑07‑20
  • Added getDomain() and getCause() methods to AdError.
  • Added new load failure callbacks to all ad formats that return a LoadAdError. E.g., onAdFailedToLoad(LoadAdError).
  • Deprecated load failure callbacks that return an int. E.g., onAdFailedToLoad(int).
  • 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
  • Native Ads: Added a Native Validator UI on test requests to help you catch and fix native policy violations.
  • Added the MobileAds.disableMediationAdapterInitialization() method. Call this method prior to initializing the Google Mobile Ads SDK to disable mediation adapter initialization.
19.1.0 2020‑04‑16
19.0.1 2020‑03‑18
  • Native Ads: Fixed memory leak that occurred when using NativeCustomTemplateAd.
19.0.0 2020‑03‑02
  • Added support for reading consent parameters from IAB TCF v2.0 and the IAB us_privacy string.
  • Added setNeighboringContentUrls() and getNeighboringContentUrls() to AdRequest.
  • Added the ResponseInfo class which provides information about a loaded ad.
  • For all ad formats, deprecated getMediationAdapterClassName() in favor of getResponseInfo().
  • Native Ads: Added getDuration() and getCurrentTime() methods to MediaContent.
  • Native Mediation: Added getDuration() and getCurrentTime() methods to UnifiedNativeAdMapper for adapters to implement.
  • Deprecated AdRequest.Builder.addTestDevice(). Use RequestConfiguration.Builder.setTestDeviceIds() instead.
18.3.0 2019‑11‑05
  • Added APIs for the InstreamAd ad format. This feature is currently 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: The 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 currently in private beta. Reach out to your account manager to request access.
18.1.1 2019‑07‑23
18.1.0 2019‑07‑09
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:
    com.google.android.gms:play-services-measurement:17.0.0
    com.google.android.gms:play-services-measurement-sdk:17.0.0
17.2.1 2019‑05‑21
  • 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.
17.1.0 2018‑11‑02
17.0.0 2018‑10‑05
  • Google Ad Manager publishers are required to specify a <meta-data> tag with key com.google.android.gms.ads.AD_MANAGER_APP 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.
  • Deprecated the following methods on AdRequest.Builder.
  • 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 an onVideoEnd() method to the MediationNativeListener class, hasVideoContent(), setHasVideoContent(), and setMediaView() methods to the NativeAdMapper class, and getAdVolume() and isAdMuted() methods to the NativeMediationAdRequest class to support native video mediation.
  • Removed the SearchAdRequest class.
11.2.2 2017‑09‑05
  • 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 will not be required to update targetSdkVersion.
  • Beginning with version 11.2.0, the Google Mobile Ads SDK is available via Google's Maven repository. For more information, see the Google Play services release notes.
11.0.0 2017‑06‑07
  • Added the onAdClicked() and onAdImpression() methods to the AdListener class. These methods are only invoked for native app install and native content ads.
  • Removed the getInAppPurchaseListener() and setInAppPurchaseListener() methods from the AdView, InterstitialAd, and NativeExpressAdView classes. Also removed related in-app purchase classes.
  • Added the OnVideoMute(), OnVideoPause(), OnVideoPlay() and OnVideoStart() methods to the VideoController.VideoLifecycleCallbacks class.
  • 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 running an API level below 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.
  • Added support for rewarded video custom events.
9.4.0 2016‑08‑01
  • Bug fixes and general improvements.
9.2.0 2016‑06‑27
  • Added the setAdChoicesPlacement() method to the NativeAdOptions.Builder class, which app publishers can now use to specify the location of their AdChoices in native ads.
  • Video ad playback has been improved with several bug fixes.
9.0.1 2016‑05‑26
  • Resolves a ProGuard issue introduced in 9.0.0. Publishers no longer need a keep option for com.google.android.gms.common.util.DynamiteApi.
9.0.0 2016‑05‑18
8.4.0 2015‑12‑18
  • Added a public method, MobileAds.setAppVolume(), to inform the 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 a destroy() method to NativeAdView.
8.1.0 2015‑09‑24 Various bug fixes.
7.8.0 2015‑08‑13
  • MRAID v2 official release version.
  • Added an isLoading() method to AdLoader, AdView, and InterstitialAd to check if an ad request is in progress.
  • Deprecated PublisherAdRequest.Builder#setManualImpressionsEnabled(). Use PublisherAdView#setManualImpressionsEnabled() instead.
7.5.0 2015‑05‑28
  • Added support for app install and content native ad formats across AdMob and Ad Manager.
  • Added support for custom native ad formats, available for Ad Manager reservations.
7.3.0 2015‑04‑28 Various bug fixes.
7.0.0 2015‑03‑19
  • Added addCustomTargeting() and addCategoryExclusion() methods to PublisherAdRequest.Builder.
  • Fixed an issue causing PublisherAdView.recordManualImpression() to record multiple impressions in Ad Manager when using manual impression counting.
  • Fixed an issue causing ads to render improperly when using the android:largestWidthLimitDp attribute on the <supports-screens> tag.
  • 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 the 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 currently showing an ad.
5.0 2014‑06‑25
  • 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.
4.0 2013‑10‑31
  • Google Mobile Ads APIs are now part of Google Play services.
  • Future updates to the Google Mobile Ads APIs get automatically pushed to devices through Google Play services.
  • Ad Manager and Search Ads for Mobile Apps not yet supported.