メインコンテンツまでスキップ

Game Telemetry

Last updated on November 23, 2023
note

Game Telemetry は、AGS Starter ティアでは利用できません。

概要

Game Telemetry サービスは、ゲームのスケーラブルなイベントデータ取り込みパイプラインとして機能し、HTTP ベースの REST API を使用して、指定したストリーミングパイプラインにイベントを送信します。このサービスを使用すると、プレイヤーのデータを収集して分析し、将来の設計に関する決定を下すのに役立ちます。

仕組み

下の図は、Game Telemetry サービスの仕組みの基本的な概要を示しています。

alt_text

AccelByte Game Telemetry SDK は、追跡するイベントを Game Telemetry パイプラインに送信します。その後、Game Telemetry パイプラインは、イベントを Kafka に送信します。Kafka Connect は、そのイベントを Kafka から取得して、指定されたデータウェアハウスとデータ視覚化ツールに渡します。

管理者ポータルを使用した Game Telemetry の管理

イベントのペイロードの表示

  1. 管理者ポータルで、[Analytics (分析)]セクションに移動し、[Game Telemetry]をクリックします。

    alt_text

  2. Game Telemetry]ページでは、適用するフィルターに基づいてテレメトリイベントのペイロードを表示できます。使用可能なフィルターは次のとおりです。

    • Namespace (名前空間)]フィルターを使用すると、特定の名前空間におけるイベントのみを表示できます。このフィルターは、パブリッシャーの名前空間を使用している場合にのみ表示されます。
    • Start Date (開始日)]と[End Date (終了日)]フィルターを使用すると、イベントが作成された日付範囲を定義できます。
    • Event Name (イベント名)]フィルターを使用すると、イベント名を指定できます。
    • Event ID (イベント ID)]フィルターを使用すると、その ID を使用するイベントを検索できます。
    • Event Payload (イベントペイロード)]フィルターには field.subfield:value の形式で入力します。フィールドサブフィールドは大文字と小文字を区別しますが、は区別しません。複数のイベントペイロードを入力するには、Enter を押してから、別のイベントペイロードを追加します。

    たとえば、このペイロードで Alice という名前のプレイヤーを探すには、player.name:alice と記述します。

    {

    "player": {

    "name": "alice"

    }

    }
  3. フィルターを選択したら、[Apply Filter (フィルターを適用)]ボタンをクリックして検索を開始します。

  4. イベントを選択すると、イベントペイロードの詳細が表示されます。

    alt_text

Server SDK を使用してカスタムサービスを Game Telemetry に接続する

SDK の初期化

SDK からGame Telemetry サービス を使用する前に、サーバー側の SDK を初期化して、確実に自分が承認され、作成読み取り更新削除のアクションを実行できるようにする必要があります。

Golang SDK の初期化

Golang SDK から Game Telemetry サービスを使用する前に、以下の手順に従って SDK を初期化する必要があります。

  1. OAuth クライアントを作成します。Game Telemetry エンドポイントには、権限は必要ありません。

  2. SDK を使用してクライアントとしてログインします。

  3. 次の関数を使用して Game Telemetry サービスを初期化します。

    operationsService := &gametelemetry.OperationsService{

    Client: factory.NewGametelemetryClient(&repository.ConfigRepositoryImpl{}),

    TokenRepository: &repository.TokenRepositoryImpl{},

    }

完了すると、Golang SDK を使用して、サーバーレスアプリケーションから、Game Telemetry の作成読み取り更新削除を実行できます。

イベントの送信

次のコードを使用して、指定されたストリーミングパイプラインにイベントを送信します。

errInput := operationsService.ProtectedSaveEventsGameTelemetryV1ProtectedEventsPost(input)

if errInput != nil {

return errInput

}

return nil

あるプレイヤーの合計プレイ時間の取得

あるプレイヤーが特定の Steam のゲームで費やした合計プレイ時間を、次の関数を使用して取得します。このエンドポイントはまた、当該プレイヤーの合計プレイ時間をサービスキャッシュに保存します。プレイヤーの Steam アカウントを公開に設定し、Game Telemetry サービスが合計プレイ時間データを取得できるようにします。

ok, err := operationsService.ProtectedGetPlaytimeGameTelemetryV1ProtectedSteamIdsSteamIDPlaytimeGet(input)

if err != nil {

return err

}

return nil

あるプレイヤーの合計プレイ時間の更新

あるプレイヤーが特定の Steam のゲームで費やした合計プレイ時間を、次の関数を使用して、サービスキャッシュで更新します。

errInput := operationsService.ProtectedUpdatePlaytimeGameTelemetryV1ProtectedSteamIdsSteamIDPlaytimePlaytimePut(input)

if errInput != nil {

return errInput

}

return nil