Для таких задач, как аналитика или предотвращение мошенничества на конкретном устройстве, может потребоваться сопоставление использования или действий в наборе приложений, принадлежащих вашей организации. Сервисы Google Play предлагают удобный для обеспечения конфиденциальности вариант, называемый идентификатором набора приложений (app set ID) .
Область действия идентификатора набора приложений
Идентификатор набора приложений может иметь одну из следующих определенных областей действия. Чтобы определить, к какой области действия относится конкретный идентификатор, вызовите метод getScope() .
Область применения Google Play для разработчиков
Для приложений, устанавливаемых из магазина Google Play, API идентификаторов набора приложений возвращает идентификатор, ограниченный набором приложений, опубликованных под одной и той же учетной записью разработчика Google Play.
Например, предположим, вы опубликовали два приложения под своей учетной записью разработчика Google Play, и оба приложения установлены на одном и том же устройстве через магазин Google Play. Приложения используют один и тот же идентификатор набора приложений на этом устройстве. Идентификатор остается тем же, даже если приложения подписаны разными ключами.
Область применения приложения
При любом из следующих условий SDK для установки идентификаторов приложения возвращает уникальный идентификатор, присущий только вызывающему приложению на данном устройстве:
- Приложение устанавливается не через магазин Google Play, а через другой установщик.
- Сервисы Google Play не могут определить учетную запись разработчика Google Play для приложения.
- Приложение установлено на устройстве, на котором отсутствуют сервисы Google Play.
Не полагайтесь на кэшированное значение идентификатора набора приложений.
При любом из следующих условий идентификатор набора приложений для определенного набора приложений, установленных в магазине Google Play на устройстве, может быть сброшен:
- API для набора идентификаторов приложений не использовался группами приложений, имеющими одинаковое значение идентификатора, более 13 месяцев.
- Последнее приложение из заданного набора приложений удаляется с устройства.
- Пользователь выполняет сброс настроек устройства до заводских.
Ваше приложение должно использовать SDK для получения значения ID каждый раз, когда это необходимо.
Добавьте SDK для установки идентификаторов приложений в ваше приложение.
В следующем фрагменте показан пример файла build.gradle , использующего библиотеку app set ID:
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
})
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 см. раздел «Универсальный уникальный идентификатор» .