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

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

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

API можно найти в пакетах com.google.android.gms.games.stats и com.google.android.gms.games .

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

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

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

Чтобы начать использовать API статистики игроков, ваша игра должна сначала получить объект PlayerStatsClient . Это можно сделать, вызвав метод PlayerStatsClient.getPlayersClient() и передав ему Activity.

Класс PlayerStatsClient использует класс Task сервисов Google Play для асинхронного возврата результатов. Подробнее об использовании задач для управления потоковой работой см. в руководстве разработчика Tasks API .

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

Вы можете использовать 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() {
  PlayGames.getPlayerStatsClient(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 позволяет определять различные типы игроков на основе их вовлеченности и поведения при расходах, а также применять соответствующие стратегии для улучшения их игрового опыта.

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

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