- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
随着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
类(class)。
我想我的问题是:它去了哪里,为什么去了? where 可能很容易回答,因为它似乎已被删除。不过,我希望有人能在这里证明我是错的,所以如果我忽略了什么,请随时发表评论。这就是原因。
现在我只能推测它被删除的原因:
第一个选项似乎不太可能,而第二个选项是可以理解的。不确定第三个,但考虑到对隐私的影响,也不太可能。是否有人可以就此事给出结论性的答案,或者指出可靠的来源?
注意:是的,我知道文档中的以下注释:
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 服务 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
键用于绑定(bind)位置。不幸的是,在 Google Play 服务中找不到它。这表明我最初问题中的第三个猜测很可能并非如此。在某种程度上,这是有道理的,因为这肯定会在某处记录下来,仅仅是因为所需权限的更改。
我还倾向于说位置功能没有被忽视。它不是唯一缺失的关键,但大多数其他主流关键都在那里,如年龄、性别、关键字等。相反,我开始相信它是故意遗漏的,放弃了对它的支持。如果我大胆猜测,那很可能是出于隐私方面的考虑。
如果有人(尤其是来自 Google 的人)可以证实这一点,那就太好了。此外,如果您发现任何与这些发现相矛盾的地方,请务必发表评论。我很高兴被证明是错误的。
关于android - 既然 AdMob 已成为 Google Play 服务的一部分,如何通过 AdRequest 提供位置信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19718165/
所以我的应用程序的评论显示在我的游戏控制台中,但是由于某种原因,当我在 google Play 商店上访问我的应用程序链接并以普通用户的身份查看它时,我没有收到新评论的通知,我的显示了 13 条评论,
一旦我在 2.3 play 项目上运行 'sbt compile',我就不能再使用 'sbt compile' 来编译任何 Play 2.2.x 项目。这是我运行 sbt 命令时的错误。 [info]
我有点困惑,想得到一个解释。 我正在使用 Java Play 2 和 Akka Actor 。我使用 play run 启动系统。 不过,我刚刚看到一个视频,使用了命令: play akka star
当我玩游戏时,我遇到两个选择play.api.mvc和 play.mvc包裹 有什么不同? 最佳答案 从戏! 2 文档: The API available in the play.api packa
从 2.3 迁移到 2.4 后,我收到此错误。我应该使用的正确导入语句是什么? error: value routesImport is not a member of object play.Pla
所以我在 google play 上有一个应用程序已经将近 6 个月了,最近两个月我更新了我的应用程序屏幕截图,从那时起,每次我更新我的应用程序时,我都开始收到应用程序拒绝。 上次我提出上诉并被接受,
我有以下代码: Snapshots.OpenSnapshotResult result; result = Games.Snapshots.open(googleApiClient, "save",
在过去 72 小时内,我为 Google Play 开发者计划支付的 Google 电子钱包付款显示为“您的购买正在处理中”。我知道这可能需要长达 48 小时,但这是他们处理时间最坏情况之后的一整天。
我在 Play 商店发布了应用程序,我不知道为什么应用程序显示预注册,我想为我的用户提供直接下载选项。伸出援手将不胜感激。 最佳答案 instructions for pre-registration
我有一个 PHP 后端,它与 Google Play 服务集成以验证从 APP 进行的购买。购买信息返回收据和签名,我需要验证购买是否正确。 我收到: { ...rest of the data
我在 Google Play Developer Console 上创建了我的 Android 应用程序的草稿。我已经填写了所有需要的信息。必需的步骤之一是“内容评级”。我已填写表格以自动分配 Goo
我已经设置好了 com.typesafe.play play_2.13 2.7.4 在项目 pom.xml 中。但是,当我尝试遵循this tutorial时,语句 pla
我在 Play 商店上发布了一个应用程序,并收到了一些评论。在Google Play开发者控制台中,我在一些评论中看不到应用程序的版本。这是我在“应用程序”标题下找到的内容。 版本代码 — 版本名称
假设 A 是所有者。我希望我们团队的 B、C 和 D 用户能够上传我们应用程序的新版本。这可能吗?来自 this我不太清楚用户有什么样的权限。如果有人对这部分有任何经验,欢迎。 最佳答案 您需要 go
我正在尝试将应用重新提交到 Google Play,但我似乎可以找到一种技术上的方法来实现此目的。 我对“您的应用主要针对 COPPA 定义的 13 岁以下 child 吗?”的回答是肯定的,然后在不
我想分享一下我在分析 Google Play 控制台的新功能时遇到的情况,并尝试找到解决方案。 正如你们许多人可能已经知道的那样,Google 已在 Google Play 控制台上发布了更新并引入了
我有两个用 playframework 编写的应用程序。我想加入另一个。我有一个数据库,我想在它们之间共享我的登录类。应用程序对类、方法、变量使用不同的名称。 我怎样才能实现它?我应该创建 jar 版
对于我的硕士论文,我需要自动将来自 Google Play 的不同 Android 应用程序的信息写入一个文本文件。所以我使用 perl 脚本语言来实现这种自动化。我的 perl 脚本可以在 Goog
我想测试子项目是如何工作的,尤其是 routes在主项目 ( this was not visible before ) 中考虑了子项目的数量。 我在这里阅读了文档: https://github.c
我正在使用 Play 框架 2.1.2,我有一个 handlere 方法返回一个 Promise,如 Play 的 2.1.2 documentation 中所述 但是 Play 抛出编译错误说: C
我是一名优秀的程序员,十分优秀!