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 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 com escopo definido 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 Play Store, eles vão compartilhar 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 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 é 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 condições a seguir, o ID do conjunto de apps para um determinado conjunto de apps instalados na 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 realiza 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 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 universalmente exclusivo.