本指南介绍了如何使用 Google Play 游戏服务提供的事件 API 收集玩家游戏数据以进行游戏分析。API 位于 com.google.android.gms.games.event
和 com.google.android.gms.games
软件包中。
开始之前
如果您尚未这样做,不妨查看 事件游戏概念。
在您开始使用事件 API 编写代码之前
在 Google Play 管理中心 定义游戏的事件。
遵循 登录核对清单建议。
获取事件客户端
要开始使用事件 API,您的游戏必须首先获取 EventsClient
对象。您可以通过调用 PlayGames.getEventsClient()
方法并传入 activity 来实现此目的。
提交事件
您可以在游戏中添加代码,以便在您的游戏发生感兴趣的事件时通知 Play 游戏服务。
要发送事件更新,请调用 EventsClient.increment()
,其中 eventId
值和 incrementAmount
整数应大于或等于 0。
eventId
是您首次在 Google Play 管理中心定义事件时由 Play 游戏服务生成的,用于在您的游戏中唯一标识此事件。您可以使用
incrementAmount
输入来指定玩家完成某个游戏特定目标的量化进度。例如,如果您的游戏想要跟踪的事件是 “击败 500 只凸眼怪物”,则incrementAmount
值可以是玩家在单次战斗中击杀的怪物数量。
以下是提交递增量为 1 的事件的示例
public void submitEvent(String eventId) { PlayGames.getEventsClient(this) .increment(eventId, 1); }
检索事件
您可以通过调用 EventsClient.load()
检索存储在 Google 服务器中关于您游戏的所有事件数据。在方法调用中,传入一个布尔值以指示 Play 游戏服务是否应清除用户设备上的本地缓存数据。
要检索您在 Google Play 管理中心定义的特定事件的数据,请调用 EventsClient.loadByIds()
并在输入参数中传入事件 ID 数组。
以下代码段展示了如何查询 Play 游戏服务以获取您游戏的所有事件列表
public void loadEvents() { PlayGames.getEventsClient(this) .load(true) .addOnCompleteListener(new OnCompleteListener<AnnotatedData<EventBuffer>>() { @Override public void onComplete(@NonNull Task<AnnotatedData<EventBuffer>> task) { if (task.isSuccessful()) { // Process all the events. for (Event event : task.getResult().get()) { Log.d(TAG, "loaded event " + event.getName()); } } else { // Handle Error Exception exception = task.getException(); int statusCode = CommonStatusCodes.DEVELOPER_ERROR; if (exception instanceof ApiException) { ApiException apiException = (ApiException) exception; statusCode = apiException.getStatusCode(); } showError(statusCode); } } }); }