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