Добавьте статистику игрока в свою игру

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

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

В этом руководстве показано, как использовать API статистики игроков в нативном приложении на C++ или Objective-C.

Player stats basics

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

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

Получение статистики игрока, вошедшего в систему, с помощью C++

// Create the callback for our asynchronous fetch call.  This callback will
// log either an error or the average session length for the currently
// signed-in player.
gpg::StatsManager::FetchForPlayerCallback callback = [](gpg::StatsManager::FetchForPlayerResponse const &response) {
  if (IsError(response.status)) {
    LogE("An error occurred fetching player stats.");
  } else {
  gpg::PlayerStats const & player_stats = response.data;
    if (player_stats.HasAverageSessionLength()) {
      LogI("Average session length: %f", player_stats.AverageSessionLength());
    } else {
      LogW("Currently signed-in player had no associated average session length stats.");
    }
  }
};
// Asynchronously fetch the Player Stats.  When the fetch is finished it
// will call our callback. game_services_ is the std::unique_ptr<GameServices>
// returned by gpg::GameServices::Builder.Create()
game_services_->Stats().FetchForPlayer(callback);

Получите статистику игрока, вошедшего в систему в данный момент, с помощью Objective-C.

// Asynchronously fetches the Player Stats and then logs either a
// description of them or an error
[GPGPlayerStats playerStatsWithCompletionHandler:^(GPGPlayerStats *playerStats, NSError *error) {
  if (error) {
    NSLog(@"Error fetching player stats: %@", error);
  } else {
    NSLog(@"Description of stats for the currently signed-in player: %@", playerStats);
  }
}];

Tips for using player stats data

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

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

Player Segment Engagement Strategy
Игроки, которые часто играют, проводят много игровых сессий и имеют высокий процент потраченных средств, но не играли в течение последней недели или более.
  • Отправьте уведомление о скидке или специальном бонусе, доступном после их возвращения к игре.
  • Разместите приветственное сообщение, отмечающее впечатляющие достижения, и вручите значок, призванный поощрить возвращение к игре.
Игроки с высокой вовлеченностью, тратящие мало средств.
  • Разрабатывайте бонусы таким образом, чтобы мотивировать игроков приглашать своих друзей установить и присоединиться к вашей игре. Такой подход основан на том, что игрок демонстрирует удовольствие от игры, и способствует привлечению новых игроков.
Игроки, тратящие большие суммы денег, демонстрируют признаки того, что достигли пика своей карьеры и стали играть реже.
  • Подбирайте бонусы таким образом, чтобы поддерживать интерес игроков, например, предлагая ценные инструменты, оружие или скидки на короткий срок.
  • При следующем входе игрока в систему покажите ему видеоролик, который направит его к функциям сообщества, таким как клановые атаки, способствующие более частому и продолжительному взаимодействию.