Android 游戏的玩家统计数据

本指南介绍如何使用 Google Play 游戏服务的玩家统计数据 API。您可以使用玩家统计数据 API 检索有关玩家游戏内活动的数据。

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

这些 API 可以在 com.google.android.gms.games.statscom.google.android.gms.games 包中找到。

您可以检索的玩家数据类型包括

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

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

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

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

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

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

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

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

开始之前

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

获取客户端

要开始使用玩家统计数据 API,您的游戏必须首先获取 PlayerStatsClient 对象。您可以通过调用 Games.getPlayerStatsClient() 方法并传入 Activity 来实现。

PlayerStatsClient 类使用 Google Play 服务 Task 类异步返回结果。要了解有关使用任务管理线程工作的更多信息,请参阅 任务 API 开发人员指南

检索数据

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

  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 允许您根据玩家的参与度和支出行为轻松识别各种类型的玩家,并应用适当的策略来增强他们的游戏体验。

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

玩家细分市场 参与策略
经常玩游戏、会话次数多且支出百分位数高的玩家,但过去一周或更长时间未玩游戏。
  • 发送有关其返回游戏后可用的折扣或特殊奖励的通知。
  • 显示欢迎回来消息,确认其令人印象深刻的成就,并颁发旨在鼓励再次玩游戏的徽章。
参与度高但支出百分位数低的玩家。
  • 定制奖励以激励他们邀请朋友安装并加入您的游戏。此方法利用玩家对游戏的已证明乐趣来招募新玩家。
支出高的玩家,表现出达到顶峰并开始减少玩游戏频率的迹象。
  • 定制奖励以重新激发他们的兴趣,例如提供高价值、短期工具、武器或折扣。
  • 下次玩家登录时,显示一个视频,引导他们访问社区功能(如部落攻击),从而推动更频繁和更长时间的参与。
支出概率非常高或非常低的玩家。

  • 不太可能付费:提供观看广告视频的选项。显示更低价的商品供购买。
  • 可能付费:尽早引导他们进入游戏内商店,并提供特殊促销活动以激励他们购买。