利用 Player Stats API,您可以针对某些玩家细分和玩家生命周期的不同阶段量身设计游戏体验。您可以根据玩家的游戏进度、消费情况和互动度,为每个玩家细分量身打造体验。举例来说,您可以使用此 API 采取积极的措施来鼓励活跃度较低的玩家重新积极地玩游戏,例如您可以在玩家登录时显示并推销新的游戏内商品。
本指南介绍了如何通过 Google Play 游戏服务在游戏中使用 Player Stats API。这些 API 可在 com.google.android.gms.games.stats
和 com.google.android.gms.games
软件包中找到。
准备工作
开始使用 Player Stats API 之前,请做好以下准备:
获取玩家统计信息客户端
若要开始使用 Player Stats API,您的游戏必须首先获取 PlayerStatsClient
对象。为此,您可以调用 Games.getPlayerStatsClient()
方法,并传入 activity 和当前播放器的 GoogleSignInAccount
。如需了解如何检索玩家的账号信息,请参阅 Android 游戏中的登录功能。
玩家统计信息基础知识
您可以使用 Player Stats API 检索玩家在游戏内的活动数据。您可以检索的玩家数据类型包括:
平均会话时长:玩家的平均会话时长,以分钟为单位。每次的会话时长从玩家登录 Google Play 游戏服务之时开始计算,到退出服务为止。
距离上次玩游戏的天数:距离玩家上一次玩游戏的大概天数。
购物次数:玩家在应用内购买商品的大概次数。
会话次数:玩家的大概会话次数。会话次数根据玩家登录 Google Play 游戏服务的次数来计算。
会话百分位:玩家的会话百分位近似值,以 0 到 1 之间(含二者)的小数值表示。此值反映与此游戏的玩家群中其他的玩家相比,当前玩家玩游戏的会话次数。数字越大,表示此玩家玩游戏的会话越多。
消费百分位:玩家的消费百分位近似值,以 0 到 1 之间(含二者)的小数值表示。此值反映与此游戏的玩家群中其他的玩家相比,当前玩家已经消费的金额。数字越大,表示此玩家的消费越多。
以下玩家数据类型已废弃,系统会针对这些类型始终返回未设定值常量:
- 流失概率:对玩家是否会在次日流失进行的预测,以 0(流失概率较低)到 1(流失概率较高)之间(含二者)的小数值表示。流失是指玩家连续 7 天无活动。
- 消费概率:玩家在此游戏中选择消费的大概概率,以 0(消费概率较低)到 1(消费概率较高)之间(含二者)的小数值表示。
- 未来 28 天的预估总消费额:预计未来 28 天玩家在此游戏中的大概总消费。
- 高消费概率:未来 28 天玩家的消费金额处于此游戏玩家群消费水平的第 95 百分位或更高百分位的大概概率。此值以 0(成为高消费玩家的概率较低)到 1(成为高消费玩家的概率较高)之间(含二者)的小数值表示。
检索玩家统计数据
若要检索当前已登录玩家的玩家统计数据,请按以下步骤操作:
- 调用
PlayerStatsClient.loadPlayerStats()
方法。 - 如果调用成功,Google Play 游戏服务会返回用于异步加载
PlayerStats
对象的Task
对象。使用此对象的方法来检索应用中已登录玩家的活动数据。
示例如下:
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,您可以根据玩家在游戏内的互动情况和消费行为,轻松识别不同类型的玩家,然后采取相应的策略提升玩家的游戏体验。
下表列出了一些玩家细分示例以及建议的互动度提升策略:
玩家细分 | 互动度提升策略 |
---|---|
玩家以往通常会话次数较多、消费百分位较高,但最近已经有一周或更长时间没有玩游戏了。 |
|
玩家的互动度较高、消费百分位较低。 |
|
高消费玩家玩游戏的积极性已达顶峰,且有迹象表明他们开始降低玩游戏的频率。 |
|
玩家的消费概率很高或很低。 |
|