특정 기기에서 분석 또는 사기 방지와 같은 사용 사례의 경우 조직에서 소유한 여러 앱에 걸쳐 사용량이나 작업을 상호 연관시켜야 할 수 있습니다. Google Play 서비스는 앱 세트 ID라는 개인 정보 보호 옵션을 제공합니다.
앱 세트 ID 범위
앱 세트 ID에는 다음과 같이 정의된 범위 중 하나가 있을 수 있습니다. 특정 ID가 연결된 범위를 확인하려면 getScope()
를 호출합니다.
Google Play 개발자 범위
Google Play 스토어에서 설치한 앱의 경우 앱 세트 ID API는 동일한 Google Play 개발자 계정으로 게시된 앱 세트로 범위가 지정된 ID를 반환합니다.
예를 들어 Google Play 개발자 계정으로 두 앱을 게시했는데 두 앱이 모두 Google Play 스토어를 통해 동일한 기기에 설치되었다고 가정해 보겠습니다. 앱은 해당 기기에서 동일한 앱 세트 ID를 공유합니다. 앱이 다른 키로 서명되더라도 ID는 동일합니다.
앱 범위
다음 조건 중 하나가 충족되면 앱 세트 ID SDK는 특정 기기에서 호출 앱 자체에 고유한 ID를 반환합니다.
- 앱이 Google Play 스토어 이외의 설치 프로그램에 의해 설치되었습니다.
- Google Play 서비스에서 앱의 Google Play 개발자 계정을 확인할 수 없습니다.
- 앱이 Google Play 서비스가 없는 기기에 설치되어 있습니다.
앱 세트 ID의 캐시된 값에 의존하지 않음
다음 조건 중 하나가 충족되면 기기의 특정 Google Play 스토어 설치 앱 세트의 앱 세트 ID를 재설정할 수 있습니다.
- 동일한 ID 값을 공유하는 앱 그룹에서 13개월 넘게 앱 세트 ID API에 액세스하지 않았습니다.
- 지정된 앱 세트의 마지막 앱이 기기에서 제거됩니다.
- 사용자가 기기를 초기화합니다.
앱은 필요할 때마다 SDK를 사용하여 ID 값을 가져와야 합니다.
앱에 앱 세트 ID SDK 추가
다음 스니펫은 앱 세트 ID 라이브러리를 사용하는 build.gradle
파일의 예를 보여줍니다.
dependencies {
implementation 'com.google.android.gms:play-services-appset:16.1.0'
}
다음 샘플 스니펫은 Google Play 서비스에서 Tasks API를 사용하여 앱 세트 ID를 비동기식으로 가져오는 방법을 보여줍니다.
Kotlin
val client = AppSet.getClient(applicationContext) as AppSetIdClient val task: Task<AppSetIdInfo> = client.appSetIdInfo as Task<AppSetIdInfo> task.addOnSuccessListener({ // Determine current scope of app set ID. val scope: Int = it.scope // Read app set ID value, which uses version 4 of the // universally unique identifier (UUID) format. val id: String = it.id })
Java
Context context = getApplicationContext(); AppSetIdClient client = AppSet.getClient(context); Task<AppSetIdInfo> task = client.getAppSetIdInfo(); task.addOnSuccessListener(new OnSuccessListener<AppSetIdInfo>() { @Override public void onSuccess(AppSetIdInfo info) { // Determine current scope of app set ID. int scope = info.getScope(); // Read app set ID value, which uses version 4 of the // universally unique identifier (UUID) format. String id = info.getId(); } });