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