Identificare le app di proprietà dello sviluppatore

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