Metrics Interface

记录游戏会话的接口,用于收集游戏使用数据。

阅读时间3分钟

数据记录接口(Metrics Interface) 会跟踪游戏的使用情况,并在 开发者门户 中填充 游戏统计数据控制板。此类数据包括游戏的客户端和服务器的活跃在线实例,以及本地玩家之前运行的会话。

收集使用指标

要启用数据收集,可通过 平台接口 函数 EOS_Platform_GetMetricsInterface 获取 EOS_HMetrics 句柄。所有数据记录接口函数都需要此句柄作为自身首个参数。

Epic在线服务(EOS)SDK负责收集数据,而后端服务负责处理和存储。游戏统计数据控制板中将显示聚合结果,利用其可监视世界范围内的游戏状态、玩家留存度和在线用户数。

限制

指标数据每5分钟更新一次。由于此更新频率,测试时客户端可能不会立即显示在控制板中。此外,用户留存度计算需要多日历史数据,因此游戏统计数据控制板不会显示最初几天的用户留存度信息。

执行指标收集需要独占使用EOS SDK公开的API。不可同时使用EOS SDK和外部程序或服务进行指标收集。

报告运行会话

EOS数据收集需要每个玩家开始和结束运行会话时的游戏报告。要记录会话,请使用游戏中的各玩家的EOS_Metrics_BeginPlayerSessionOptions 数据结构并调用 EOS_Metrics_BeginPlayerSession。此操作将通知SDK,玩家已在远程服务器上加入游戏,或已自行建立游戏。若玩家离开服务器或结束本地会话,使用 EOS_Metrics_BeginPlayerSessionOptions 数据结构并调用 EOS_Metrics_EndPlayerSession 来标记会话的结束。

调用 EOS_Metrics_BeginPlayerSession 时,应使用下列信息初始化 EOS_Metrics_BeginPlayerSessionOptions 结构:

属性
ApiVersion将此属性设为 EOS_METRICS_BEGINPLAYERSESSION_API_LATEST
LocalUserId本地用户的全局专属帐户辨识符。用于Epic用户帐户。
LocalUserIdExternal本地用户的全局专属帐户辨识符。用于非Epic用户帐户。
DisplayName玩家的游戏昵称,采用UTF-8字符串。
ControllerType玩家使用的游戏控制器类型。
ServerIp主持游戏会话的游戏服务器IP地址。
GameSessionId游戏可设置自定义匹配辨识符,其将附加到后端服务上的会话记录。此数据未来可用于将游戏会话与运行时发生的跟踪事件相关联。

调用 EOS_Metrics_EndPlayerSession 时,使用下列信息初始化 EOS_Metrics_EndPlayerSessionOptions 结构:

属性
ApiVersion将此属性设为 EOS_METRICS_ENDPLAYERSESSION_API_LATEST
LocalUserId启动会话的玩家帐户ID。此应与先前调用 EOS_Metrics_BeginPlayerSession 时所用的 LocalUserId 匹配。
LocalUserIdExternal启动会话的玩家帐户ID。此应与先前调用 EOS_Metrics_BeginPlayerSession 时所用的 LocalUserIdExternal 匹配。

收集并发在线玩家数(CCU)和用户留存度数据

EOS SDK会自动记录并发在线玩家数和游戏服务器数量。SDK在运行游戏客户端或服务器的在线设备上初始化时,将激活此功能。游戏上线数日后将计算用户留存度数据,其将基于报告的运行会话使用历史数据。