最近大老板查看数据发现有用户上报的GAID有00000000-0000-0000-0000-000000000000的情况。先查代码,发现不是程序写死的常量值,又怀疑是手机的问题,是个例,看了手机的型号,ADVAN出的,印尼最大的手机制造商,那就不像是手机的问题。
程序里是通过AdvertisingIdClient.getAdvertisingIdInfo(context).getId()获取的GAID,然后就查了Google的官方文档,果然发现了端倪。明确说明了用户如果设置了禁止广告追踪,这个getId()就会返回这串0,而且如果适配Android13的话还要多申请一个权限。没有Android12的机器,无法验证这个问题。
下面是AdvertisingIdClient.Info.getId()的说明文档- <strong>public</strong><strong> String getId () </strong>
- Retrieves the advertising ID.
- Starting from late 2021, on Android 12 devices, when isLimitAdTrackingEnabled() is true, the returned value of this API will be 00000000-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 permission com.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 be 00000000-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 the Log tag AdvertisingIdSettings.
- <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
- If you need to prevent the permission from getting merged into your app through dependencies such as SDKs, include the below element in your manifest instead.
- <uses-permission android:name="com.google.android.gms.permission.AD_ID"
- tools:node="remove"/>
- For apps with target API level set to 32 (Android 12L) or older, this permission is not needed.
- See Advertising ID Play Console Help for more details.<br>
复制代码
AdvertisingIdClient.Info.isLimitAdTrackingEnabled()的说明文档- <strong>public boolean</strong><strong> isLimitAdTrackingEnabled () </strong>
- Retrieves whether the user has limit ad tracking enabled or not.
- When the returned value is true, the returned value of getId() will always be 00000000-0000-0000-0000-000000000000 starting with Android 12.
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |