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(); } });