版本
发布日期
Notes
22.5.0
2023 年 10 月 30 日
22.4.0
2023‑09‑13
22.3.0
2023 年 8 月 22 日
22.2.0
2023‑07‑05
22.1.0
2023‑05‑18
广告检查器 :在没有 Google Play 服务的设备上,启用了通过广告检查器界面触发广告请求的功能。
22.0.0
2023‑03‑29
重大变更:
添加了 AdRequest.getRequestAgent()
。
中介 :Adapter.getVersionInfo()
和 Adapter.getSDKVersionInfo()
的返回值从 com.google.android.gms.ads.mediation.VersionInfo
类型更改为 com.google.android.gms.ads.VersionInfo
。由于 com.google.android.gms.ads.mediation.VersionInfo
已被弃用,因此我们建议适配器返回新类型。
21.5.0
2023‑01‑31
开屏广告 :废弃了接受方向输入参数的 AppOpenAd.load()
方法,并添加了不接受方向输入的新方法。新方法会在请求时确定屏幕方向,与其他全屏广告格式的行为保持一致。
中介 :新增了对开屏广告的中介支持。
从 androidx.work:work-runtime
依赖项中移除了 RECEIVE_BOOT_COMPLETED
权限。如果您使用的是低于 7.2.0 的 Gradle 版本,并且需要为应用授予相应权限,您可能需要在 Android 清单中明确声明权限。
21.4.0
2022‑12‑14
现在,所有 Ad Manager 应用都必须提供 Ad Manager 应用 ID,并且此 ID 必须采用 ca-app-pub-################~##########
格式。如需了解详情,请参阅配置您的应用 。
广告检查器 :扩展 SDK 支持,以便展示通过广告检查器界面请求的横幅广告和原生广告。
注意 :广告检查器界面将在日后推出此功能,最低 SDK 版本必须为 21.4.0。
新增了对发布商第一方 ID(以前称为“同应用标识键”)的支持,以便利用从应用中收集的数据,帮助您投放更具相关性、个性化程度更高的广告。
QueryInfo
代的官方发布版本。
21.3.0
2022‑10‑10
广告检查器 :添加了对通过广告检查器界面请求和展示请求的广告的 SDK 支持。
注意 :广告检查器界面将在日后推出此功能,最低 SDK 版本必须为 21.3.0。
原生广告 :
自定义原生广告 :
21.2.0
2022‑09‑06
广告检查器 :添加了对通过 Android Sharesheet 导出广告请求日志的 SDK 支持。
注意 :广告检查器界面将在日后推出此功能,最低 SDK 版本必须为 21.2.0。
21.1.0
2022‑07‑14
在 WebView
中添加了对广告创收的支持。如需了解详情,请参阅集成适用于广告的 WebView API 。
向 ResponseInfo
添加了 getResponseExtras()
,它可以返回有关广告响应的额外信息。
Beta 版 :getResponseExtras()
API 目前为 Beta 版。在没有 SDK 版本的情况下,返回值可能会发生变化。
21.0.0
2022‑05‑25
此版本是 MAJOR 版本更新,包含多项破坏性更改。如需详细了解如何迁移,请参阅迁移到 SDK v21 指南。
重大变更:
Google 移动广告 SDK 现在要求所有应用支持的 Android API 级别最低必须为 19,这样才能正常运行。
在以前未明确定义可为 null 性的每个方法中添加了 @NonNull
注解。
移除了 AdRequest.Builder.addNetworkExtras()
方法。
请改用 AdRequest.Builder.addNetworkExtrasBundle()
。
移除了以下位置方法:
AdRequest.Builder
上的 setLocation()
截至 AdRequest
的费用为getLocation()
MediationAdConfiguration
上的 getLocation()
添加了清单标记以优化初始化和广告加载。如需了解详情,请参阅优化初始化和广告加载指南 。
弃用了 MobileAds.getVersionString()
。请改用 MobileAds.getVersion()
。
在 ResponseInfo
中添加了
getLoadedAdapterResponseInfo()
方法。
在
AdapterResponseInfo
中添加了以下方法:
getAdSourceName()
getAdSourceId()
getAdSourceInstanceName()
getAdSourceInstanceId()
Beta 版 :这些 API 目前为 Beta 版。在没有 SDK 版本的情况下,返回值可能会发生变化。
添加了对广告检查器中自定义事件的支持。
20.6.0
2022 年 2 月 22 日
废弃了所有
自定义事件接口 。请改用 Adapter
类和
MediationAdLoadCallback
接口。
添加了对
SharedPreferences gad_has_consent_for_cookies
的支持。
当 gad_has_consent_for_cookies
偏好设置设为 0 时,Google 移动广告 SDK 将启用
受限广告 (LTD) 。如需了解详情,请参阅
针对 Cookie 设置意见征求 。
当您使用 TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE
调用 RequestConfiguration.Builder.setTagForChildDirectedTreatment()
(请参阅
面向儿童的设置 )或使用 TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE
调用 RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
(请参阅
设置未达到同意年龄的用户 )时,Google 移动广告 SDK 将禁止传输 Android 广告标识符 (AAID)。
20.5.0
2021 年 11 月 18 日
针对以 API 31 为目标平台的应用添加了对 Android 12 设备的支持。
针对报告和欺诈防范等使用场景添加了对
应用组 ID
的支持。
20.4.0
2021 年 9 月 22 日
此版本及之前的所有版本都要求显式依赖于 androidx.work:work-runtime:2.7.0
,以修复会导致 Android S 在 Android S 上出现应用崩溃的 bug,并且具有以下堆栈轨迹:
Fatal Exception: java.lang.IllegalArgumentException:
com.mycompany.myapp: Targeting S+ (version 10000 and above)
requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be
specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE
if some functionality depends on the PendingIntent being mutable,
e.g. if it needs to be used with inline replies or bubbles.
at android.app.PendingIntent.checkFlags(PendingIntent.java:386)
at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:657)
at android.app.PendingIntent.getBroadcast(PendingIntent.java:644)
at androidx.work.impl.utils.ForceStopRunnable.getPendingIntent(ForceStopRunnable.java:174)
at androidx.work.impl.utils.ForceStopRunnable.isForceStopped(ForceStopRunnable.java:108)
at androidx.work.impl.utils.ForceStopRunnable.run(ForceStopRunnable.java:86)
at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
如需修复此 bug,请将 Google 移动广告 SDK 的以下依赖项添加到模块的应用级 Gradle 文件中:
dependencies {
implementation 'com.google.android.gms:play-services-ads:20.4.0'
// For apps targeting Android 12, add WorkManager dependency.
constraints {
implementation('androidx.work:work-runtime:2.7.0') {
because '''androidx.work:work-runtime:2.1.0 pulled from
play-services-ads has a bug using PendingIntent without
FLAG_IMMUTABLE or FLAG_MUTABLE and will fail in Apps
targeting S+.'''
}
}
}
从 20.4.0 版开始,Google 移动广告 SDK 在 SDK 的清单中添加了 com.google.android.gms.permission.AD_ID
权限,Android 构建工具会自动将该权限合并到应用清单中。如需详细了解 AD_ID
权限声明(包括如何将其停用),请参阅
这篇 Play 管理中心帮助文章 。
向 FullScreenContentCallback
添加了
onAdClicked()
回调。
针对原生广告格式启用了 AdListener
类中的
onAdClicked()
回调。
20.3.0
2021‑08‑23
20.2.0
2021‑06‑08
新增了对 Google Ad Manager 发布商的广告检查器(Beta 版)支持。
20.1.0
2021‑04‑29
20.0.0
2021‑04‑05
重大变更:
移除了旧版 Interstitial
API。
移除了旧版 RewardedVideoAd
API。
移除了前缀为 Publisher
的类(例如:PublisherAdView
).
移除了 CustomRenderedAd
。
移除了 InstreamAd
。
移除了 SearchAdRequest
。
移除了 AdListener.onAdLeftApplication()
。
移除了 NativeAppInstallAd
、NativeContentAd
和 UnifiedNativeAd
。现在,有一种名为“NativeAd
”的原生广告格式。
RewardedAd
现在是一个抽象类。使用 RewardedAd.load()
静态方法加载激励广告。
添加了
广告检查器 (Beta 版)。
废弃了 AdSize.SMART_BANNER
,取而代之的是自适应横幅广告 。
在所有公共 API 中添加了显式可为 null 性注解。
19.8.0
2021‑03‑15
添加了对
User Messaging Platform SDK 。
向 FullScreenContentCallback
添加了 onAdImpression()
回调。
废弃了 InstreamAd
格式。
中介适配器 :
废弃了 MediationBannerAdapter
、MediationInterstitialAdapter
和 MediationNativeAdapter
。新的适配器应实现 Adapter
类来加载这些格式。注意 :为了让中介适配器有时间过渡到新的 API,我们不会在版本 20.0.0 中移除这些已废弃的中介适配器类。
出价适配器现在可以在 Adapter
类中针对实时出价专属格式实现不同的加载方法。
19.7.0
2021‑01‑20
对以下内容的重大变更:
InterstitialAd
RewardedAd
NativeAd
AppOpenAd
废弃了 CustomRenderedAd
。
带有前缀 Publisher
的类和软件包已废弃,取而代之的是前缀 AdManager
。
版本 20.0.0 之前的最后一个次要版本。此版本及之前版本中标记为已废弃的所有 API 都将在版本 20.0.0 中移除。如需了解详情,请参阅版本 20.0.0 的迁移指南 。
19.6.0
2020‑12‑04
废弃了 onAdLeftApplication() AdListener
方法。
修复了以下 bug:使用 Android 11 设备的用户在点击广告后,会被要求选择浏览器。
19.5.0
2020‑10‑20
19.4.0
2020‑09‑10
针对以 API 30 为目标平台的应用添加了对 Android 11 设备的支持。
开屏广告 :更改了 AppOpenAd
格式,使其运作方式更像是全屏格式,而不是横幅广告视图。向 AppOpenAd
添加了 getResponseInfo()
和 show()
方法。废弃了 AppOpenAdView
和 AppOpenAdPresentationCallback
类。
中介 :中介状态报告现已推出。使用 ResponseInfo.getAdapterResponses()
可获取参与广告请求的每个广告联盟的响应信息。
旧版激励广告 :废弃了 RewardedVideoAd
。
修复了 MobileAds.initialize()
仅回调一次完成处理程序一次的 bug。现在,每次调用 MobileAds.initialize()
都会调用完成回调。
19.3.0
2020‑07‑20
注意 :SDK 版本 19.3.0 及更低版本不支持 Android 11 (API 30)。如果您计划将
targetSdkVersion
设置为 API 30,我们建议使用 SDK 版本 19.4.0 或更高版本。
19.2.0
2020‑06‑18
添加了 RewardedInterstitialAd
格式。此功能目前处于非公开 Beta 版阶段。如需请求访问权限,请与您的客户经理联系。
原生广告 :为测试请求添加了原生广告验证工具界面,以帮助您发现并修正违反原生广告政策的问题。
添加了 MobileAds.disableMediationAdapterInitialization()
方法。在初始化 Google 移动广告 SDK 之前调用此方法,以停用中介适配器初始化。
警告 :调用此方法可能会对 Google 中介效果产生不利影响。仅当您在应用中包含 Google 中介适配器,但未在特定应用会话期间通过 Google 进行中介(例如,您正在运行 A/B 中介测试)时,才应调用此方法。
19.1.0
2020‑04‑16
19.0.1
2020‑03‑18
原生广告 :修复了使用 NativeCustomTemplateAd
时发生的内存泄漏问题。
19.0.0
2020‑03‑02
此版本是 MAJOR 版本更新,包含以下破坏性更改:
将最低 Android SDK 版本更新为 API 16,以符合
Google Play 服务分发政策 。
原生广告 :将 MediaContent
移到了 com.google.android.gms.ads
软件包中。
添加了对从 IAB TCF v2.0 和 IAB us_privacy
字符串读取用户意见征求参数的支持。
向 AdRequest
添加了 setNeighboringContentUrls()
和 getNeighboringContentUrls()
。
添加了 ResponseInfo
类,可提供有关已加载广告的信息。
对于所有广告格式,我们已弃用 getMediationAdapterClassName()
,取而代之的是 getResponseInfo()
。
原生广告 :向 MediaContent
添加了 getDuration()
和 getCurrentTime()
方法。
原生中介 :向 UnifiedNativeAdMapper
添加了 getDuration()
和 getCurrentTime()
方法,以供适配器实现。
废弃了
AdRequest.Builder.addTestDevice()
。请改用
RequestConfiguration.Builder.setTestDeviceIds()
。
18.3.0
2019‑11‑05
为 InstreamAd
广告格式添加了 API。此功能目前处于非公开 Beta 版阶段。如需申请访问权限,请与您的客户经理联系。
自适应横幅广告 :更改了 AdSize
类中的自适应横幅广告创建方法。例如,将 AdSize.getCurrentOrientationBannerAdSizeWithWidth()
重命名为 AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize()
。
中介 :Google 移动广告 SDK 现在可捕获中介适配器抛出的异常。
激励广告中介 :修复了以下问题:如果缓存了多个参与中介的激励广告,则仅展示一个。
添加了
setTestDeviceIds()
方法,以便为所有广告请求启用一次测试设备。
18.2.0
2019‑08‑29
添加了适用于
AppOpenAd
格式的 API。此功能目前处于非公开 Beta 版阶段。如需申请访问权限,请与您的客户经理联系。
18.1.1
2019‑07‑23
18.1.0
2019‑07‑09
18.0.0
2019‑06‑17
注意 :此版本属于 MAJOR 版本更新,属于重大变更。
17.2.1
2019‑05‑21
修复了源自 android.media.AudioManager.getStreamVolume
的 ANR。
17.2.0
2019‑03‑11
激励视频广告 :添加了一组新的激励广告 API(请参阅激励广告 软件包),可让您同时加载多个激励广告。
中介 :添加了一组支持初始化的新中介适配器 API。实现新 API 的适配器会实现 Adapter
类。
使用 firebase-analytics
与 17.2.0
任意广告库(例如com.google.android.gms:play-services-ads:17.2.0
)必须使用 com.google.firebase:firebase-analytics:16.3.0
。
17.1.3
2019‑01‑31
使用 firebase-analytics
与 17.1.3
任意广告库(例如com.google.android.gms:play-services-ads:17.1.3
)必须使用 com.google.firebase:firebase-analytics:16.3.0
。
17.1.2
2018‑12‑03
使用 firebase-analytics
与 17.1.2
任意广告库(例如com.google.android.gms:play-services-ads:17.1.2
)必须使用 com.google.firebase:firebase-analytics:16.0.6
。
17.1.1
2018 年 11 月 12 日
修复了某些 play-services-ads
和 firebase-analytics
组合(例如,ads:17.1.0
和 analytics:16.0.5
)导致了 duplicate entry
编译器错误。
使用 firebase-analytics
与 17.1.1
任意广告库(例如com.google.android.gms:play-services-ads:17.1.1
)必须使用 com.google.firebase:firebase-analytics:16.0.5
。
17.1.0
2018‑11‑02
17.0.0
2018‑10‑05
Google AdMob 发布商必须在 AndroidManifest.xml 中指定一个包含键
com.google.android.gms.ads.APPLICATION_ID
的 <meta-data>
标记。如需了解详情,请参阅入门指南 。
原生广告 :NativeAppInstallAd
、NativeContentAd
及相关 API 已废弃,取而代之的是 UnifiedNativeAd
。如需了解有关使用新 API 的详细说明,请参阅原生高级广告(统一) 。
原生广告 :添加了“不再显示该广告”功能。
原生广告 :中性警告日志:“UnconfirmedClickListener cannot be null while ClickConfirmingView is set”(在设置 ClickConfirmingView 的情况下,UnconfirmedClickListener 不得为 null)这一良性警告日志已被移除。
激励广告 :在 RewardedVideoAd
中添加了 setAdMetadataListener
方法,以监听广告元数据更改。
激励广告 :调用 destroy()
会使监听器失效。
废弃了 AdRequest.Builder
的以下方法。
修复了 onRewardedVideoCompleted()
无法在模拟器上触发的 bug。
16.0.0
2018 年 10 月 2 日
无广告更改。如需了解详情,请参阅 Google Play 服务版本说明 。
15.0.0
2018‑04‑12
MRAID v3 Beta 版。
原生广告 :添加了统一原生广告 API。这会将 NativeAppInstallAds
和 NativeContentAds
组合成一个新类型:UnifiedNativeAd
。
注意 :使用原生广告时,当用户点击原生广告时,日志中会显示以下良性警告:“UnconfirmedClickListener cannot be null while ClickConfirmingView is set.”。 您可以忽略此警告,并且它将在下一版本中移除。
12.0.1
2018‑03‑28
无广告更改。如需了解详情,请参阅 Google Play 服务版本说明 。
12.0.0
2018‑03‑20
激励视频广告:向 RewardedVideoAdListener
添加了 onRewardedVideoCompleted()
回调方法。
为避免在更新到版本 12.0.0 时发生编译错误,应用需要在其 RewardedVideoAdListener
实现中替换此回调。
原生广告中介:向 NativeAdMapper
添加了 trackViews()
方法,让适配器可以访问与各个原生广告素材资源对应的 View
对象。废弃了 trackView()
,取而代之的是 trackViews()
。
11.8.0
2017 年 12 月 18 日
11.6.0
2017‑11‑07
在 NativeAppInstallAd
和 NativeContentAd
中添加了 NativeAdViewHolder
类和相关方法。
废弃了 AdLoader.getMediationAdapterClassName
(发布商应改用 NativeAppInstallAd
和 NativeContentAd
中的同名方法)。
现在,测试广告会在广告顶部显示一个标签。如需了解详情,请参阅测试指南 。
11.4.0
2017‑09‑19
11.2.2
2017‑09‑05
添加了新的 loadAd()
方法,该方法接受 PublisherAdRequest
对象到 RewardedVideoAd
类。
11.2.0
2017‑08‑14
向 AdLoader
类添加了 loadAds()
方法,该方法允许应用通过单个请求加载多个不同的广告。
当您将应用升级到 11.2.0 或更高版本的 Google 移动广告 SDK 后,还必须更新应用的 build.gradle
以将 compileSdkVersion
指定为至少 26
(Android O)。这不会改变应用的运行方式。您无需更新 targetSdkVersion
。
从 11.2.0 版开始,Google 移动广告 SDK 可通过 Google 的 Maven 制品库获取。如需了解详情,请参阅 Google Play 服务版本说明 。
11.0.0
2017‑06‑07
10.2.0
2017‑2‑15
Google Play 服务 10.2.x 是第一个不再完全支持 Android 版本 2.3.x (Gingerbread) 的版本。使用 SDK 版本 10.2.x 及更高版本开发的应用要求的最低 Android API 级别为 14,且无法安装在搭载 API 级别低于 14 的设备上。如需详细了解您的选项,包括构建多个 APK 以扩展您的应用对 Android Gingerbread 的支持,请参阅
Android 开发者博客 。
添加了对原生高级内容和自定义模板广告的视频素材资源的支持。
向 PublisherAdView
类添加了 getVideoController()
、setVideoOptions()
和 getVideoOptions()
方法。
添加了 AdChoicesView
类。
向 NativeAdMapper
类添加了 getAdChoicesContent()
和 setAdChoicesContent()
方法。
为希望在发出广告请求前选择提前初始化的激励视频广告中介适配器添加了 InitializableMediationRewardedVideoAdAdapter
接口。
添加了对 Google Ad Manager 中的应用内预览和问题排查的支持。
10.0.1
2016 年 11 月 21 日
9.8.0
2016 年 10 月 24 日
9.6.0
2016 年 9 月 22 日
9.4.0
2016 年 8 月 1 日
9.2.0
2016 年 6 月 27 日
9.0.1
2016‑05‑26
解决了 9.0.0 中引入的 ProGuard 问题。
发布商不再需要为 com.google.android.gms.common.util.DynamiteApi
提供 keep
选项。
9.0.0
2016 年 5 月 18 日
8.4.0
2015 年 12 月 18 日
8.3.0
2015 年 11 月 6 日
添加了对激励视频广告的支持。
向 PublisherAdView
和 PublisherInterstitialAd
添加了 isLoading()
方法,用于检查广告请求是否正在进行。
向 AdRequest.Builder
和 PublisherAdRequest.Builder
添加了 setIsDesignedForFamilies()
方法。
向 NativeAdView
添加了 destroy()
方法。
8.1.0
2015 年 9 月 24 日
修复了各种问题。
7.8.0
2015 年 8 月 13 日
MRAID v2 正式版。
向 AdLoader
、AdView
和 InterstitialAd
添加了 isLoading()
方法,用于检查广告请求是否正在进行。
废弃了 PublisherAdRequest.Builder#setManualImpressionsEnabled()
。
请改用 PublisherAdView#setManualImpressionsEnabled()
。
7.5.0
2015‑05‑28
AdMob 和 Ad Manager 新增了对应用安装和内容原生广告格式的支持。
新增了对自定义原生广告格式的支持(适用于 Ad Manager 预订型广告)。
7.3.0
2015‑04‑28
修复了各种问题。
7.0.0
2015‑03‑19
向 PublisherAdRequest.Builder
添加了 addCustomTargeting()
和 addCategoryExclusion()
方法。
修复了使用手动展示次数统计时,导致 PublisherAdView.recordManualImpression()
在 Ad Manager 中记录多次展示的问题。
修复了在 <supports-screens>
标记上使用 android:largestWidthLimitDp
属性时导致广告无法正确呈现的问题。
向 AdRequest.Builder
和 PublisherAdRequest.Builder
添加了 setRequestAgent()
方法。此方法应用于指明作为移动广告 SDK 中介的第三方的广告请求来源。
6.5.87
2014‑12‑08
引入了拆分 JAR 架构 - Android Studio 开发者现在可以根据 com.google.android.gms:play‑services‑ads :6.+
添加 Google Play 服务的广告部分。注意 :在 XML 中创建横幅广告的应用仍必须引用整个库 com.google.android.gms:play‑services :6.+
。
修复了各种问题。
6.1
2014‑10‑08
向 com.google.android.gms.ads.MediationAdRequest
添加了 getLocation()
方法。
为插页式广告的关闭按钮添加了内容说明,以方便使用。
库项目正确关联时,不再记录“(未找到 Google Play 资源)”。
向 AdView
添加了 getMediationAdapterClassName()
,可获取当前展示广告的广告联盟中介适配器的类名称。
5.0
2014‑06‑25
新增了可实现自定义事件的 API。
使用 Google Play Billing API 为应用内购买添加了默认的购买流程。
4.4
2014‑05‑07
新增了 Mediation Adapter API。
为手机和平板电脑新增了 320x100 的 LARGE_BANNER
广告格式。
新增了应用内购买插页式广告格式。在 InterstitialAd
上设置 InAppPurchaseListener
,以监听应用内购买事件。
修复了因在没有权限的情况下读取 gservices 导致 SecurityException
崩溃的 bug。
4.3
2014‑03‑17
如果传递了应用上下文,InterstitialAd
现在会正常运行。
PublisherAdRequest.Builder
中新增了 setContentUrl()
方法。
修复了“未注册服务”时的例外情况。
4.2
2014‑02‑03
修复了各种错误。
4.1
2014‑01‑16
新增了对 Ad Manager 和移动应用版搜索广告的支持。
AdRequest.Builder
现在有 setLocation()
方法。
修复了请求插页式广告但未在清单中指定 AdActivity
时发生崩溃的问题。
4.0
2013‑10‑31
Google Mobile Ads API 现已纳入 Google Play 服务 。
未来的 Google Mobile Ads API 更新将自动通过 Google Play 服务推送到设备上。
尚不支持 Ad Manager 和移动应用版搜索广告。