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

For use cases such as analytics or fraud prevention on a given device, you might need to correlate usage or actions across a set of apps owned by your organization. Google Play services offers a privacy-friendly option called app set ID .

App set ID scope

Идентификатор набора приложений может иметь одну из следующих определенных областей действия. Чтобы определить, к какой области действия относится конкретный идентификатор, вызовите метод getScope() .

Google Play developer scope

Для приложений, устанавливаемых из магазина Google Play, API идентификаторов набора приложений возвращает идентификатор, ограниченный набором приложений, опубликованных под одной и той же учетной записью разработчика Google Play.

Например, предположим, вы опубликовали два приложения под своей учетной записью разработчика Google Play, и оба приложения установлены на одном и том же устройстве через магазин Google Play. Приложения используют один и тот же идентификатор набора приложений на этом устройстве. Идентификатор остается тем же, даже если приложения подписаны разными ключами.

App scope

При любом из следующих условий SDK для установки идентификаторов приложения возвращает уникальный идентификатор, присущий самому вызывающему приложению на данном устройстве:

  • Приложение устанавливается не через магазин Google Play, а через другой установщик.
  • Сервисы Google Play не могут определить учетную запись разработчика Google Play для приложения.
  • Приложение установлено на устройстве, на котором отсутствуют сервисы Google Play.

Don't rely on a cached value of app set ID

При любом из следующих условий идентификатор набора приложений для определенного набора приложений, установленных на устройстве в магазине Google Play:

  • API для набора идентификаторов приложений не использовался группами приложений, имеющими одинаковое значение идентификатора, более 13 месяцев.
  • Последнее приложение из заданного набора приложений удаляется с устройства.
  • The user performs a factory reset of the device.

Ваше приложение должно использовать SDK для получения значения ID каждый раз, когда это необходимо.

Add the app set ID SDK to your app

В следующем фрагменте показан пример файла 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 см. раздел «Универсальный уникальный идентификатор» .