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

Em apps instalados pela Google Play Store, a API 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 que 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 conseguiu determinar a conta de desenvolvedor do Google Play de um app.
  • o app for 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 pela Google Play Store em um dispositivo pode ser redefinido:

  • A API ID do conjunto de apps não foi acessada pelos grupos de apps que compartilham o mesmo valor de ID por 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 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();
    }
});