Как определить приложения, принадлежащие разработчику

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