使用October update of the Google Play Services,AdMob已集成到库中,这意味着Android开发人员不再需要将GoogleAdMobAdsSdk-x.x.x.jar
包含在项目的libs
文件夹中。有一个很好的migration guide,解释了如何从com.google.ads.*
迁移到com.google.android.gms.ads.*
。
到目前为止,这么好。迁移是小菜一碟,但......总有一个“但是”。
以前,com.google.ads.AdRequest
过去常常使用setLocation(Location)
方法来扩充定位信息。该选项在com.google.android.gms.ads.AdRequest
中以及Builder
类中不再可用。
我想我的问题是:它在哪里以及为什么会这样? 可能很容易回答,因为它似乎已被删除。我喜欢有人在这里证明我错了,所以如果我忽略了什么,请随时评论。这留下了为什么。
现在我只能猜测它被移除的原因:
第一种选择似乎不太可能,而第二种选择是可以理解的。不确定第三个,但考虑到隐私的影响,也不太可能。有人可以就此事给出确凿的答案,或者指出可靠的来源吗?
注意:是的,我知道文档中的以下注释:
出于对用户隐私的尊重,Google要求您仅指定 位置和人口统计数据,如果该信息已被使用 你的应用。
此问题出现的应用已经具有位置感知功能。事实上,它是应用程序的一个相当重要的方面。正如笔记所说,由于应用程序已经使用了用户的位置,因此向其提供广告请求至今仍是一个有效的用例。
更新:
使用9 January blog post on the upcoming Google Play Services 4.1 update时,会提到通过新API重新引入位置定位:
Google移动广告
使用Google Play服务4.1,Google移动广告 SDK现在完全支持DFP广告管理系统DFP广告管理系统 移动应用的Exchange和搜索广告。 您也可以使用新的 发布商提供的位置API,为Google提供位置信息 请求广告时。基于位置的广告可以改善您的应用 获利。
目前我还没有找到有关此新API的任何更新文档,但预计很快就会推出 - 只要Google Play Services 4.1的推出完成即可。在此之前,我会在下面保留我的初步答案以供参考。
Google现已更新了有关新功能的Android文档。见下面接受的答案。
答案 0 :(得分:5)
最终更新:
Google最终更新了Android文档,以包含新发布商提供的位置API。毫不奇怪,这些都粘在了构建器模式中,与之前的工作原理完全相同:
AdRequest.Builder.setLocation(Location)
以下答案仅供教育之用;如果上面回答了你的问题,就没有必要再进一步了解。
更新:系统会通过Google Play Services 4.1中的新API重新启用位置定位。有关详细信息,请参阅原始问题的更新。
由于缺乏答案,我暂时将对此进行简要分析。我快速浏览了旧的AdMob SDK和新的Google Play服务,试图发现更多信息。
以下是我迄今为止的调查结果,在一张小表中列出。基本上,这会比较使用AdRequest
发送的各种键值对。
Admob SDK: | Google Play Services:
--------------------------------|--------------------------------
map.put("kw", ...); | map.put("kw", ...);
map.put("cust_gender", ...); | map.put("cust_gender", ...);
map.put("cust_age", ...); | map.put("cust_age", ...);
map.put("uule", ...); |
map.put("testing", ...); |
map.put("pto", ...); |
map.put("cipa", ...); |
map.put("adtest", ...); | map.put("adtest", ...);
map.put("extras", ...); | map.put("extras", ...);
| map.put("tag_for_child_directed_treatment", ...);
--------------------------------|--------------------------------
Legend:
* kw = keyword
* cust_gender = gender
* cust_age = birthday
* uule = location
* testing = testing
* pto / cipa = plus one opt out
* adtest = is test device
* extras = extras
在旧版AdMob SDK中,uule
键用于绑定某个位置。不幸的是,Google Play服务无处可寻。这表明我原来问题中的第三种猜测很可能不是这种情况。在某种程度上,这是有道理的,因为这肯定是在某处记录的,仅仅是因为所需权限的变化。
我也倾向于说位置功能不被忽视。这不是唯一缺失的关键,但大多数其他主流的关键在于那里,如年龄,性别,关键词等。相反,我开始相信它被故意排除,不再支持它。如果我冒险猜测,那很可能是出于隐私问题。
如果有人(尤其是谷歌的某个人)可以证实这一点,那就太好了。此外,如果您发现任何与这些发现相矛盾的内容,绝大多数都会发表评论。我很高兴被证明是错的。