特定のデバイスでの分析や不正行為の防止などのユースケースでは、組織が所有する一連のアプリ全体で使用状況やアクションを関連付けることが必要になる場合があります。Google Play 開発者サービスには、アプリセット ID というプライバシーに配慮したオプションが用意されています。
アプリセット ID のスコープ
アプリセット ID には、次のいずれかの定義済みスコープを設定できます。特定の ID に関連付けられているスコープを特定するには、getScope() を呼び出します。
Google Play デベロッパーのサポート範囲
Google Play ストアによってインストールされたアプリの場合、アプリセット ID API は、同じ Google Play デベロッパー アカウントで公開されているアプリセットを対象とする ID を返します。
たとえば、Google Play デベロッパー アカウントで 2 つのアプリを公開し、両方のアプリが 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();
}
});
UUID 形式の詳細については、Universally Unique Identifier をご覧ください。