本指南將說明如何使用 Google Play 遊戲服務的玩家統計資料 API。您可以利用玩家統計資料 API 擷取玩家遊戲活動的相關資料。
Player Stats API 可讓您根據特定玩家族群和玩家生命週期的不同階段,打造專屬的遊戲體驗。您可以根據玩家的進度、消費和互動情形,為各玩家族群打造專屬體驗。舉例來說,您可以利用此 API 積極採取行動,鼓勵較不活躍的玩家再次與遊戲互動,例如在玩家登入時顯示和宣傳新的遊戲內商品。
您可以在 com.google.android.gms.games.stats
和 com.google.android.gms.games
套件中取得此 API。
事前準備
開始使用 Player Stats API 之前:
取得玩家統計資料用戶端
若要使用 Player Stats API,遊戲必須先取得 PlayerStatsClient
物件。要取得此物件,您可以呼叫 PlayerStatsClient.getPlayersClient()
方法,然後在活動內傳遞。
PlayerStatsClient
類別會使用 Google Play 服務 Task
類別,以非同步方式傳回結果。如要進一步瞭解如何使用工作管理執行緒工作,請參閱 Tasks API 開發人員指南。
球員統計資料基本概念
您可以利用玩家統計資料 API 擷取玩家遊戲活動的相關資料。以下為可擷取的玩家資料類型:
平均工作階段長度:玩家平均工作階段長度,以分鐘為單位。工作階段長度以玩家登入 Google Play 遊戲服務的時間為準。
上次遊玩後經過的天數:玩家上次登入之後經過的大致天數。
購買次數:玩家進行應用程式內購的大致次數。
工作階段數量:玩家工作階段的大致數量。工作階段以玩家登入 Google Play 遊戲服務的次數為準。
工作階段百分位數:玩家工作階段的大致百分位數,為 0 到 1 (含) 之間的小數數值。這個值代表比起遊戲的其他玩家,目前玩家玩過的工作階段數量。數字越高表示玩家玩過的工作階段越多。
消費百分位數:玩家消費金額的大致百分位數,為 0 到 1 (含) 之間的小數數值。這個值代表和遊戲其他玩家相較,目前玩家所消費的金額。數字越高表示玩家消費金額越高。
以下玩家資料類型已經淘汰,一律會回傳未經設定的常數值:
- 流失機率:預測玩家會不會在隔天流失,為 0 (表示不太可能流失) 到 1 (含 1,表示非常可能流失) 之間的小數數值。流失定義為 7 天都沒有活動。
- 消費機率:玩家在此遊戲內消費的大致機率,為 0 (表示不太可能消費) 到 1 (含 1,表示非常可能消費) 之間的小數數值。
- 未來 28 天的消費總額:未來 28 天內,這名玩家預估會在遊戲內消費的總金額。
- 高消費使用者機率:未來 28 天內,某玩家的消費金額在遊戲玩家之中可達到 95 百分位數以上的大致機率。此為 0 (表示不太可能成為高消費使用者) 到 1 (表示非常可能成為高消費使用者) 之間的小數數值。
擷取玩家統計資料
如要擷取已登入玩家的玩家統計資料,請按照下列步驟操作:
呼叫成功後,Google Play 遊戲服務會傳回
Task
物件,此物件會以非同步方式載入PlayerStats
物件。請使用這個物件的方法,擷取已登入玩家在應用程式中的活動資料。
範例如下:
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 可讓您根據玩家參與情形和消費行為,辨別各種玩家類型,並採用合適的策略,以便讓玩家擁有更優質的遊戲體驗。
以下表格列出部分玩家族群範例,以及推薦的參與策略:
玩家族群 | 參與策略 |
---|---|
經常遊玩,且工作階段數量和消費百分位數都很高的玩家,但是沒玩遊戲的時間已經達到一個禮拜以上。 |
|
參與度高但消費百分位數低的玩家。 |
|
高消費金額玩家,並出現已經過了高峰期,而且遊玩頻率開始下降的跡象。 |
|
消費機率非常高或非常低的玩家。 |
|