Android 遊戲中的玩家統計資料

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

本指南說明如何使用 Google Play 遊戲服務,在遊戲中使用玩家統計資料 API。您可以在 com.google.android.gms.games.statscom.google.android.gms.games 套件中取得此 API。

事前準備

開始使用 Player Stats API 之前:

取得播放器統計資料用戶端

若要使用 Player Stats API,遊戲必須要先取得 PlayerStatsClient 物件。要取得此物件,您可以呼叫 Games.getPlayerStatsClient() 方法,然後在活動內傳遞。

玩家統計資料基本概念

您可以使用玩家統計資料 API 擷取玩家在遊戲內的活動相關資料。可以擷取的玩家資料類型有:

  • 平均工作階段長度:玩家平均工作階段長度,以分鐘為單位。工作階段長度以玩家登入 Google Play 遊戲服務的時間為準。

  • 上次遊玩後經過的天數:玩家上次登入之後經過的大致天數。

  • 購買次數:玩家進行應用程式內購的大致次數。

  • 工作階段數量:玩家工作階段的大致數量。工作階段以玩家登入 Google Play 遊戲服務的次數為準。

  • 工作階段百分位數:玩家工作階段的百分位數概略值,為 0 到 1 (含 1) 之間的小數數值。這個值代表和遊戲其他玩家相較,目前玩家遊玩的工作階段數量。數字越高表示這名玩家玩過的工作階段越多。

  • 消費百分位數:玩家消費金額的大致百分位數,為 0 到 1 (含 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 可以讓您輕鬆根據玩家參與情形和消費行為辨別各種玩家類型,並採用合適的策略,以便讓玩家擁有更優質的遊戲體驗。

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

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