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.
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.
The 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 ad 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.
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.
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 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.
Native ads: Added UnifiedNativeAd.getMediaContent().
Publishers who only load images via 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.
Native ads: Added APIs to enable Open Measurement support for
non-video custom native ad formats.
Removed the Correlator class and its associated APIs.
This feature was previously non-functional.
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 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.
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 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.
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
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.
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 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 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.