Android 遊戲的玩家統計資料

本指南將說明如何使用 Google Play 遊戲服務的玩家統計資料 API。您可以利用玩家統計資料 API 擷取玩家遊戲活動的相關資料。

Player Stats API 可讓您根據特定玩家族群和玩家生命週期的不同階段,打造專屬的遊戲體驗。您可以根據玩家的進度、消費和互動情形,為各玩家族群打造專屬體驗。舉例來說,您可以利用此 API 積極採取行動,鼓勵較不活躍的玩家再次與遊戲互動,例如在玩家登入時顯示和宣傳新的遊戲內商品。

您可以在 com.google.android.gms.games.statscom.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 (表示非常可能成為高消費使用者) 之間的小數數值。

擷取玩家統計資料

如要擷取已登入玩家的玩家統計資料,請按照下列步驟操作:

  1. 呼叫 PlayerStatsClient.loadPlayerStats() 方法。

  2. 呼叫成功後,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 可讓您根據玩家參與情形和消費行為,辨別各種玩家類型,並採用合適的策略,以便讓玩家擁有更優質的遊戲體驗。

以下表格列出部分玩家族群範例,以及推薦的參與策略:

玩家族群 參與策略
經常遊玩,且工作階段數量和消費百分位數都很高的玩家,但是沒玩遊戲的時間已經達到一個禮拜以上。
  • 發送通知,說明玩家回來玩遊戲時可以得到的折扣或特別獎勵。
  • 顯示可以展示玩家豐功偉業的歡迎回來訊息,並贈送專門用來鼓勵玩家回來玩遊戲的徽章。
參與度高但消費百分位數低的玩家。
  • 特別規劃獎勵,吸引這類玩家邀請好友一起安裝並遊玩您的遊戲。這個方法旨在展示玩家十分享受遊戲,以便吸引新玩家。
高消費金額玩家,並出現已經過了高峰期,而且遊玩頻率開始下降的跡象。
  • 設計專屬獎勵來再次引起玩家的興趣,例如提供高價值但效期短的工具、武器或折扣。
  • 在玩家下次登入時顯示影片,引導對方使用社群功能 (如戰隊攻擊),吸引玩家更頻繁參與遊戲,並增加遊戲時間。
消費機率非常高或非常低的玩家。
  • 不太可能消費:提供觀看廣告影片的選項。顯示低價位的商品。
  • 可能會消費:提早引導對方前往遊戲商店,並提供特別促銷活動,吸引玩家購買商品。