このガイドでは、Google Play Games サービスが提供するイベント API を使用して、ゲーム分析のためにプレーヤーのゲームプレイ データを収集する方法について説明します。API は
com.google.android.gms.games.event
パッケージと com.google.android.gms.games
パッケージに含まれています。
始める前に
イベントゲームのコンセプトをまだ確認されていない場合は、イベント ゲームのコンセプトを確認することをおすすめします。
イベント API を使用してコーディングを開始する前に:
イベント クライアントを取得する
イベント API の使用を開始するには、まずゲームで
EventsClient
オブジェクトを取得する必要があります。そのためには、PlayGames.getEventsClient()
メソッドを呼び出してアクティビティを渡します。
イベントを送信する
コードをゲームに追加して、ゲームに関連するイベントが発生したときに Play Games サービスに通知することができます。
イベントの更新を送信するには、
EventsClient.increment()
を指定して eventId 値と 0 以上の整数 incrementAmount を呼び出します。
eventIdは、Google Play Console で初めてイベントを定義するときに Play Games サービスによって生成され、ゲーム内でこのイベントを一意に識別するために使用されます。incrementAmount入力を使用すると、ゲーム固有の目標の達成に向けた、プレーヤーの定量的な進行状況を指定できます。たとえば、ゲームでトラッキングする イベントが「目の飛び出たモンスター 500 体を倒す」である場合、incrementAmountの値はプレーヤーが倒した モンスターの数となります。
増分を 1 としてイベントを送信する方法の例を次に示します。
public void submitEvent(String eventId) {
PlayGames.getEventsClient(this)
.increment(eventId, 1);
}イベントを取得する
`EventsClient.load()` を呼び出すことで、ゲーム用に Google のサーバーに保存されているすべてのイベントデータを取得できます。このメソッド呼び出しでは、Play Games サービスがユーザーのデバイス上にローカルにキャッシュされたデータを消去するかどうかを示すブール値を渡します。
Google Play Console で定義した特定のイベントのデータを取得するには、
EventsClient.loadByIds()
を呼び出して、入力パラメータにイベント ID の配列を渡します。
次のスニペットは、ゲームのすべてのイベントのリストについて Play Games サービスにクエリを行う方法を示しています。
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); } } }); }