到现在为止还挺好.迁移是一块蛋糕,但…总是有一个“但”.
以前,com.google.ads.AdRequest曾经有一个setLocation(Location)
方法,可以让您扩大定位信息.该选项在com.google.android.gms.ads.AdRequest
或其Builder
课程中不再可用.
我想我的问题是:在哪里和为什么去?哪里可能很容易回答,因为它似乎已经被删除了.我喜欢有人在这里证明我错了,所以如果我忽略了一些东西,可以随意评论.这就是为什么.
现在我只能猜测为什么它被删除:
> AdMob被重构成为Google Play服务的一部分时,被忽略了.
>出于隐私问题,Google决定不再支持此功能.
>由于AdMob现在已成为Google Play服务的一部分,也许与其Location API(即融合位置提供商)集成,并自动提供位置信息(如果可用)?
第一个选择似乎不太可能,而第二个选项是可以理解的.不知道第三个,但考虑到隐私的影响,也不太可能.有什么机会有人可以就此事作出决定性的答案,还是指出一个可靠的来源?
注意:是的,我在文档中知道以下注释:
Out of respect for user privacy,Google asks that you only specify
location and demographic data if that information is already used by
your app.
该问题提出的应用程序已经是位置感知.其实这是应用程序的一个重要方面.正如笔记所述,由于用户的位置已被应用程序使用,所以向其提供广告请求已经是一个有效的用例.
更新:
通过9 January blog post on the upcoming Google Play Services 4.1 update,提到通过新的API重新引入位置定位:
Google Mobile Ads
With Google Play services 4.1,the Google Mobile Ads
SDK now fully supports DoubleClick for Publishers,DoubleClick Ad
Exchange,and Search Ads for Mobile Apps. You can also use a new
publisher-provided location API to provide Google with the location
when requesting ads. Location-based ads can improve your app
monetization.
目前,我还没有找到关于这个新API的任何更新的文档,但是预计它将在即将推出 – Google Play Services 4.1推出完成后立即开始使用.在此之前,我将保留我的初步答案以供参考.
Google现在已经更新了Android文档上的新功能.请参阅下面接受的答案.
解决方法
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服务中无处可寻.这表明我原来的问题中的第三次猜测很可能不会.在某种程度上,这是有道理的,因为这绝对是在某处被记录的东西,只是因为所需权限的变化.
我也倾向于说,位置功能并没有被忽视.这不是唯一缺少的关键,但大多数其他主流的都在那里,如年龄,性别,关键字等.而是开始认为它被遗漏了,放弃了它的支持.如果我冒昧猜测,那么很可能是由于隐私问题.
如果任何人(特别是Google的人)可以确认这一点,那将是巨大的.另外,如果发现任何与这些发现相矛盾的东西,绝对会留下评论.我很高兴被证明是错误的.