Para casos de uso como análise ou prevenção de fraude em um determinado dispositivo, 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 em 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 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, se você publicar dois apps na sua conta de desenvolvedor do Google Play e ambos forem instalados no mesmo dispositivo pela Google Play Store, Os apps compartilham o mesmo ID do conjunto de apps nesse dispositivo. O ID é o mesmo, ainda que os apps sejam assinados por chaves diferentes.
Escopo do app
Em qualquer uma das seguintes condições, o SDK do ID do conjunto de apps retorna um ID exclusivo para o próprio app de ligação em um determinado dispositivo:
- O app é instalado por um instalador que não é a 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 confiar em um valor armazenado em cache do ID do conjunto de apps
Em qualquer uma das seguintes condições, 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 é desinstalado do dispositivo.
- O usuário faz uma redefinição de fábrica no dispositivo.
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 aplicativo
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 abaixo demonstra como recuperar 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();
}
});
Para mais informações sobre o formato UUID, consulte Identificador único universal.