プレゼンスイベント
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Game SDKは、Analyticsフィーチャーと連携して動作するプレゼンスイベントフィーチャーをサポートしています。プレゼンスイベントフィーチャーを使用すると、管理ポータルのテレメトリーセクションの下に他のテレメトリーイベントと同様に表示されるプレゼンスイベントを通じて、ゲーム内のプレイヤーの存在を測定できます。これらのイベントにより、プレイヤーのゲーム内アクティビティを高レベルの視点から理解できます。
プレゼンスイベントは定期的な時間間隔で送信され、デフォルトでは10分または600秒に設定されています。間隔はゲームSDK設定で設定できます。
デフォルトでは、プレゼンスイベントフィーチャーはオフになっており、ゲームSDK設定でオンにできます。
プレゼンスイベントを有効にする
- Unreal
- Unity
DefaultEngine.iniファイルで、[/Script/AccelByteUe4Sdk.AccelByteSettings]の下のPresenceBroadcastEVentHeartbeatEnabledをtrueに設定します。
[/Script/AccelByteUe4Sdk.AccelByteSettings]
PresenceBroadcastEventHeartbeatEnabled=true
SDK設定を開く方法の詳細については、SDKのインストールと設定を参照してください。設定はPre-Defined Event Configs > Enable Pre-Defined Game Eventで設定できます。
時間間隔を設定する
時間間隔はデフォルトで10分または600秒です。時間間隔は次のように設定します:
- Unreal
- Unity
FTimespan HeartbeatIntervalSecond = FTimespan::FromSeconds(<double: interval second>);
FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();
ApiClient->PresenceBroadcastEvent.SetHeartbeatInterval(HeartbeatIntervalSecond);
クライアントエディターを開きます。設定はPresence Broadcast Event Configs > Set Interval In Secondsで設定できます。
間隔期間の最小値は5秒です。
プレゼンスイベントを開始または停止する
プレゼンスイベントフィーチャーは次のように開始または停止できます:
- Unreal
- Unity
///プレゼンスイベントを開始
FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();
ApiClient->PresenceBroadcastEvent.StartHeartbeat();
///プレゼンスイベントを停止
FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();
ApiClient->PresenceBroadcastEvent.StopHeartbeat();
プレゼンスイベントのアクティベーションはSDK設定に基づいています。
ゲームステートを更新する
ゲームステートは、ゲーム内のユーザーの存在を定義する上で重要な役割を果たします。デフォルトでは、これはOUT_OF_GAMEPLAYに設定されていますが、IN_GAMEPLAYまたはSTOREに変更できます。ゲーム内のユーザーの存在をカバーする3つの事前定義された一般的なステートがあります。ただし、自由形式の文字列を使用して独自のゲームステートを定義することもできます。これにより、Analyticsサービスを通じて、プレイヤーが特定のゲームステートで費やした時間を特定できます。
- Unreal
- Unity
FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();
EAccelByteGameState GameState = EAccelByteGameState::IN_GAMEPLAY;
FString Description = TEXT("Optional Game State Description");
ApiClient->PresenceBroadcastEvent.SetGameState(GameState ,
FVoidHandler::CreateLambda([]()
{
// On success handler
}),
FErrorHandler::CreateLambda([](int32 ErrorCode, FString ErrorMessage)
{
// On error handler
}), Description);
// 事前定義されたゲームステートを設定
AccelByteSDK.GetClientRegistry().GetPresenceBroadcastEvent().SetGameState(AccelByte.Models.PresenceBroadcastEventGameState.InGameplay);
// カスタムゲームステートを設定
AccelByteSDK.GetClientRegistry().GetPresenceBroadcastEvent().SetGameStateDescription("Optional Game State Description");
入力されるデータが正確であることを確認するために、プレイヤーがゲーム内のさまざまなフェーズを移動する際にゲームステートを正しく設定することが重要です。ゲーム内で費やした時間、ストアなどのメトリクスの精度を高めるために、ゲームステートの実装が正しいことを確認してください。
管理ポータルでプレビューする
正しく実装されると、プレゼンスイベントは、左パネルのAnalyticsの下のテレメトリーセクションの管理ポータルで確認できます。ペイロードは以下に示すものと同様に見えるはずです:
{
"EventNamespace": "accelbyte",
"EventName": "enhanced_presence",
"Payload":
{
"flight_id": "4A252BB44CADA183C26F14963290B6DA",
"platform_name": "Windows",
"game_state": "IN_GAMEPLAY",
"game_context": "pvp"
},
"ClientTimestamp": 1684813272
}