Identificare le app di proprietà dello sviluppatore

Per casi d'uso come l'analisi o la prevenzione delle frodi 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 dell'ID set di app

L'ID set di app può avere uno dei seguenti ambiti definiti. Per determinare a quale ambito è associato un determinato ID, chiama getScope().

Ambito dello sviluppatore Google Play

Per le app installate dal Google Play Store, l'API ID set di app restituisce un ID limitato all'insieme di app pubblicate nello stesso account sviluppatore Google Play.

Ad esempio, supponiamo che tu pubblichi due app con il tuo account sviluppatore Google Play e che entrambe le app siano installate sullo stesso dispositivo tramite il Google Play Store. Le app condividono lo stesso ID set di app sul dispositivo. L'ID è lo stesso anche se le app sono firmate con chiavi diverse.

Ambito app

In una delle seguenti condizioni, l'SDK ID set di app restituisce un ID univoco per l'app chiamante stessa su un determinato dispositivo:

  • L'app viene 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 senza 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 dal Google Play Store su un dispositivo può essere reimpostato:

  • Non è stato eseguito alcun accesso all'API ID set di app da parte dei gruppi di app che condividono lo stesso valore ID per 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 dell'ID ogni volta che è necessario.

Aggiungere l'SDK ID set di app all'app

Lo snippet seguente mostra un file build.gradle di esempio che utilizza la libreria ID set di app:

dependencies {
    implementation 'com.google.android.gms:play-services-appset:16.1.0'
}

Il seguente snippet di esempio mostra come recuperare l'ID set di app in modo asincrono utilizzando l'API Tasks nei servizi Google Play:

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();
    }
});