Identificar apps de desenvolvedor

Para casos de uso como análise ou prevenção de fraudes em um determinado dispositivo, talvez seja necessário correlacionar o uso ou as ações em um conjunto de apps de sua organização. O Google Play Services oferece uma opção que respeita a 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 qual 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 que ambos sejam instalados no mesmo dispositivo pela loja. Os apps compartilham o mesmo ID do conjunto de apps nesse 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 do ID do conjunto de apps retorna um ID exclusivo para o próprio app de chamada em um determinado dispositivo:

  • O app é 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 de 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 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.

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

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

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

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

O snippet de exemplo a seguir demonstra como recuperar o ID do conjunto de apps de forma assíncrona usando a API Tasks nos serviços do 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();
    }
});