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

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

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

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

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

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

Получить клиент статистики игрока

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

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

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

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

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

  • Количество покупок : приблизительное количество покупок внутри приложения для игрока.

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

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

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

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

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

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

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

  1. Вызовите метод PlayerStatsClient.loadPlayerStats() .
  2. Если вызов успешен, сервисы игр Google Play возвращают объект 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 позволяет легко определять различные типы игроков на основе их вовлеченности и поведения при расходах, а также применять соответствующие стратегии для улучшения их игрового опыта.

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

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