Player Stats API를 사용하면 특정 플레이어 세그먼트와 다양한 단계의 플레이어 수명 주기에 맞춰 게임 환경을 설정할 수 있습니다. 플레이어의 게임 진행, 소비 및 참여 방식에 따라 각 플레이어 세그먼트에 맞춰 게임 환경을 구축할 수 있습니다. 예를 들어, 이 API를 사용하여 소극적으로 참여하는 플레이어가 게임에 더욱 몰입할 수 있도록 선제적 조치를 취할 수 있습니다(예: 플레이어가 로그인할 때 새로운 인게임 아이템 표시 및 홍보).
이 가이드에서는 Google Play 게임즈 서비스를 사용하여 게임에 Player Stats API를 사용하는 방법을 보여줍니다. API는 com.google.android.gms.games.stats
및 com.google.android.gms.games
패키지에서 찾을 수 있습니다.
시작하기 전에
Player Stats API를 사용하기 전에:
Player Stats 클라이언트 가져오기
Player Stats API를 사용하려면 먼저 게임에 PlayerStatsClient
객체를 확보해야 합니다. 이렇게 하려면 Games.getPlayerStatsClient()
메서드를 호출하고 활동과 현재 플레이어의 GoogleSignInAccount
를 전달하면 됩니다. 플레이어 계정 정보를 검색하는 방법을 알아보려면 Android 게임에서 로그인을 참고하세요.
플레이어 통계 기본사항
Player Stats API를 사용하면 플레이어의 인게임 활동 데이터를 검색할 수 있습니다. 검색 가능한 플레이어 데이터 유형에는 다음이 포함됩니다.
평균 세션 길이: 플레이어의 평균 세션 길이(분 단위)입니다. 세션 길이는 플레이어가 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(고액 소비자가 될 확률 높음) 사이의 소수점 값으로 표시됩니다.
플레이어 통계 데이터 검색
현재 로그인한 플레이어의 플레이어 통계 데이터를 검색하려면 다음 단계를 따르세요.
PlayerStatsClient.loadPlayerStats()
메서드를 호출합니다.- 호출이 성공하면 Google Play 게임즈 서비스는
PlayerStats
객체를 비동기식으로 로드하는Task
객체를 반환합니다. 이 객체의 메서드를 사용하여 로그인한 플레이어의 앱 활동 데이터를 검색합니다.
예를 들면 다음과 같습니다.
public void checkPlayerStats() { Games.getPlayerStatsClient(this, GoogleSignIn.getLastSignedInAccount(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()); } } }); }
Player Stats 데이터 사용 관련 도움말
Play Stats API를 사용하면 플레이어의 참여 및 소비 방식에 따라 다양한 유형의 플레이어를 쉽게 식별할 수 있으며 적절한 전략을 적용하여 플레이어의 게임 환경을 개선할 수 있습니다.
다음 표에는 플레이어 세그먼트의 몇 가지 예와 권장되는 참여 전략이 나와 있습니다.
플레이어 세그먼트 | 참여 전략 |
---|---|
세션 수가 많고 소비 백분위와 참여도가 높지만 한 주 이상 게임을 진행하지 않고 있는 플레이어 |
|
소비 백분위는 낮지만 참여도가 높은 플레이어 |
|
고액 소비자이지만 게임 진행 횟수가 점차 줄어드는 플레이어 |
|
소비 확률이 매우 높거나 매우 낮은 플레이어 |
|