Статистика игроков в играх для Android

В связи с прекращением поддержки API Google Sign-In , мы удаляем SDK для игр версии 1 в 2026 году. После февраля 2025 года вы не сможете публиковать в Google Play игры, которые были интегрированы с SDK для игр версии 1. Мы рекомендуем использовать вместо него SDK для игр версии 2.
Хотя существующие игры с интеграцией предыдущих версий v1 будут продолжать работать еще пару лет, мы рекомендуем перейти на версию v2, начиная с июня 2025 года.
Данное руководство предназначено для использования SDK Play Games Services v1. Информацию о последней версии SDK см. в документации v2 .

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

В этом руководстве показано, как использовать API статистики игроков в играх, использующих сервисы Google Play Games. API можно найти в пакетах com.google.android.gms.games.stats и com.google.android.gms.games .

Прежде чем начать

Прежде чем начать использовать API статистики игроков:

Загрузите клиент статистики игрока.

Для начала использования API статистики игроков ваша игра должна получить объект PlayerStatsClient . Это можно сделать, вызвав метод Games.getPlayerStatsClient() и передав в него активность и учетную GoogleSignInAccount текущего игрока. Чтобы узнать, как получить информацию об учетной записи игрока, см. раздел «Вход в систему в играх Android» .

Основные сведения о статистике игрока

Вы можете использовать API статистики игроков для получения данных об активности игрока в игре. Типы данных об игроке, которые вы можете получить, включают:

  • Средняя продолжительность сессии : средняя продолжительность сессии игрока в минутах. Продолжительность сессии определяется временем, в течение которого игрок находится в сервисах Google Play Games.

  • Количество дней с момента последней игры : приблизительное число дней, прошедших с момента последней игры игрока.

  • Количество покупок : приблизительное количество внутриигровых покупок, совершенных игроком.

  • Количество сессий : приблизительное количество сессий игрока. Количество сессий определяется числом входов игрока в сервисы Google Play Games.

  • Процентное значение количества сессий : приблизительное процентное значение количества сессий, сыгранных игроком, представленное в виде десятичного числа от 0 до 1 включительно. Это значение показывает, сколько сессий сыграл текущий игрок по сравнению с остальными игроками этой игры. Более высокие числа указывают на то, что игрок сыграл больше сессий.

  • Процент расходов : Приблизительный процент расходов игрока, выраженный в десятичном значении от 0 до 1 включительно. Это значение показывает, сколько текущий игрок потратил по сравнению с остальными игроками игры. Более высокие значения указывают на то, что игрок потратил больше.

Следующие типы данных об игроке устарели и всегда возвращают константу с неустановленным значением:

  • Вероятность оттока : Прогнозируемая вероятность того, что игрок покинет сайт в течение следующего дня, выражается в виде десятичного значения от 0 (низкая вероятность оттока) до 1 (высокая вероятность оттока) включительно. Отток определяется как 7 дней бездействия.
  • Вероятность траты : приблизительная вероятность того, что игрок решит потратить деньги в этой игре, выраженная в виде десятичного значения от 0 (низкая вероятность траты) до 1 (высокая вероятность траты) включительно.
  • Общие расходы за следующие 28 дней : приблизительная общая ожидаемая сумма расходов игрока в этой игре за следующие 28 дней.
  • Вероятность того, что игрок потратит много денег : приблизительная вероятность того, что в течение следующих 28 дней игрок потратит сумму, которая находится в 95-м процентиле или выше среди игроков данной игры. Это значение указывается в виде десятичной дроби от 0 (низкая вероятность стать игроком, тратящим много денег) до 1 (высокая вероятность стать игроком, тратящим много денег).

Получение данных статистики игрока

Чтобы получить данные статистики игрока, вошедшего в систему в данный момент, выполните следующие действия:

  1. Вызовите метод PlayerStatsClient.loadPlayerStats() .
  2. Если вызов выполнен успешно, сервисы Google Play Games возвращают объект Task , который асинхронно загружает объект PlayerStats . Используйте методы этого объекта для получения данных об активности авторизованного игрока в вашем приложении.

Вот пример:

public void checkPlayerStats() {
  Games.getPlayerStatsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .loadPlayerStats(true)
      .addOnCompleteListener(new OnCompleteListener<AnnotatedData<PlayerStats>>() {
        @Override
        public void onComplete(@NonNull Task<AnnotatedData<PlayerStats>> task) {
          if (task.isSuccessful()) {
            // Check for cached data.
            if (task.getResult().isStale()) {
              Log.d(TAG, "using cached data");
            }
            PlayerStats stats = task.getResult().get();
            if (stats != null) {
              Log.d(TAG, "Player stats loaded");
              if (stats.getDaysSinceLastPlayed() > 7) {
                Log.d(TAG, "It's been longer than a week");
              }
              if (stats.getNumberOfSessions() > 1000) {
                Log.d(TAG, "Veteran player");
              }
              if (stats.getChurnProbability() == 1) {
                Log.d(TAG, "Player is at high risk of churn");
              }
            }
          } else {
            int status = CommonStatusCodes.DEVELOPER_ERROR;
            if (task.getException() instanceof ApiException) {
              status = ((ApiException) task.getException()).getStatusCode();
            }
            Log.d(TAG, "Failed to fetch Stats Data status: "
                + status + ": " + task.getException());
          }
        }
      });
}

Советы по использованию данных статистики игроков

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

В таблице ниже приведены примеры сегментов игроков и рекомендуемые стратегии взаимодействия:

Сегмент игроков Стратегия взаимодействия
Игроки, которые часто играют, проводят много игровых сессий и имеют высокий процент потраченных средств, но не играли в течение последней недели или более.
  • Отправьте уведомление о скидке или специальном бонусе, доступном после их возвращения к игре.
  • Разместите приветственное сообщение, отмечающее впечатляющие достижения, и вручите значок, призванный поощрить возвращение к игре.
Игроки с высокой вовлеченностью, тратящие мало средств.
  • Разрабатывайте бонусы таким образом, чтобы мотивировать игроков приглашать своих друзей установить и присоединиться к вашей игре. Такой подход основан на том, что игрок демонстрирует удовольствие от игры, и способствует привлечению новых игроков.
Игроки, тратящие большие суммы денег, демонстрируют признаки того, что достигли пика своей карьеры и стали играть реже.
  • Подбирайте бонусы таким образом, чтобы поддерживать интерес игроков, например, предлагая ценные инструменты, оружие или скидки на короткий срок.
  • При следующем входе игрока в систему покажите ему видеоролик, который направит его к функциям сообщества, таким как клановые атаки, способствующие более частому и продолжительному взаимодействию.
Игроки с очень высокой или очень низкой вероятностью траты денег.
  • Маловероятно, что кто-то потратит деньги: Предложите посмотреть рекламный ролик. Покажите товары по более низкой цене для покупки.
  • Вероятность совершения покупки: Направьте их в внутриигровой магазин на раннем этапе и предложите специальные акции, чтобы стимулировать покупки.