게임에 플레이어 통계 추가

Player Stats API를 사용하면 특정 플레이어 세그먼트와 다양한 단계의 플레이어 수명 주기에 맞춰 게임 환경을 설정할 수 있습니다. 플레이어의 게임 진행, 지출 및 참여 방식에 따라 각 플레이어 세그먼트에 맞춰 게임 환경을 구축할 수 있습니다. 예를 들어, 이 API를 사용하여 소극적으로 참여하는 플레이어가 게임에 더욱 몰입할 수 있도록 선제적 조치를 취할 수 있습니다(예: 플레이어가 로그인할 때 새로운 인게임 아이템 표시 및 홍보).

이 가이드에서는 네이티브 C++ 또는 Objective-C 애플리케이션에서 Player Stats API를 사용하는 방법을 보여줍니다.

Player Stats 기본사항

Player Stats API를 사용하면 플레이어의 인게임 활동에 관한 데이터를 검색할 수 있습니다. 검색 가능한 플레이어 데이터 유형에는 다음이 포함됩니다.

  • 평균 세션 길이: 플레이어의 평균 세션 길이(분 단위)입니다. 세션 길이는 플레이어가 Google Play 게임즈 서비스에 로그인한 시간으로 결정됩니다.
  • 이탈 확률: 플레이어가 다음 날 이탈할 확률의 예상값이며 0 (낮은 이탈 확률) 또는 1 (높은 이탈 확률)로 지정됩니다. 7일 동안의 비활성 상태가 유지되면 이탈로 정의됩니다.
  • 마지막 플레이 이후 경과 일: 플레이어가 마지막으로 플레이한 후 경과한 대략적인 일수입니다.
  • 구매 횟수: 플레이어의 대략적인 인앱 구매 횟수입니다.
  • 세션 수: 플레이어의 대략적인 세션 수입니다. 세션은 플레이어가 Google Play 게임즈 서비스에 로그인한 횟수로 결정됩니다.
  • 세션 백분위: 플레이어의 대략적인 세션 백분위수이며 0과 1 사이의 소수점 값으로 표시됩니다 (0과 1 포함). 이 값은 게임의 다른 플레이어와 비교하여 현재 플레이어가 플레이한 세션 수를 나타냅니다. 숫자가 높을수록 플레이어가 더 많은 세션을 진행했다는 의미입니다.
  • 소비 백분위: 플레이어의 대략적인 소비 백분위이며 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);
  }
}];

Player Stats 데이터 사용 팁

Play Stats API를 사용하면 플레이어의 참여 및 소비 방식에 따라 다양한 유형의 플레이어를 쉽게 식별할 수 있으며 적절한 전략을 적용하여 플레이어의 게임 환경을 개선할 수 있습니다.

다음 표에는 플레이어 세그먼트의 몇 가지 예와 권장되는 참여 전략이 나와 있습니다.

플레이어 세그먼트 참여 전략
세션 수가 많고 소비 백분위와 참여도가 높지만 한 주 이상 게임을 진행하지 않고 있는 플레이어
  • 게임에 복귀할 경우 받을 수 있는 할인이나 특별 보너스에 대한 알림을 보냅니다.
  • 뛰어난 성취를 인정하는 복귀 환영 메시지를 표시하고 게임에 복귀하도록 독려하는 배지를 부여합니다.
소비 백분위는 낮지만 참여도가 높은 플레이어
  • 게임을 설치하고 참여하도록 친구를 초대한 플레이어에게 맞춤형 인센티브 보너스를 제공합니다. 이 접근 방식은 플레이어가 게임을 즐기는 모습을 보여줌으로써 새로운 플레이어를 모집합니다.
고액 소비자이지만 게임 진행 횟수가 점차 줄어드는 플레이어
  • 관심을 다시 가질 수 있도록 맞춤형 보너스를 제공합니다(비싼 도구 및 무기를 단기간 제공, 할인 등).
  • 플레이어가 다음에 로그인하면 클랜 공격 같은 커뮤니티 기능으로 안내하는 동영상을 표시해 더 자주, 오랫동안 게임에 참여하도록 유도합니다.