Для аналитики или предотвращения мошенничества на определенном устройстве может потребоваться сопоставить использование или действия в наборе приложений, принадлежащих вашей организации. Сервисы Google Play предлагают вариант, не нарушающий конфиденциальность, – идентификатор набора приложений.
Область действия идентификатора набора приложений
Идентификатор набора приложений может иметь одну из следующих областей действия: Чтобы определить, с какой областью действия связан определенный идентификатор, вызовите getScope().
Область действия разработчика Google Play
Для приложений, установленных из Google Play, App Set ID API возвращает идентификатор набора приложений, который относится к набору приложений, опубликованных в одном аккаунте разработчика Google Play.
Например, вы опубликовали два приложения в аккаунте разработчика Google Play, и оба они установлены на одном устройстве через Google Play. На этом устройстве у них будет один и тот же идентификатор набора приложений. Идентификатор будет одинаковым, даже если приложения подписаны разными ключами.
Область действия приложения
В следующих случаях SDK возвращает идентификатор, уникальный для вызывающего приложения на определенном устройстве:
- Приложение установлено не из Google Play.
- Сервисы Google Play не могут определить аккаунт разработчика Google Play, к которому относится приложение.
- Приложение установлено на устройстве без сервисов Google Play.
Не полагайтесь на кешированное значение идентификатора набора приложений
Идентификатор набора приложений, установленных на устройстве из Google Play, может быть сброшен в следующих случаях:
- Группы приложений, у которых один и тот же идентификатор набора приложений, не обращались к App Set ID API более 13 месяцев.
- С устройства удалено последнее приложение из заданного набора.
- Пользователь сбрасывает настройки устройства.
Приложение должно использовать SDK для получения значения идентификатора каждый раз, когда это необходимо.
Как добавить в приложение SDK идентификатора набора приложений
Ниже приведен пример файла build.gradle, в котором используется библиотека идентификатора набора приложений.
dependencies {
implementation 'com.google.android.gms:play-services-appset:16.1.0'
}
В примере ниже показано, как асинхронно получить идентификатор набора приложений с помощью Tasks API в сервисах 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();
}
});
Подробнее о формате UUID…