Identificar apps de desenvolvedor

Para casos de uso como análise ou prevenção de fraudes em um determinado dispositivo, pode ser necessário correlacionar o uso ou as ações em um conjunto de apps da sua organização. O Google Play Services oferece uma opção com foco na privacidade chamada ID do conjunto de apps.

Escopo do ID do conjunto de apps

O ID do conjunto de apps pode ter um dos seguintes escopos definidos. Para determinar a que escopo um ID específico está associado, chame getScope().

Escopo do desenvolvedor do Google Play

Para apps instalados pela Google Play Store, a API de ID do conjunto de apps retorna um ID com escopo para o conjunto de apps publicados na mesma conta de desenvolvedor do Google Play.

Por exemplo, suponha que você publique dois apps na sua conta de desenvolvedor do Google Play e ambos estejam instalados no mesmo dispositivo pela Google Play Store. Os apps compartilham o mesmo ID do conjunto de apps no dispositivo. O ID é o mesmo, mesmo que os apps sejam assinados por chaves diferentes.

Escopo do app

Em qualquer uma das condições a seguir, o SDK de ID do conjunto de apps retorna um ID exclusivo para o próprio app de chamada em um determinado dispositivo:

  • O app foi instalado por um instalador diferente da Google Play Store.
  • O Google Play Services não consegue determinar a conta de desenvolvedor do Google Play de um app.
  • O app está instalado em um dispositivo sem o Google Play Services.

Não depender de um valor armazenado em cache do ID do conjunto de apps

Em qualquer uma das condições a seguir, o ID do conjunto de apps para um determinado conjunto de apps instalados na Google Play Store em um dispositivo pode ser redefinido:

  • A API de ID do conjunto de apps não foi acessada pelos grupos de apps que compartilham o mesmo valor de ID há mais de 13 meses.
  • O último app de um determinado conjunto de apps é desinstalado do dispositivo.
  • O usuário redefine o dispositivo para a configuração original.

Seu app precisa usar o SDK para recuperar o valor do ID sempre que for necessário.

Adicionar o SDK de ID do conjunto de apps ao seu app

O snippet abaixo mostra um exemplo de arquivo build.gradle que usa a biblioteca de IDs do conjunto de apps:

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

O snippet de exemplo abaixo demonstra como extrair o ID do conjunto de apps de forma assíncrona usando a API Tasks no 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();
    }
});