AI-generated Key Takeaways
-
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.
- 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:webkitdependency from 1.14.0 to 1.12.1 to maintain compatibility with Android Gradle plugin 7.3.1.
- Native mediation adapters can now implement
NativeAdMapper.destroy()to get notified when a native ad is destroyed.
- 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.
- Added several new APIs for ad preloading and deprecated existing ones. Ad preloading remains a limited alpha feature.
- Updated User Messaging Platform SDK dependency to version 3.2.0.
- Bug fixes and performance improvements.
- Minimum Kotlin version is now 2.1.0.
- Bug fixes and performance improvements.
- The
play-services-ads-liteis moving to a reduced release cadence, and is not distributed with this release. For more information, see the Lite SDK documentation.
- Breaking changes:
- Increased the minimum Android API level to 23.
- Removed all APIs related to the interscroller ad format.
- Removed deprecated
AppOpenAdorientation APIs. - Removed
SearchAdViewandDynamicHeightSearchAdRequestclasses.
- Updated User Messaging Platform SDK dependency to version 3.1.0.
- Optimize initialization and ad loading is now in general availability, and is enabled by default.
- Added
MediationRewardedAdCallback.onUserEarnedReward()and deprecatedMediationRewardedAdCallback.onUserEarnedReward(RewardItem). Mediation adapters should update to use the new method. - Removed the
android.adservices.AD_SERVICES_CONFIGproperty tag from the SDK's manifest file to prevent merge conflicts for apps that Configure API-specific Ad Services .
- Deprecated all APIs related to the interscroller ad format. For
example,
AdSize.getCurrentOrientationInterscrollerAdSize().
- 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.
- Ad load failures now invoke a logcat message that says
ad failed to loadin 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 . - Added
addCustomTargeting()methods toAdRequest.
- Updated User Messaging Platform SDK dependency to version 3.0.0.
- Added
AdView.isCollapsible()to indicate whether the last loaded banner is collapsible.
- Requires a minimum
compileSdkVersionof 34. - Native Mediation adapters
: Deprecated
loadNativeAdandloadRtbNativeAd()in favor ofloadNativeAdMapper()andloadRtbNativeAdMapper(). Adapters should migrate to using these new load methods and related objects.
- 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 methodMobileAds.putPublisherFirstPartyIdEnabled()to return a boolean about whether the control persistence is successful or not. -
Native Ads:- Removed
AdLoader.forUnifiedNativeAd(). UseAdLoader.forNativeAd()instead. - Removed
AdLoader.forCustomTemplateAd(). UseAdLoader.forCustomFormatAd()instead.
- Removed
- Removed
AdFormat.UNKNOWNwith no replacement. Apps usingQueryInfo.generate()must pass an ad format. -
AdManagerAdRequest.Buildermethods 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 thatAdManagerAdRequest.Builderno longer inherits fromAdRequest.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.
- Deprecated
MobileAds.setSameAppKeyEnabled()and renamed the method toMobileAds.putPublisherFirstPartyIdEnabled(). - Deprecated
AdFormat.UNKNOWNwith no replacement. Apps usingQueryInfo.generate()must pass an ad format.
- Updated User Messaging Platform SDK dependency to version 2.1.0.
- Added the
setPublisherPrivacyPersonalizationState()method for the Publisher Privacy Treatment API (Beta) .
- Requires a minimum
compileSdkVersionof33. - 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 AdMob Privacy Sandbox on Android guide for more information.
- Added support for creating adaptive sizes using
AdSize.FULL_WIDTHas the width. Previously, ad sizes created usingAdSize.FULL_WIDTHwould be treated asAdSize.SMART_BANNER.
- Custom events:
- Deprecated
AdRequest.Builder.addCustomEventExtrasBundle(). Extend Adapter and interact with the extra parameters throughAdRequest.Builder.addNetworkExtrasBundle()instead. - Deprecated
AdRequest.getCustomEventExtrasBundle(). Extend Adapter and interact with the extra parameters throughAdRequest.getNetworkExtrasBundle()instead.
- Deprecated
- Ad inspector: Enabled ability to trigger ad requests from the ad inspector UI on devices that don't have Google Play services.
- Breaking changes:
- Removed
NativeCustomFormatAd.getVideoController()andNativeCustomFormatAd.getVideoMediaView()in favor ofNativeCustomFormatAd.getMediaContent(). - Removed
MobileAds.getVersionString()in favor ofMobileAds.getVersion(). - Removed
AdRequest.Builder.setAdInfo()in favor ofAdRequest.Builder.setAdString(). -
AdManager.Builder.setAdString()now returns anAdRequest.Buildertype. - Removed
MediationRewardedVideoAdAdapterand associated APIs in favor ofAdapter.
- Removed
- Added
AdRequest.getRequestAgent(). - Mediation:
The return value for
Adapter.getVersionInfo()andAdapter.getSDKVersionInfo()changed from typecom.google.android.gms.ads.mediation.VersionInfotocom.google.android.gms.ads.VersionInfo. We recommend adapters return the new type sincecom.google.android.gms.ads.mediation.VersionInfois deprecated.
- 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_COMPLETEDpermission from theandroidx.work:work-runtimedependency. 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.
- 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
QueryInfogeneration.
- Ad inspector: Added SDK support for requesting and showing ads requested through the ad inspector UI.
- Native Ads:
- Added
getMediaContent()toMediaView.
- Added
- Custom Native Ads:
- Added
getMediaContent()toNativeCustomFormatAd. - Deprecated
getVideoMediaView(). Create your ownMediaViewand useNativeCustomFormatAd. getMediaContent()instead. - Deprecated
getVideoController(). UseNativeCustomFormatAd.getMediaContent(). getVideoController()instead.
- Added
- Ad inspector: Added SDK support for exporting ad request logs through Android Sharesheet.
- Added support for ad monetization within
WebView. See Integrate the WebView API for ads for more details. - Added
getResponseExtras()toResponseInfowhich may return extra information about the ad response.
- Breaking changes:
- Google Mobile Ads SDK now requires all apps to be on a minimum Android API level 19 to run.
- Added
@NonNullannotations in every method that previously did not explicitly define nullability. - Removed
AdRequest.Builder.addNetworkExtras()method. UseAdRequest.Builder.addNetworkExtrasBundle()instead. - Removed the following location methods:
-
setLocation()onAdRequest.Builder -
getLocation()onAdRequest -
getLocation()onMediationAdConfiguration
-
- Added manifest flags to optimize initialization and ad loading, see Optimize initialization and ad loading guide for more details.
- Deprecated
MobileAds.getVersionString(). UseMobileAds.getVersion()instead. - Added the
getLoadedAdapterResponseInfo()method inResponseInfo. - Added the following methods in
AdapterResponseInfo:-
getAdSourceName() -
getAdSourceId() -
getAdSourceInstanceName() -
getAdSourceInstanceId()
-
- Added support for custom events in ad inspector.
- Deprecated all the custom event interfaces
. Use the
Adapterclass andMediationAdLoadCallbackinterface instead. - Added support for the SharedPreferences
gad_has_consent_for_cookies. Google Mobile Ads SDK will enable limited ads (LTD) when thegad_has_consent_for_cookiespreference is set to 0. See setting consent for cookies for more details. - Google Mobile Ads SDK will disable transmission of the Android
advertising identifier (AAID) when the
RequestConfiguration.Builder.setTagForChildDirectedTreatment()is called withTAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE(see child-directed setting ), orRequestConfiguration.Builder.setTagForUnderAgeOfConsent()is called withTAG_FOR_UNDER_AGE_OF_CONSENT_TRUE(see users under the age of consent setting ).
- 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.
- Starting from version 20.4.0, Google Mobile Ads SDK includes the
com.google.android.gms.permission.AD_IDpermission in the SDK's manifest that is automatically merged into the app manifest by Android build tools. To learn more about theAD_IDpermission declaration, including how to disable it, refer to this Play Console Help article . - Added the
onAdClicked()callback toFullScreenContentCallback. - Enabled the
onAdClicked()callback in theAdListenerclass for native ads format.
- Deprecated the
AdRequest.Builder.addNetworkExtras()method. UseAdRequest.Builder.addNetworkExtrasBundle()instead. - Native ads
:
AdLoader.Builder.forCustomFormatAd()now accepts a nullableOnCustomClickListener. - Mediation adapters
: Fixed nullability annotation for the
mediationExtrasparameter in all mediation adapter load calls.
- Added ad inspector (Beta) support for Google Ad Manager publishers.
- Adaptive Banner
: Added
AdSize.getInlineAdaptiveBannerAdSize()to request inline adaptive banner ads with a maximum height. - Added
AdError.toString()for easier logging.
- Breaking changes:
- Removed legacy
InterstitialAPI. - Removed legacy
RewardedVideoAdAPI. - Removed classes prefixed with
Publisher(e.g.:PublisherAdView). - Removed
CustomRenderedAd. - Removed
InstreamAd. - Removed
SearchAdRequest. - Removed
AdListener.onAdLeftApplication(). - Removed
NativeAppInstallAd,NativeContentAd, andUnifiedNativeAd. There is now one native ad format namedNativeAd. -
RewardedAdis now an abstract class. Use theRewardedAd.load()static method to load a rewarded ad.
- Removed legacy
- Added ad inspector (Beta).
- Deprecated
AdSize.SMART_BANNERin favor of adaptive banner ads . - Added explicit nullability annotations on all public APIs.
- Added a dependency on the User Messaging Platform SDK .
- Added the
onAdImpression()callback toFullScreenContentCallback. - Deprecated the
InstreamAdformat. - Mediation Adapters:
- Major changes to:
-
InterstitialAd -
RewardedAd -
NativeAd -
AppOpenAd
-
- Deprecated
CustomRenderedAd. - Classes and packages with the prefix
Publisherhave been deprecated and replaced with the prefixAdManager. - 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.
- Deprecated the
onAdLeftApplication() AdListenermethod. - Fixed a bug where users on Android 11 devices are asked to select a browser when clicking an ad.
- Banner Ads:
The
onAdImpression() AdListenermethod is now called for banner ads. - Added the
setHttpTimeoutMillis()method to customize the timeout for HTTPS calls made by the Google Mobile Ads SDK.
- Added support for Android 11 devices for apps targeting API 30.
- App Open Ads:
Changed the
AppOpenAdformat to operate more like a full screen format than a banner view. AddedgetResponseInfo()andshow()methods toAppOpenAd. DeprecatedAppOpenAdViewandAppOpenAdPresentationCallbackclasses. - 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 toMobileAds.initialize()now invokes the completion callback.
- Added
getDomain()andgetCause()methods toAdError. - 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 deprecatedonRewardedAdFailedToShow(int). - Rewarded Mediation:
Added the
MEDIATION_SHOW_ERRORpresentation error code. All presentation errors related to mediated ads now returnMEDIATION_SHOW_ERRORforAdError.getCode()and a NonNullAdError.getCause()representing the underlying mediation error.
- Added the
RewardedInterstitialAdformat. 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 the
MobileAds.disableMediationAdapterInitialization()method. Call this method prior to initializing Google Mobile Ads SDK to disable mediation adapter initialization.
- Deprecated
MobileAds.initialize(Context, String)in favor ofMobileAds.initialize(Context, OnInitializationCompleteListener). -
AdRequest.isTestDevice()now returnstruefor test devices set throughMobileAds.setRequestConfiguration(). - Fixed NullPointerException crash in
MobileAds.initialize()that occurred on some devices on apps using the Lite SDK .
- Native Ads:
Fixed memory leak that occurred when using
NativeCustomTemplateAd.
- Added support for reading consent parameters from
IAB TCF v2.0 and the IAB
us_privacystring. - Added
setNeighboringContentUrls()andgetNeighboringContentUrls()toAdRequest. - Added the
ResponseInfoclass which provides information about a loaded ad. - For all ad formats, deprecated
getMediationAdapterClassName()in favor ofgetResponseInfo(). - Native Ads:
Added
getDuration()andgetCurrentTime()methods toMediaContent. - Native Mediation:
Added
getDuration()andgetCurrentTime()methods toUnifiedNativeAdMapperfor adapters to implement. - Deprecated
AdRequest.Builder.addTestDevice(). UseRequestConfiguration.Builder.setTestDeviceIds()instead.
- Added APIs for the
InstreamAdad 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
AdSizeclass. For example, renamedAdSize.getCurrentOrientationBannerAdSizeWithWidth()toAdSize.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.
- Added APIs for the
AppOpenAdformat. This feature is in private beta. Reach out to your account manager to request access.
- Mediation
: Adapters are now initialized when apps call
MobileAds.initialize(Context, OnInitializationCompleteListener). - Mediation : Adapter exceptions whose stack traces include Google Mobile Ads SDK are now caught and handled by the Google Mobile Ads SDK.
- 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.
- Added a new initialization method,
MobileAds.initialize(Context, OnInitializationCompleteListener), that notifies you when Google Mobile Ads SDK and all configured mediation adapters have completed initialization. - Added
MobileAds.getInitializationStatus()to provide initialization status of all ad networks configured for your app. - Added
MobileAds.getRequestConfiguration(). Targeting parameters set on this configuration object are used for all ad requests. - Native ads
: Added the
NativeAdOptions.Builder.setMediaAspectRatio()method to request a specific aspect ratio for a native ad's media asset. This option takes precedence over the now deprecatedsetImageOrientation()method. - Native ads
: For non-video ads, the MediaView's image scale type
can now be set using
MediaView.setImageScaleType(). - 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 callMediaView.setMediaContent()to populate image data throughMediaViewfor non-video ads. - Native ads Mediation
: Adapters can now provide aspect ratio using
UnifiedNativeAdMapper.setMediaContentAspectRatio(). - Added dependencies on
play-services-measurementandplay-services-measurement-sdk. Apps no longer need to add these dependencies explicitly.
- 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
- Fix for ANR originating at
android.media.AudioManager.getStreamVolume.
- 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
Adapterclass. - Publishers using
firebase-analyticsalong with version17.2.0of any of the ads library (e.g.,com.google.android.gms:play-services-ads:17.2.0) must usecom.google.firebase:firebase-analytics:16.3.0.
- Publishers using
firebase-analyticsalong with version17.1.3of any of the ads library (e.g.,com.google.android.gms:play-services-ads:17.1.3) must usecom.google.firebase:firebase-analytics:16.3.0.
- Publishers using
firebase-analyticsalong with version17.1.2of any of the ads library (e.g.,com.google.android.gms:play-services-ads:17.1.2) must usecom.google.firebase:firebase-analytics:16.0.6.
- Fixed a bug where certain combinations of
play-services-ads&firebase-analytics(e.g.,ads:17.1.0&analytics:16.0.5) resulted in aduplicate entrycompiler error. Publishers usingfirebase-analyticsalong with version17.1.1of any of the ads library (e.g.,com.google.android.gms:play-services-ads:17.1.1) must usecom.google.firebase:firebase-analytics:16.0.5.
- Added the
setMaxAdContentRating()andsetTagForUnderAgeOfConsent()methods toAdRequest.Builder. - Added the following constants to use with
AdRequest.Builder.setMaxAdContentRating()andAdRequest.Builder.setTagForUnderAgeOfConsent():-
MAX_AD_CONTENT_RATING_G -
MAX_AD_CONTENT_RATING_PG -
MAX_AD_CONTENT_RATING_T -
MAX_AD_CONTENT_RATING_MA -
TAG_FOR_UNDER_AGE_OF_CONSENT_FALSE -
TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE -
TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED
-
- Google AdMob publishers are required to specify a
<meta-data>tag with keycom.google.android.gms.ads.APPLICATION_IDin their AndroidManifest.xml. Refer to the Get Started guide for more details. - Native ads:
NativeAppInstallAd,NativeContentAd, and associated APIs are deprecated in favor ofUnifiedNativeAd. 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
setAdMetadataListenermethod onRewardedVideoAdto 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.
- MRAID v3 beta version.
- Native ads:
Added the Unified Native Ad API. This combines
NativeAppInstallAdsandNativeContentAdsinto 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.
- Rewarded video: Added the
onRewardedVideoCompleted()callback method toRewardedVideoAdListener. - Native mediation: Added the
trackViews()method toNativeAdMapper, giving adapters access toViewobjects corresponding to individual native ad assets. DeprecatedtrackView()in favor oftrackViews().
- Bug fixes and general improvements.
- Added the
NativeAdViewHolderclass and related methods inNativeAppInstallAdandNativeContentAd. - Deprecated
AdLoader.getMediationAdapterClassName(publishers should instead use the methods of the same name inNativeAppInstallAdandNativeContentAd). - Test ads now show a label on top of the ad. See the testing guide for more details.
- Added
getMediationAdapterClassName()methods to theNativeAppInstallAdandNativeContentAdclasses. The method of the same name inAdLoaderwill be deprecated. - Added an
onVideoEnd()method to theMediationNativeListenerclass,hasVideoContent(),setHasVideoContent(), andsetMediaView()methods to theNativeAdMapperclass, andgetAdVolume()andisAdMuted()methods to theNativeMediationAdRequestclass to support native video mediation. - Removed the
SearchAdRequestclass.
- Added a new
loadAd()method that takes in aPublisherAdRequestobject to theRewardedVideoAdclass.
- Added the
loadAds()method to theAdLoaderclass, 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.gradlemust also be updated to specify acompileSdkVersionof at least26(Android O). This does not change the way your app runs. You won't be required to updatetargetSdkVersion. - 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 .
- Added the
onAdClicked()andonAdImpression()methods to theAdListenerclass. These methods are only invoked for native app install and native content ads. - Removed the
getInAppPurchaseListener()andsetInAppPurchaseListener()methods from theAdView,InterstitialAd, andNativeExpressAdViewclasses. Also removed related in-app purchase classes. - Added the
OnVideoMute(),OnVideoPause(),OnVideoPlay()andOnVideoStart()methods to theVideoController.VideoLifecycleCallbacksclass. - Added the ability to enable immersive mode on full-screen ads by adding the
setImmersiveMode()method to thePublisherInterstitialAdandRewardedVideoAdclasses. - Added the
OnPublisherAdViewLoadedListenerinterface,PublisherAdViewOptionsclass, andPublisherAdViewOptions.Builderclass for use withAdLoaderfor native-plus-banner requests. - Added the optional
OnImmersiveModeUpdatedListenerinterface that mediation adapters can implement to be informed of immersive mode updates. - Added the
getMediationAdapterClassName()method to theRewardedVideoAdclass. - Added
keeprules to automatically preserve mediation adapter class names when using ProGuard .
- 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(), andgetVideoOptions()methods to thePublisherAdViewclass. - Added the
AdChoicesViewclass. - Added the
getAdChoicesContent()andsetAdChoicesContent()methods to theNativeAdMapperclass. - Added the
InitializableMediationRewardedVideoAdAdapterinterface 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.
- Bug fixes and general improvements.
-
MobileAds.Initialize(Context)has been un-deprecated. Google Ad Manager publishers should call this method when initializing their apps. AdMob publishers should still useMobileAds.Initialize(Context, String)and pass their application code.
- Added the
MediaViewclass for Native Ads Advanced video ads. - Added an
openDebugMenu()method to theMobileAdsclass for creative preview and troubleshooting of Ad Manager ad units. - Added support for rewarded video custom events.
- Bug fixes and general improvements.
- Added the
setAdChoicesPlacement()method to theNativeAdOptions.Builderclass, which app publishers can now use to specify the location of theirAdChoicesin native ads. - Video ad playback has been improved with several bug fixes.
- Resolves a ProGuard issue introduced in 9.0.0.
Publishers no longer need a
keepoption forcom.google.android.gms.common.util.DynamiteApi.
- Added auto-population of location information for apps that explicitly grant the location permission.
- Added support for Rewarded Video mediation custom events.
- Added video options for Native Express ads.
- Updated Custom Search Ads API.
- Added
setAppMuted()method. - The
MobileAds.initialize(android.content.Context, java.lang.String)method is no longer deprecated. - The
MobileAds.initialize(android.content.Context)method is now deprecated. - Added the
MediationNativeListener.onAdImpression()method for reporting impressions in mediation adapters. - For this release only
, apps that use ProGuard to post-process their application
need to add the following
keepoption to their ProGuard configuration file:-keep public @com.google.android.gms.common.util.DynamiteApi class * { *; }
- Added a public method,
MobileAds.setAppVolume(), to inform Google Mobile Ads SDK of an app's current volume level. - Implemented bug fixes and improvements.
- Added support for rewarded video ads.
- Added an
isLoading()method toPublisherAdViewandPublisherInterstitialAdto check if an ad request is in progress. - Added the
setIsDesignedForFamilies()method toAdRequest.BuilderandPublisherAdRequest.Builder. - Added a
destroy()method toNativeAdView.
- MRAID v2 official release version.
- Added an
isLoading()method toAdLoader,AdView, andInterstitialAdto check if an ad request is in progress. - Deprecated
PublisherAdRequest.Builder#setManualImpressionsEnabled(). UsePublisherAdView#setManualImpressionsEnabled()instead.
- 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.
- Added
addCustomTargeting()andaddCategoryExclusion()methods toPublisherAdRequest.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:largestWidthLimitDpattribute on the<supports-screens>tag. - Added the
setRequestAgent()method toAdRequest.BuilderandPublisherAdRequest.Builder. This method should be used to denote ad request origins by third parties that mediate to Google Mobile Ads SDK.
- 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 librarycom.google.android.gms: play‑services :6.+. - Various bug fixes.
- Added a
getLocation()method tocom.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()toAdViewto get the class name of the ad network mediation adapter showing an ad.
- Added new APIs to implement Custom Events.
- Added default purchase flow for In-App Purchase, using the Google Play Billing API.
- Added new Mediation Adapter APIs.
- Added new 320x100
LARGE_BANNERad format for both phones and tablets. - Added new interstitial format for In-App Purchase. Set an
InAppPurchaseListeneronInterstitialAdto listen for in-app purchase events. - Bug fix for
SecurityExceptioncrash due to reading gservices without permission.
-
InterstitialAdnow functions if passed an application context. - Added the
setContentUrl()method toPublisherAdRequest.Builder. - Fix for exception when Service not registered .
- Added support for Ad Manager and Search Ads for Mobile Apps.
-
AdRequest.Buildernow has asetLocation()method. - Fixed a crash that occurred if an interstitial ad was requested but
AdActivitywasn't specified in the manifest.
- 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.

