Cómo identificar apps que son propiedad de los desarrolladores

Para casos de uso como estadísticas o prevención de fraudes en un dispositivo determinado, es posible que debas correlacionar el uso o las acciones en un conjunto de apps que pertenecen a tu organización. Los Servicios de Google Play ofrecen una opción que respeta la privacidad llamada ID del conjunto de apps.

Alcance del ID del conjunto de apps

El ID del conjunto de aplicaciones puede tener uno de los siguientes alcances definidos. Para determinar con qué alcance está asociado un ID en particular, llama a getScope().

Alcance del desarrollador de Google Play

En el caso de las apps instaladas por Google Play Store, la API de ID del conjunto de apps muestra un ID específico para el conjunto de apps publicadas en la misma cuenta de desarrollador de Google Play.

Por ejemplo, supongamos que publicas dos apps con tu cuenta de desarrollador de Google Play y ambas están instaladas en el mismo dispositivo a través de Google Play Store. Las apps comparten el mismo ID de conjunto de apps en ese dispositivo. El ID es el mismo, incluso si las apps están firmadas con claves diferentes.

Alcance de la app

En cualquiera de las siguientes condiciones, el SDK del ID del conjunto de apps muestra un ID único para la app que realiza la llamada en un dispositivo determinado:

  • La aplicación la instala un instalador distinto de Google Play Store.
  • Servicios de Google Play no puede determinar la cuenta de desarrollador de Google Play de una app.
  • La app se instala en un dispositivo que no tiene los Servicios de Google Play.

No dependas de un valor almacenado en caché del ID del conjunto de apps

En cualquiera de las siguientes condiciones, se puede restablecer el ID del conjunto de apps para un conjunto determinado de apps instaladas en Google Play Store en un dispositivo:

  • Los grupos de apps que comparten el mismo valor de ID no accedieron a la API de ID del conjunto de apps durante más de 13 meses.
  • La última app de un conjunto determinado de apps se desinstala del dispositivo.
  • El usuario restablece la configuración de fábrica del dispositivo.

Tu app debe usar el SDK para recuperar el valor de ID cada vez que sea necesario.

Agrega el SDK de ID del conjunto de aplicaciones a tu app

En el siguiente fragmento, se muestra un archivo build.gradle de ejemplo que usa la biblioteca de ID de conjunto de apps:

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

En el siguiente fragmento de ejemplo, se demuestra cómo puedes recuperar el ID del conjunto de apps de manera asíncrona con la API de Tasks en los Servicios de 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();
    }
});