Per casi d'uso come l'analisi o la prevenzione di attività fraudolente su un determinato dispositivo, potresti dover correlare l'utilizzo o le azioni in un insieme di app di proprietà della tua organizzazione. Google Play Services offre un'opzione rispettosa della privacy chiamata ID set di app.
Ambito ID set di app
L'ID set di app può avere uno dei seguenti ambiti definiti. Per determinare a quale ambito è associato un particolare ID, chiama getScope()
.
Ambito sviluppatore Google Play
Per le app installate dal Google Play Store, l'API ID set di app restituisce un ID con ambito al gruppo di app pubblicate nello stesso account sviluppatore Google Play.
Ad esempio, supponiamo che tu pubblichi due app nel tuo account sviluppatore Google Play ed entrambe siano installate sullo stesso dispositivo tramite Google Play Store. Le app condividono lo stesso ID set di app su quel dispositivo. L'ID è lo stesso anche se le app sono firmate da chiavi diverse.
Ambito dell'app
In una qualsiasi delle seguenti condizioni, l'SDK dell'ID set di app restituisce un ID univoco per l'app chiamante su un determinato dispositivo:
- L'app è stata installata da un programma di installazione diverso da Google Play Store.
- Google Play Services non è in grado di determinare l'account sviluppatore Google Play di un'app.
- L'app è installata su un dispositivo su cui non è installato Google Play Services.
Non fare affidamento su un valore memorizzato nella cache dell'ID set di app
In una delle seguenti condizioni, l'ID set di app per un determinato insieme di app installate sul Google Play Store su un dispositivo può essere reimpostato:
- I gruppi di app che condividono lo stesso valore ID non hanno avuto accesso all'API ID set di app da oltre 13 mesi.
- L'ultima app di un determinato insieme di app viene disinstallata dal dispositivo.
- L'utente esegue un ripristino dei dati di fabbrica del dispositivo.
L'app deve utilizzare l'SDK per recuperare il valore ID ogni volta che è necessario.
Aggiungi l'SDK dell'ID set di app alla tua app
Lo snippet seguente mostra un file build.gradle
di esempio che utilizza la libreria di ID set di app:
dependencies {
implementation 'com.google.android.gms:play-services-appset:16.0.2'
}
Il seguente snippet di esempio mostra come recuperare l'ID set di app in modo asincrono utilizzando l'API Tasks in Google Play Services:
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(); } });