Определение приложений, принадлежащих разработчикам

Для таких случаев использования, как аналитика или предотвращение мошенничества на данном устройстве, вам может потребоваться сопоставить использование или действия в наборе приложений, принадлежащих вашей организации. Сервисы 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();
    }
});