请求的操作:声明您的广告 ID 权限

Abd*_*lah 139 java android admob google-advertising-id google-play-console

今天我收到这封电子邮件:

\n
\n

去年 7 月,我们宣布了广告政策变更,以帮助加强\n安全和隐私。我们对针对儿童的应用使用的标识符添加了新的限制。\n 当用户选择删除其\n广告 ID 以退出个性化广告时,\n如果开发人员尝试访问标识符,\n他们将收到一串零而不是标识符。从 2022 年 4 月 1 日起,此行为将扩展到手机、平板电脑和 Android TV。我们还\n宣布,当您将应用的目标 API 级别更新为\n31 (Android 12) 时,\n您需要声明 AD_ID 权限。今天,我们宣布\n我们将给予开发者更多时间来缓解过渡。当您的应用能够定位\nAndroid 13 而不是从 Android 12 开始时,\n我们将需要此权限声明。

\n

操作项 如果您使用广告 ID,则当您的应用面向 Android 13 或更高版本时,您必须声明 AD_ID\n权限。不\xe2\x80\x99t\n声明权限的应用程序将获得一串零。注意:今年晚些时候,您\xe2\x80\x99 将能够面向 Android 13。如果您的应用使用已声明广告 ID 权限的 SDK,\n它将通过清单合并获取该权限声明。如果您的应用\xe2\x80\x99 的目标受众\n包括儿童,则不得传输\n儿童或未知年龄用户的 Android 广告 ID (AAID)。

\n
\n

我的应用程序未使用广告 ID。我是否应该AD_ID在清单中声明权限?

\n

Rum*_*tel 168

情况1:应用程序不包含任何广告:

tools:node="remove"您可以通过在文件中添加来简单地删除/忽略它AndroidManifest.xml

<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
Run Code Online (Sandbox Code Playgroud)

确保文件xmlns:tools顶部有AndroidManifest.xml

<manifest xmlns:tools="http://schemas.android.com/tools" ... />
Run Code Online (Sandbox Code Playgroud)

即使另一个第三方库请求此特定权限,构建也将被迫不将其合并到最终的清单文件中。您可以从此答案中获取更多信息。


情况2:应用程序包含广告:

AndroidManifest.xml在之前添加以下内容</manifest>

<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
Run Code Online (Sandbox Code Playgroud)

