Android 게임의 플레이어 통계

이 가이드에서는 Google Play 게임즈 서비스의 Player Stats API를 사용하는 방법을 보여줍니다. Player Stats API를 사용하면 플레이어의 인게임 활동 데이터를 검색할 수 있습니다.

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

API는 com.google.android.gms.games.statscom.google.android.gms.games 패키지에서 찾을 수 있습니다.

검색 가능한 플레이어 데이터 유형에는 다음이 포함됩니다.

  • 평균 세션 길이: 플레이어의 평균 세션 길이(분 단위)입니다. 세션 길이는 플레이어가 Google Play 게임즈 서비스에 로그인한 시간으로 결정됩니다.

  • 마지막 플레이 이후 경과 일: 플레이어가 마지막으로 플레이한 후 경과한 대략적인 일수입니다.

  • 구매 횟수: 플레이어의 대략적인 인앱 구매 횟수입니다.

  • 세션 수: 플레이어의 대략적인 세션 수입니다. 세션은 플레이어가 Google Play 게임즈 서비스에 로그인한 횟수로 결정됩니다.

  • 세션 백분위: 플레이어의 대략적인 세션 백분위이며 0과 1 사이의 소수점 값으로 표시됩니다(0과 1 포함). 이 값은 게임의 다른 플레이어에 비해 현재 플레이어가 얼마나 세션을 진행했는지를 나타냅니다. 숫자가 높을수록 플레이어가 더 많은 세션을 진행했다는 의미입니다.

  • 소비 백분위: 플레이어의 대략적인 소비 백분위이며 0과 1 사이의 소수점 값으로 표시됩니다(0과 1 포함). 이 값은 게임의 다른 플레이어에 비해 현재 플레이어가 얼마나 소비했는지를 나타냅니다. 숫자가 높을수록 플레이어가 더 많이 소비했다는 의미입니다.

다음 유형의 플레이어 데이터는 지원 중단되었으며 항상 설정되지 않은 상숫값을 반환합니다.

  • 이탈 확률: 플레이어가 다음 날 이탈할 확률의 예상값이며 0(낮은 이탈 확률)과 1(높은 이탈 확률) 사이의 소수점 값으로 표시됩니다(0과 1 포함). 7일 동안의 비활성 상태가 유지되면 이탈로 정의됩니다.
  • 소비 확률: 게임에서 플레이어가 소비를 선택할 대략적인 확률이며 0(낮은 소비 확률)과 1(높은 소비 확률) 사이의 소수점 값으로 표시됩니다(0과 1 포함).
  • 향후 28일 동안의 총 소비: 게임에서 플레이어가 향후 28일간 소비할 것으로 예상되는 대략적인 총액입니다.
  • 고액 소비자 확률: 플레이어가 향후 28일간 게임의 전체 플레이어 중에서 백분위 95 이상인 금액을 소비할 대략적인 확률입니다. 이 값은 0(고액 소비자가 될 확률 낮음)과 1(고액 소비자가 될 확률 높음) 사이의 소수점 값으로 표시됩니다.

시작하기 전에

Player Stats API를 사용하기 전에:

클라이언트 가져오기

Player Stats API를 사용하려면 먼저 게임에 PlayerStatsClient 객체를 확보해야 합니다. 이렇게 하려면 Games.getPlayerStatsClient() 메서드를 호출하고 활동을 전달하면 됩니다.

PlayerStatsClient 클래스는 Google Play 서비스 Task 클래스를 사용하여 결과를 비동기식으로 반환합니다. 태스크를 사용하여 스레드된 작업을 관리하는 방법에 관한 자세한 내용은 Tasks API 개발자 가이드를 참고하세요.

데이터 검색하기

현재 로그인한 플레이어의 플레이어 통계 데이터를 검색하려면 다음 단계를 따르세요.

  1. PlayerStatsClient.loadPlayerStats() 메서드를 호출합니다.

  2. 호출에 성공하면 Google Play 게임즈 서비스는 PlayerStats 객체를 비동기식으로 로드하는 Task 객체를 반환합니다. 이 객체의 메서드를 사용하여 로그인한 플레이어의 앱 활동 데이터를 검색합니다.

다음 예를 참고하세요.

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());
          }
        }
      });
}

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

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

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