Para casos de uso como análise ou prevenção de fraude em um determinado dispositivo, talvez seja 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 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 de desenvolvedor do Google Play
Para apps instalados pela Google Play Store, a API ID do conjunto de apps retorna um ID no escopo do 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 Play Store. 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 seguintes condições, 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 dependa de um valor armazenado em cache do ID do conjunto de apps
O ID do conjunto de apps para um determinado conjunto de apps instalados da Google Play Store em um dispositivo pode ser redefinido em qualquer uma das seguintes condições:
- A API 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 faz uma redefinição de fábrica do 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 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(); } });