随着Google Play 服务 10 月的更新,AdMob 被集成到库中,这意味着 Android 开发人员不再需要将其包含GoogleAdMobAdsSdk-x.x.x.jar
在项目的libs
文件夹中。有一个很好的迁移指南,解释了如何com.google.ads.*
从com.google.android.gms.ads.*
.
到现在为止还挺好。迁移是小菜一碟,但是……总有一个“但是”。
以前,com.google.ads.AdRequest
曾经有一种setLocation(Location)
方法可以让您增加定位信息。该选项在 中不再可用com.google.android.gms.ads.AdRequest
,在其Builder
类中也不再可用。
我想我的问题是:它去哪儿了,为什么去了?where可能很容易回答,因为它似乎已被删除。不过,我希望有人在这里证明我错了,所以如果我忽略了某些东西,请随时发表评论。这留下了为什么。
现在我只能推测它被删除的原因:
- 当 AdMob 被重构为 Google Play 服务的一部分时,它被忽略了。
- 出于隐私考虑,Google 决定不再支持此功能。
- 由于 AdMob 现在是 Google Play 服务的一部分,也许它与其位置 API(即 Fused Location Provider)集成,并在可用时自动提供位置信息?
第一个选项似乎不太可能,而第二个选项是可以理解的。不确定第三个,但考虑到隐私影响,也不太可能。有人可以就此事给出结论性的答案,或者指出可靠的来源吗?
注意:是的,我知道文档中的以下评论:
出于对用户隐私的尊重,Google 要求您仅在您的应用已使用该信息的情况下指定位置和人口统计数据。
出现此问题的应用程序已经是位置感知的。事实上,这是应用程序的一个相当重要的方面。正如注释所说,由于应用程序已经使用了用户的位置,因此到目前为止,向其提供广告请求一直是一个有效的用例。
更新:
在1 月 9 日关于即将发布的 Google Play 服务 4.1 更新的博文中,提到了通过新的 API 重新引入位置定位:
Google 移动广告
借助 Google Play 服务 4.1,Google 移动广告 SDK 现在完全支持 DFP、DoubleClick Ad Exchange 和移动应用搜索广告。您还可以在请求广告时使用发布商提供的新位置 API 向 Google 提供位置。基于位置的广告可以提高您的应用获利能力。
目前我还没有找到关于这个新 API 的任何更新文档,但希望它很快就会可用 - 一旦 Google Play 服务 4.1 的推出完成。在那之前,我将在下面保留我的初步答案以供参考。
Google 现在已经更新了有关新功能的 Android 文档。请参阅下面接受的答案。