В связи с прекращением поддержки API входа Google мы удалим SDK для игр v1 в 2026 году. После февраля 2025 года вы не сможете публиковать в Google Play игры, недавно интегрированные с SDK для игр v1. Вместо этого мы рекомендуем использовать SDK для игр v2.
 Хотя существующие игры с интеграцией предыдущих игр v1 продолжат функционировать еще пару лет, вам рекомендуется перейти на v2, начиная с июня 2025 года.
 Это руководство по использованию Play Games Services v1 SDK. C++ SDK для Play Games Services v2 пока недоступен.
В этом руководстве показано, как использовать службу событий в приложении C++.
Прежде чем начать
Если вы еще этого не сделали, возможно, вам будет полезно ознакомиться с концепциями игровых событий .
Чтобы настроить среду разработки C++ для использования службы Events, следуйте инструкциям в руководстве «Начало работы с C++» . Вы можете загрузить C++ SDK для сервисов Play Games со страницы загрузки SDK .
Прежде чем ваша игра сможет получить доступ к событиям, их необходимо сначала определить в консоли Google Play .
Отправить событие
 Вы можете добавить код в свою игру, чтобы уведомлять службу событий о любых событиях, представляющих интерес для вашей игры. Примеры событий, которые вы можете отслеживать в игре: убийство врагов, исследование или возвращение в различные игровые области, а также получение игровых предметов. Как правило, метод Increment менеджера событий вызывается для увеличения счётчика событий на 1 каждый раз, когда игрок выполняет действие, связанное с этим событием (например, «Убил одного монстра»).
В следующем примере показано, как можно отправить обновленное количество событий в службу событий.
  // Increment the event count when player performs the 'Attack blue
  // monster' action.
  game_services_->Events().Increment(BLUE_MONSTER_EVENT_ID);
Извлечь события
 Чтобы получить текущее значение счётчика, хранящееся на серверах Google для определённого события, вызовите один из методов Fetch* . Это можно сделать, например, если вы хотите отобразить игровую статистику или прогресс игрока из пользовательского интерфейса вашей игры.
В следующем примере показано, как можно извлекать и регистрировать данные о событиях в вашей игре.
  // Log Events details.
  LogI("---- Showing Event Counts -----");
  gpg::EventManager::FetchAllCallback callback =
      [](gpg::EventManager::FetchAllResponse const &response) {
    for (auto i : response.data) {
      gpg::Event const &event = i.second;
      LogI("Event name: %s  count: %d", event.Name().c_str(),
           event.Count());
    }
  };
  game_services_->Events().FetchAll(callback);
