Game Telemetry
Game Telemetry は、AGS Starter ティアでは利用できません。
概要
Game Telemetry サービスは、ゲームのスケーラブルなイベントデータ取り込みパイプラインとして機能し、HTTP ベースの REST API を使用して、指定したストリーミングパイプラインにイベントを送信します。このサービスを使用すると、プレイヤーのデータを収集して分析し、将来の設計に関する決定を下すのに役立ちます。
仕組み
下の図は、Game Telemetry サービスの仕組みの基本的な概要を示しています。
AccelByte Game Telemetry SDK は、追跡するイベントを Game Telemetry パイプラインに送信します。その後、Game Telemetry パイプラインは、イベントを Kafka に送信します。Kafka Connect は、そのイベントを Kafka から取得して、指定されたデータウェアハウスとデータ視覚化ツールに渡します。
管理者ポータルを使用した Game Telemetry の管理
イベントのペイロードの表示
管理者ポータルで、[Analytics (分析)]セクションに移動し、[Game Telemetry]をクリックします。
[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"
}
}フィルターを選択したら、[Apply Filter (フィルターを適用)]ボタンをクリックして検索を開始します。
イベントを選択すると、イベントペイロードの詳細が表示されます。
Server SDK を使用してカスタムサービスを Game Telemetry に接続する
SDK の初期化
SDK からGame Telemetry サービス を使用する前に、サーバー側の SDK を初期化して、確実に自分が承認され、作成、読み取り、更新、削除のアクションを実行できるようにする必要があります。
Golang SDK の初期化
Golang SDK から Game Telemetry サービスを使用する前に、以下の手順に従って SDK を初期化する必要があります。
OAuth クライアントを作成します。Game Telemetry エンドポイントには、権限は必要ありません。
SDK を使用してクライアントとしてログインします。
次の関数を使用して 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