您可以从这里获取更多信息。

  • 这对我来说没什么用:( (10认同)
  • 如果某人想知道 `xmlns:tool`,则需要:`xmlns:tools="http://schemas.android.com/tools"` (5认同)
  • @TanvirAhmed,您可以在“app/build/intermediates/manifests/full/debug/AndroidManifest.xml”的合并清单文件中找到您的最终权限 (3认同)
  • 我正在颤振中构建应用程序。这个解决方案对我不起作用。 (2认同)

Aid*_*din 81

情况 1:您的应用有广告

AndroidManifest.xml在之前添加以下内容</manifest>

<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
Run Code Online (Sandbox Code Playgroud)

案例 2:您的应用没有广告

AndroidManifest.xml确保您的顶部xmlns:tools<manifest ...>。(对这个答案表示敬意)例如

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.mycompany.myapp">
Run Code Online (Sandbox Code Playgroud)

然后,在页面底部</manifest>标记之前添加以下内容:

    <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
Run Code Online (Sandbox Code Playgroud)

来源:

  • 它对我不起作用:'( 我仍然有关于 com.google.android.gms.permission.AD_ID 的警告 (5认同)
  • 添加 `xmlns:tools="http://schemas.android.com/tools"` 很重要。没有它,我的应用程序将无法编译。谢谢! (3认同)

Cyb*_*ber 45

就我而言,我Firebase Analytics仅用于崩溃报告等。

您可以将您的应用程序设置为使用广告 ID。

在此输入图像描述

并且仅使用分析。

在此输入图像描述

  • 为我工作谢谢。+1 **应用内容 --&gt; 广告 ID --&gt; 是 --&gt; 分析** 应用 targetSdk 33 时面临 (6认同)

ABD*_*ALI 44

如果您的应用使用 Google 移动广告 SDK( Admob ) 版本\xc2\xa0 20.4.0 \xc2\xa0或更高版本,您可以跳过手动设置权限,因为 SDK 会自动声明它

\n

更多信息请点击这里:

\n

https://developers.google.com/admob/android/quick-start

\n

  • 我的应用程序不包含广告,我仍然需要添加这个吗? (3认同)

Vad*_*dik 28

如果您的应用不包含广告,请务必在 Play 管理中心的应用内容页面(政策 > 应用内容)上完成调查。

只需选择选项:不,我的应用程序不包含广告

如果您不这样做,您将无法将新版本的应用上传到 Google Play。

Google Play 管理中心广告选择器位置


小智 27

谷歌描述这里如何解决

https://support.google.com/googleplay/android-developer/answer/6048248?hl=en

添加到清单中

<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
Run Code Online (Sandbox Code Playgroud)


Abu*_*eed 17

首先,
com.google.android.gms.permission.AD_ID可以通过其他第三方SDK添加,例如

  • Play Services-ads
  • firebase-analyticsETC

因此,如果您没有permission.AD_ID手动添加,请通过检查文件确保它不是由任何其他 SDK 添加的merged manifest

merged-manifest路径:
project> app> build> intermediate> merged_manifest> release>AndroidManifest.xml

现在转到您的play console>>app contentAdverstising ID

  • NO如果您的合并清单不包含 则选择AD_ID,否则
  • 选择YES并完成下一个选项。


Ume*_*ani 11

不用担心。所有使用 Admob 进行广告的开发者都会收到此警告。只需确保您在文件中使用最新的Google 移动广告 SDK(Admob) 或 AdMob SDK 版本高于或等于 20.4.0build.gradle即可。在这种情况下,SDK会自动管理它

否则,对于低于 20.4.0 的旧版 sdk,我们需要在 AndroidManifest.xml 中手动提及以下行

<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
Run Code Online (Sandbox Code Playgroud)


cut*_*iko 8

有两种不同的形式:

  1. 广告
  2. 广告ID

最初,我被困住了,因为我没有注意到对方。所以你的应用程序可以是任意组合,例如,没有广告,但有广告 ID。

在本文档中,解释了 Google 服务可以出于广告以外的其他原因包含广告 ID:分析。

Google Play 服务 4.0 版引入了新的 API 和 ID,供广告和分析提供商使用。此 ID 的使用条款如下。

在其他文档中,示例部分非常清楚地表明,广告应理解为通常理解的广告:横幅、弹出窗口、列表中间的磁贴等。

分析合并的清单,我们可以看到该库 play-services-measurement-api正在添加权限并且与 Analytics 相关。库清单如下所示:

    <uses-permission android:name="com.google.android.gms.permission.AD_ID" />

    <application>
        <service
            android:name="com.google.firebase.components.ComponentDiscoveryService"
            android:exported="false" >
            <meta-data
                android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar"
                android:value="com.google.firebase.components.ComponentRegistrar" />
        </service>
    </application>
Run Code Online (Sandbox Code Playgroud)

请注意图书馆正在注册analytics.connector.internal.AnalyticsConnectorRegistrar

在这种情况下,广告表单必须标记为“否”,但广告 ID 表单必须标记为“是”,然后是“分析”选项。

我见过有人建议强制清单不合并,permission.AD_ID但这会破坏分析。

  • 这实际上是正确的答案——广告和广告 ID 之间的区别。感谢您的提示 - 解决了我的问题。 (2认同)
  • 这很令人困惑,因为为什么广告 ID 会默认包含在 Analytics 中?对我来说似乎用词不当,如果不阅读多个文档就很难弄清楚@5ulo (2认同)

mik*_*kep 5

如果这是由例如使用广告 ID 的 firebase 分析引起的,请不要<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>像许多其他答案中所示那样使用,因为分析可能无法正常工作。而是更新 Play 商店控制台中的声明,表明您的应用使用广告 ID 并选择 Analytics 作为原因。这不会在 Play 商店中为您的应用添加“应用包含添加”句子。