请求的操作:Declare your Ad ID permission
今天,我收到了这封电子邮件。
Last July, we announced Advertising policy changes to help bolster security and privacy. We added new restrictions on identifiers used by apps that target children. When users choose to delete their advertising ID in order to opt out of personalization advertising, developers will receive a string of zeros instead of the identifier if they attempt to access the identifier. This behavior will extend to phones, tablets, and Android TV starting April 1, 2022. We also announced that you need to declare an AD_ID permission when you update your app targeting API level to 31 (Android 12). Today, we are sharing that we will give developers more time to ease the transition. We will require this permission declaration when your apps are able to target Android 13 instead of starting with Android 12.
Action Items If you use an advertising ID, you must declare the AD_ID Permission when your app targets Android 13 or above. Apps that don’t declare the permission will get a string of zeros. Note: You’ll be able to target Android 13 later this year. If your app uses an SDK that has declared the Ad ID permission, it will acquire the permission declaration through manifest merge. If your app’s target audience includes children, you must not transmit Android Advertising ID (AAID) from children or users of unknown age.
我的应用程序没有使用广告ID。我是否应该在Manifest中声明AD_ID
Permission?
如果该应用程序不包含任何广告。
你可以通过在AndroidManifest.xml
文件中添加tools:node="remove"
来简单地删除/忽略它。
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
即使另一个第三方库要求这个特定的许可,构建将被强制不在你的最终Manifest文件中合并它。 你可以从这个SO答案中获得更多的信息。。
从这里获得更多的信息。
app/build/intermediates/manifests/full/debug/AndroidManifest.xml
。
- Rumit Patel 2022-07-29
如果您的应用程序使用谷歌移动广告SDK(Admob)版本20.4.0或更高,您可以跳过手动设置权限,因为SDK会自动声明该权限
更多信息,请点击这里。
implementation 'com.google.firebase:firebase-ads:20.6.0'
- 因为它的版本是20.6.0,我确信它没有问题 - 但由于它是从Firebase重定向的,我只想知道它是否使用了AdMob的最新SDK?
- Jonathan 2022-03-15
20.4.0
就可以了。
- ABDERRAHMANE OUALI 2022-03-15
谷歌在此描述了如何解决
https://support.google.com/googleplay/android-developer/answer/6048248?hl=en
添加到清单中
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
<uses-permission android:name="com.google.android.gms.permission.@string/admob_appId"/>
?谢谢
- spcsLrg 2022-03-15
案例1:你的应用程序有广告
在</manifest>
之前的AndroidManifest.xml
中添加以下内容。
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
案例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">
然后,在页面底部的</manifest>
标签之前,添加以下内容。
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
资料来源:
不要担心。所有使用Admob做广告的开发者都收到这个警告。只要确保你在你的build.gradle
文件中使用最新Google Mobile Ads SDK(Admob) OR AdMob SDK版本高于或等于20.4.0。在这种情况下,SDK会自动管理它。
否则对于20.4.0以下的旧版SDK,我们需要在我们的AndroidManifest.xml中手动提及以下一行
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
如果您的应用程序不包含广告,请确保完成Play Console中应用程序内容页面(Policy >App content)的调查。
只要选择该选项。 No, my app does not contain ads
如果你不这样做,你将无法将你的应用程序的新版本上传到Google Play。
首先,
com.google.android.gms.permission.AD_ID
可以由其他第三方SDK添加,如
Play Services-ads
firebase-analytics
等
所以,如果你没有手动添加permission.AD_ID
,通过检查merged manifest
文件.merged-manifest
路径:project
> app
> build
> intermediate
> merged_manifest
> release
> AndroidManifest.xml
现在去你的play console
> app content
> Adverstising ID
和
。
- 如果您的合并清单中不包含
AD_ID
,请选择NO
,否则 - 选择
YES
,并完成下一个选项。
有两种不同的形式。
- 广告
- 广告标识
最初,我被卡住了,因为我没有注意到其他的。所以你的应用程序可以是任何组合,例如,没有广告,但有,广告ID。
在这个文档中,解释了谷歌服务可以包括广告ID,而不是广告的其他原因。分析。
Google Play Services version 4.0 introduced new APIs and an ID for use by advertising and analytics providers. Terms for the use of this ID are below.
而在这个其他的文档中,在例子部分非常明确地指出,广告被理解为通常理解的广告:横幅、弹出式广告、列表中间的瓦片等。
分析合并后的清单,我们可以看到库 play-services-measurement-api
正在添加权限,并与分析有关。该库的清单看起来是这样的。
<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>
请注意,库正在注册analytics.connector.internal.AnalyticsConnectorRegistrar
。
在这种情况下,广告表格必须标记为 "否",但建议ID表格必须标记为 "是",然后再标记为 "分析 "选项。
我看到有人建议强制清单不合并permission.AD_ID
,但这将破坏Analytics。
我也收到了今天PlayStore团队发给所有开发者的邮件。要求申报AD_ID权限。 因为我们使用Flutter
开发并发布了我们的应用程序,android的目标是API级别31。我正在使用advertising_identifier: ^0.1.1
插件来获取广告客户的ID。我还没有在我的清单文件中声明AD_ID权限。
此外,应用程序将其目标API级别更新为31(Android 12),并使用广告标识符/广告标识符客户端信息获取,将需要在清单文件中声明Google Play服务的正常权限,如下所示。
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
参考文献。
https://support.google.com/googleplay/android-developer/answer/6048248?hl=en