Google Play Console AD_ID permission error
In Google Play Console, if you get the following error. This post will show how to solve it.
Error
This release includes the com.google.android.gms.permission.AD_ID permission but your declaration on Play Console says your app doesn't use advertising ID.
You must update your advertising ID declaration.
Update declaration
Solution
If you are not using this permission, want to overwrite the dependence's setting and force removing this permission.
In AndroidManifest.xml
, directly under <manifest>
tag, add the following line as early as possible:
<manifest ...>
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
Also, include the tools in manifest tag with:
<manifest
xmlns:tools="http://schemas.android.com/tools"
>
By setting this, the AdversitingIdClient.Info.getId() method will return 00000000-0000-0000-0000-000000000000
and does not affect other behavior of the app.
Rationale
What is com.google.android.gms.permission.AD_ID permission?
From late 2021, on Android 12 devices, Android imposes a requirement when an app wants to use user advertising id.
Starting from late 2021, on Android 12 devices, whenisLimitAdTrackingEnabled()
istrue
, the returned value of this API will be00000000-0000-0000-0000-000000000000
regardless of the app’s target SDK level.
In early 2022, this change will be applied to all the devices that support Google Play services.
Apps with target API level set to 33 (Android 13) or later must declare the normal permissioncom.google.android.gms.permission.AD_ID
as below in the AndroidManifest.xml in order to use this API.
This permission will be granted when the app is installed.
If this permission is not declared, the returned value will be00000000-0000-0000-0000-000000000000
starting early 2022.
Until then, to help developers, a warning line is logged if the permission is missing when the app targets API level 33 (Android 13) or higher.
This warning line is under theLog
tagAdvertisingIdSettings
.
Why is this permission included in your manifest even though you are not declaring it?
Manifest file is merged into the final application manifest by merging the manifest files from all dependencies.
Check the official docs on how the merging works: https://developer.android.com/build/manage-manifests#merge-manifests
Where is the finally merged app manifest?
Note: I am considering the release
build. If you want to check debug
build, replace release
in the file path with debug
.
The final app manifest file can be checked at build/app/intermediates/merged_manifest/release/AndroidManifest.xml
.
Or in the outputted aab
file at build/app/outputs/bundle/release/app-release.aab
, find it at base/manifest/AndroidManifest.xml
.
Which dependency declares the AD_ID permission?
Note: I am considering the release
build. If you want to check debug
build, replace release
in the file path with debug
.
The manifest merging log is stored at build/app/outputs/logs/manifest-merger-release-report.txt
.
uses-permission#com.google.android.gms.permission.AD_ID
ADDED from [com.facebook.android:facebook-core:16.0.1] /home/transang/.gradle/caches/transforms-3/9ba6d5e2710ab5efac0fdb201e4c1658/transformed/jetified-facebook-core-16.0.1/AndroidManifest.xml:16:5-79
android:name
ADDED from [com.facebook.android:facebook-core:16.0.1] /home/transang/.gradle/caches/transforms-3/9ba6d5e2710ab5efac0fdb201e4c1658/transformed/jetified-facebook-core-16.0.1/AndroidManifest.xml:16:22-76
provider#com.facebook.internal.FacebookInitProvider
ADDED from [com.facebook.android:facebook-core:16.0.1] /home/transang/.gradle/caches/transforms-3/9ba6d5e2710ab5efac0fdb201e4c1658/transformed/jetified-facebook-core-16.0.1/AndroidManifest.xml:29:9-32:40
android:authorities
ADDED from [com.facebook.android:facebook-core:16.0.1] /home/transang/.gradle/caches/transforms-3/9ba6d5e2710ab5efac0fdb201e4c1658/transformed/jetified-facebook-core-16.0.1/AndroidManifest.xml:31:13-72
android:exported
ADDED from [com.facebook.android:facebook-core:16.0.1] /home/transang/.gradle/caches/transforms-3/9ba6d5e2710ab5efac0fdb201e4c1658/transformed/jetified-facebook-core-16.0.1/AndroidManifest.xml:32:13-37
android:name
ADDED from [com.facebook.android:facebook-core:16.0.1] /home/transang/.gradle/caches/transforms-3/9ba6d5e2710ab5efac0fdb201e4c1658/transformed/jetified-facebook-core-16.0.1/AndroidManifest.xml:30:13-70