android-Google广告id(adid)获取
android-Google广告id(adid)获取
前篇
- 官方
- 从2021年末开始,在Android 12设备上,当isLimitAdTrackingEnabled()为true时,无论app的目标SDK级别如何,这个API的返回值都将是00000000-0000-0000-0000-0000-00000000000。
接入 adid
API level set to 33 (Android 13) 之后的必须在 AndroidManifest.xml 添加权限
1
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
如果您需要防止权限通过依赖项(如SDK)合并到您的应用程序中,请改为在清单中包含以下元素。
1
2
3
4
5
6
7
8<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
2. gradle 引入库
```json
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.1'
}代码获取
1
2
3
4
5
6
7
8
9
10
11
12
13// 获取 Google 广告 id
public static String getAdid() {
try {
AdvertisingIdClient.Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(ActivityMgr.getIns().getActivity());
boolean isLimit = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && adInfo.isLimitAdTrackingEnabled(); // Android 12+ 才开始限制
LogUtil.TD(TAG, "--- adid is isLimit: %b", isLimit);
return isLimit ? null : adInfo.getId();
} catch (Exception e) {
LogUtil.E("--- getAdvertisingIdInfo error: %s", e.getMessage());
e.printStackTrace();
return null;
}
}
广告 id 限制
- 控制您会看到的广告 - https://support.google.com/accounts/answer/2662856?hl=zh-Hans&co=GENIE.Platform%3DAndroid
settings -> google -> ads, opt out 打开表示限制获取 adid, 默认是关闭, 可以获取