You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询App Scope ID的使用方法及实现位置

App Scope ID 使用方法与实现位置详解

一、核心作用

App Scope ID 是Android官方推出的隐私友好型用户标识,用于同一开发者旗下的多个应用之间识别同一用户,它不受用户重置广告ID的影响,也不会用于第三方广告追踪。

二、使用步骤

  • 1. 集成SDK依赖
    在模块级的build.gradle(或build.gradle.kts)中添加依赖:

    dependencies {
        implementation "com.google.android.gms:play-services-appset:16.0.2"
    }
    

    添加后同步项目,确保依赖成功引入。

  • 2. 获取App Scope ID
    由于SDK调用涉及网络或本地服务交互,建议在后台线程执行,避免阻塞UI:
    Kotlin(协程实现):

    import com.google.android.gms.appset.AppSet
    import com.google.android.gms.appset.AppSetIdInfo
    import com.google.android.gms.tasks.Tasks
    import kotlinx.coroutines.Dispatchers
    import kotlinx.coroutines.withContext
    
    suspend fun fetchAppScopeId(context: Context): String? {
        return withContext(Dispatchers.IO) {
            try {
                val appSetClient = AppSet.getClient(context)
                val appSetIdInfo = Tasks.await(appSetClient.appSetIdInfo)
                appSetIdInfo.id
            } catch (e: Exception) {
                // 处理异常:Google Play服务不可用、网络问题等
                null
            }
        }
    }
    

    Java(回调实现):

    import com.google.android.gms.appset.AppSet;
    import com.google.android.gms.appset.AppSetIdInfo;
    import com.google.android.gms.tasks.OnSuccessListener;
    import com.google.android.gms.tasks.OnFailureListener;
    
    public void getAppScopeId(Context context) {
        AppSet.getClient(context)
            .getAppSetIdInfo()
            .addOnSuccessListener(appSetIdInfo -> {
                String appScopeId = appSetIdInfo.getId();
                // 处理获取到的ID,比如缓存或上传到服务器
            })
            .addOnFailureListener(e -> {
                // 异常处理逻辑
            });
    }
    
  • 3. 典型应用场景
    拿到ID后,可用于跨应用的用户行为关联(比如同一用户在你的不同应用中的积分同步)、跨应用的用户画像构建,注意严格遵守隐私政策,不得用于第三方广告定向。

三、实现位置建议

  • 首次启动缓存:在应用首次启动后,后台执行ID获取逻辑,将结果缓存到本地(如SharedPreferences或Room数据库),后续直接读取缓存即可,无需重复调用API。
  • 前置检查Google Play服务:调用SDK前,先通过GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context)检查服务可用性,避免在无Google Play服务的设备上抛出异常。
  • 隐私合规处理:若应用面向GDPR区域用户,需在隐私政策中明确说明App Scope ID的使用目的,必要时获取用户授权。

四、注意事项

  • 无Google Play服务的设备:这类设备无法获取App Scope ID,可 fallback 到自定义生成的UUID并本地存储作为替代方案。
  • ID持久性:同一设备上,同一开发者的所有应用共享同一个App Scope ID,除非用户卸载该开发者的所有应用,否则ID不会变更。

内容的提问来源于stack exchange,提问作者pro_hussain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:45:24