Cómo identificar apps que son propiedad de los desarrolladores

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

Alcance del ID del conjunto de apps

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

Alcance del desarrollador de Google Play

En el caso de las apps que se instalan desde Google Play Store, la API del ID del conjunto de apps devuelve un ID con alcance para el conjunto de apps publicadas en la misma cuenta de desarrollador de Google Play.

Por ejemplo, supongamos que publicas dos apps en tu cuenta de desarrollador de Google Play y ambas se instalan en el mismo dispositivo a través de Google Play Store. Las apps comparten el mismo ID del conjunto de aplicaciones en ese dispositivo. El ID es el mismo, incluso si las apps se firman con claves diferentes.

Permiso de la app

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

  • La app se instala con un instalador que no es Google Play Store.
  • Los Servicios de Google Play no pueden determinar la cuenta de desarrollador de Google Play de una app.
  • La app está instalada en un dispositivo sin los Servicios de Google Play.

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

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

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

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

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

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

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

En el siguiente fragmento de código de ejemplo, se muestra cómo puedes recuperar el ID del conjunto de apps de forma 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();
    }
});