本指南介绍如何使用Google Play游戏服务的玩家数据API。你可以使用玩家数据API来检索关于玩家游戏内活动的数据。
玩家数据API允许你根据玩家的不同细分和玩家生命周期的不同阶段来定制游戏体验。你可以根据玩家的进度、支出和参与情况为每个玩家细分群体构建定制的体验。例如,你可以使用此API主动采取措施鼓励不太活跃的玩家重新参与你的游戏,例如在玩家登录时显示和推广新的游戏内物品。
可以在com.google.android.gms.games.stats
和com.google.android.gms.games
包中找到这些API。
开始之前
在开始使用玩家数据API之前
获取玩家数据客户端
要开始使用玩家数据API,你的游戏必须首先获取一个PlayerStatsClient
对象。你可以通过调用PlayerStatsClient.getPlayersClient()
方法并传入活动来实现。
PlayerStatsClient
类使用Google Play服务的Task
类异步返回结果。要了解有关使用任务管理线程工作的更多信息,请参阅Tasks API开发者指南。
玩家数据基础知识
你可以使用玩家数据API来检索关于玩家游戏内活动的数据。你可以检索的玩家数据类型包括
平均游戏时长:玩家的平均游戏时长(以分钟为单位)。游戏时长由玩家登录Google Play游戏服务的时长决定。
自上次游戏以来经过的天数:自玩家上次游戏以来的大概天数。
购买次数:玩家进行应用内购买的大概次数。
游戏次数:玩家游戏的大概次数。游戏次数由玩家登录Google Play游戏服务的次数决定。
游戏次数百分位数:玩家游戏次数百分位数的近似值,以0到1(包含)之间的十进制值表示。此值表示当前玩家与该游戏其余玩家相比的游戏次数。数值越高表示该玩家游戏次数越多。
支出百分位数:玩家支出百分位数的近似值,以0到1(包含)之间的十进制值表示。此值表示当前玩家与该游戏其余玩家相比的支出金额。数值越高表示该玩家支出越多。
以下类型的玩家数据已弃用,并且始终返回未设置的值常量
- 流失概率:预测玩家在下一天是否会流失,以0(流失概率低)到1(流失概率高)(包含)之间的十进制值表示。流失定义为7天的不活动。
- 支出概率:玩家选择在本游戏中进行支出的近似概率,以0(支出概率低)到1(支出概率高)(包含)之间的十进制值表示。
- 未来28天总支出:在未来28天内,玩家在本游戏中预计的总支出近似值。
- 高支出概率:在未来28天内,玩家支出金额达到或超过该游戏玩家群体的第95百分位数的近似概率。此概率以0(成为高支出玩家的概率低)到1(成为高支出玩家的概率高)之间的十进制值表示。
检索玩家数据
要检索已登录玩家的玩家数据,请按照以下步骤操作
如果调用成功,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 允许您根据玩家的参与度和消费行为识别各种类型的玩家,并应用相应的策略来增强他们的游戏体验。
下表列出了一些示例玩家细分和推荐的参与策略
玩家细分 | 参与策略 |
---|---|
高频玩家,游戏时长和消费占比高,但最近一周或更长时间未登录游戏。 |
|
参与度高但消费占比低的玩家。 |
|
高消费玩家,显示出游戏热情下降,开始减少游戏频率的迹象。 |
|
消费概率非常高或非常低的玩家。 |
|