Android 游戏中的玩家统计数据

玩家统计数据 API 允许您根据玩家的不同细分市场和玩家生命周期的不同阶段调整游戏体验。您可以根据玩家的进度、支出和参与度为每个玩家细分市场构建定制的体验。例如,您可以使用此 API 采取主动措施鼓励不太活跃的玩家重新参与您的游戏,例如在玩家登录时显示和推广新的游戏内物品。

本指南介绍了如何在使用 Google Play 游戏服务的游戏中使用玩家统计数据 API。可以在 com.google.android.gms.games.statscom.google.android.gms.games 包中找到这些 API。

开始之前

在开始使用玩家统计数据 API 之前

获取玩家统计数据客户端

要开始使用玩家统计数据 API,您的游戏必须首先获取 PlayerStatsClient 对象。您可以通过调用 Games.getPlayerStatsClient() 方法并传入活动和当前玩家的 GoogleSignInAccount 来执行此操作。要了解如何检索玩家帐户信息,请参阅 Android 游戏中的登录

玩家统计数据基础知识

您可以使用玩家统计数据 API 检索有关玩家游戏内活动的数据。您可以检索的玩家数据类型包括

  • 平均游戏时长:玩家的平均游戏时长(以分钟为单位)。游戏时长由玩家登录 Google Play 游戏服务的时长决定。

  • 自上次游戏以来的天数:玩家上次游戏以来的大约天数。

  • 购买次数:玩家进行应用内购买的大致次数。

  • 游戏次数:玩家游戏的大致次数。游戏次数由玩家登录 Google Play 游戏服务的次数决定。

  • 游戏次数百分位数:玩家游戏次数百分位数的近似值,以 0 到 1(含)之间的十进制值表示。此值指示当前玩家的游戏次数与该游戏的其余玩家群体的比较情况。数字越高表示该玩家的游戏次数越多。

  • 消费百分位数:玩家的近似消费百分位数,以 0 到 1(含)之间的十进制值表示。此值指示当前玩家的消费额与该游戏其余玩家群体的对比情况。数字越高表示该玩家消费越多。

以下类型的玩家数据已弃用,始终返回未设置的值常量

  • 流失概率:预测玩家在下一天是否会流失,以 0(流失概率低)到 1(流失概率高)(含)之间的十进制值表示。流失定义为 7 天不活跃。
  • 消费概率:玩家选择在该游戏中进行消费的近似概率,以 0(消费概率低)到 1(消费概率高)(含)之间的十进制值表示。
  • 未来 28 天总消费额:预测玩家在未来 28 天内在该游戏中预计的总消费额。
  • 高消费概率:预测玩家在未来 28 天内消费金额是否达到该游戏玩家群体的第 95 百分位数或更高。以 0(成为高消费者的概率低)到 1(成为高消费者的概率高)之间的十进制值表示。

检索玩家统计数据

要检索当前登录玩家的玩家统计数据,请按照以下步骤操作

  1. 调用 PlayerStatsClient.loadPlayerStats() 方法。
  2. 如果调用成功,Google Play 游戏服务将返回一个 Task 对象,该对象异步加载 PlayerStats 对象。使用此对象的方法来检索有关登录玩家在您的应用中活动的数据。

以下是一个示例

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());
          }
        }
      });
}

使用玩家统计数据的提示

Play Stats API 允许您根据玩家的参与度和消费行为轻松识别各种类型的玩家,并应用适当的策略来增强他们的游戏体验。

下表列出了一些示例玩家细分和推荐的参与策略

玩家细分 参与策略
经常玩游戏,游戏次数多,消费百分位数高,但最近一周或更长时间未玩游戏的玩家。
  • 发送通知,告知他们返玩后可享受折扣或特殊奖励。
  • 显示欢迎回来消息,认可其令人印象深刻的成就,并授予旨在鼓励返玩的徽章。
参与度高但消费百分位数低的玩家。
  • 量身定制奖励,激励他们邀请朋友安装并加入您的游戏。这种方法利用玩家对游戏的既定喜爱来招募新玩家。
高消费玩家,表现出达到顶峰并开始减少游戏频率的迹象。
  • 量身定制奖励以焕发他们的兴趣,例如提供高价值、短期工具、武器或折扣。
  • 下次玩家登录时,显示一个视频,引导他们访问社区功能(如部落攻击),以推动更频繁和更长时间的参与。
消费概率非常高或非常低的玩家。
  • 不太可能消费:提供观看广告视频的选项。显示价格较低的商品供购买。
  • 可能消费:尽早引导他们进入游戏内商店,并提供特殊促销活动以激励他们购买。