本指南介绍如何使用 Google Play 游戏服务的玩家统计数据 API。您可以使用玩家统计数据 API 检索有关玩家游戏内活动的数据。
玩家统计数据 API 允许您根据玩家的生命周期和不同的阶段,为特定细分市场的玩家定制游戏体验。您可以根据玩家的进度、支出和参与情况,为每个玩家细分市场构建定制的体验。例如,您可以使用此 API 采取主动措施鼓励不太活跃的玩家重新参与您的游戏,例如在玩家登录时显示和推广新的游戏内物品。
这些 API 可以在 com.google.android.gms.games.stats
和 com.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 开发人员指南。
检索数据
要检索当前登录玩家的玩家统计数据,请按照以下步骤操作
如果调用成功,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 允许您根据玩家的参与度和支出行为轻松识别各种类型的玩家,并应用适当的策略来增强他们的游戏体验。
下表列出了一些示例玩家细分市场和推荐的参与策略
玩家细分市场 | 参与策略 |
---|---|
经常玩游戏、会话次数多且支出百分位数高的玩家,但过去一周或更长时间未玩游戏。 |
|
参与度高但支出百分位数低的玩家。 |
|
支出高的玩家,表现出达到顶峰并开始减少玩游戏频率的迹象。 |
|
支出概率非常高或非常低的玩家。 |
|