ゲーム標準イベント
注釈:本資料はAI技術を用いて翻訳されています。
概要
ゲーム標準イベントは、ゲームSDKから直接使用できる事前定義された構造と関連するフォーマットおよびプロパティを持つゲームテレメトリーの一種です。AccelByte Gaming Services (AGS) ダッシュボード内でプレイヤーの進行状況、報酬、リソースを直接確認できます。
このイベントはゲームタイトルに関連付けられています。プレイヤーのミッションステータス、マッチ情報、レベル情報、武器のピックアップ、死亡理由など、タイトル固有の情報に使用する必要があります。開発者は、ゲームデザインに対応するイベント関数と計装を呼び出す必要があります。
ミッションイベント
ミッションイベントは、タスク、クエスト、または目標のコレクションの進行状況を測定するように設計されています。
次のような質問に答えることを目的としています:
- プレイヤーはどのミッションを好むか?
- 早期に離脱したプレイヤーはどのミッションとやり取りしたか?
- ミッションの完了にはどのくらいの時間がかかるか?
- どのミッションの失敗率が高いか?
ミッションとマッチの間には重複がありますが、理解と保守を複雑にすることなく、異なる方向への拡張性を促進するために、別々のイベントとして設計されています。
mission_Started
このイベントを使用して、ミッションの開始とその詳細を追跡します。プレイヤーがタスクを取得したとき、またはチュートリアルが開始されたときにトリガーする必要があります。
| フィールド | タイプ | オプション | 説明 |
|---|---|---|---|
| userID | string | いいえ | ユーザーの一意のID。 |
| missionID | string | いいえ | ゲームアセットIDなど、ミッションの一意のID。 |
| missionType | string | はい | 分類目的。例: solo、group、pvp、raidなど。 |
| missionInstanceID | string | いいえ | 各ミッション試行に対して生成される一意のID。 |
| missionName | string | はい | 人間が読める、またはローカライズされていないプレイヤー向けの名前。 |
| missionLocation | string | はい | ミッションを分類します。マップのIDまたは名前である可能性があります。 |
| missionDifficulty | string | はい | 難易度レベルのオプションカテゴリ。 |
mission_Step_Ended
このイベントを使用して、マルチステップストーリーミッションやチュートリアルなど、複数の連続したステップを持つ長いミッションの重要なマイルストーンを追跡します。
| フィールド | タイプ | オプション | 説明 |
|---|---|---|---|
| userID | string | いいえ | ユーザーの一意のID。 |
| missionID | string | いいえ | ミッションの一意のID。 |
| missionInstanceID | string | いいえ | 特定のミッションインスタンスの一意のID。 |
| missionStep | integer | いいえ | 1から始まるステップ番号。 |
| missionStepName | string | はい | 特定のミッションステップを理解するためのオプション名。 |
mission_Ended
このイベントは、ミッションが終了状態に達したときにトリガーする必要があります。例えば、ミッションが完了したとき、またはチュートリアルが終了したときです。
| フィールド | タイプ | オプション | 説明 |
|---|---|---|---|
| userID | string | いいえ | ユーザーの一意のID。 |
| missionID | string | いいえ | ミッションの一意のID。 |
| missionInstanceID | string | いいえ | 一意のミッションインスタンスID。 |
| missionSuccess | bool | いいえ | ミッションが成功した場合はtrue、それ以外の場合はfalse。 |
| missionOutcome | string | はい | 成功または失敗を説明するオプションのサブカテゴリ。 |
マッチ情報イベント
Matchinfoイベントは、ソロゲームプレイ(例: ステージ)とマルチプレイヤーマッチの両方を追跡し、重要なゲーム固有のパラメータと結果を含めることを目的としています。これには、マッチの開始と終了を追跡するための情報、およびプレイヤー固有のデータが含まれます。
matchinfo
このイベントは、ゲームプレイが開始される開始時刻と、マッチ関連のパラメータを記述します。
| フィールド | タイプ | オプション | 説明 |
|---|---|---|---|
| matchInfoID | string | いいえ | マッチの一意の識別子。 |
| matchID | string | はい | 利用可能な場合、マッチメイキングシステムからのマッチID。 |
| gameMode | string | はい | ゲームモードカテゴリ。例: PVP、soloなど。 |
| matchDifficulty | string | はい | マッチ難易度のオプションカテゴリ。 |
matchinfo_Player
このイベントは、マッチに参加している個々のプレイヤーに関する情報を詳述します。
| フィールド | タイプ | オプション | 説明 |
|---|---|---|---|
| userID | string | いいえ | プレイヤーの一意のID。 |
| matchInfoID | string | いいえ | マッチの一意の識別子。 |
| matchID | string | はい | 利用可能な場合、マッチメイキングシステムからのマッチID。 |
| team | string | はい | プレイヤーのチーム指定。例: A、B、attacker、defenderなど。 |
| class | string | はい | プレイヤーのキャラクタークラス。 |
| rank | string | はい | 該当する場合、プレイヤーのランク。 |
matchinfo_Ended
このイベントは、マッチゲームプレイが終了したときを追跡し、グローバルマッチ結果を含みます。
| フィールド | タイプ | オプション | 説明 |
|---|---|---|---|
| matchInfoID | string | いいえ | マッチの一意の識別子。 |
| matchID | string | はい | 利用可能な場合、マッチメイキングシステムからのマッチID。 |
| endReason | string | いいえ | マッチが終了した理由。例: victory、failure、abandonedなど。 |
| winner | string | はい | 該当する場合、勝利チーム。 |
ポップアップイベント
popup_Appear
このイベントを使用して、コンテキスト依存のチュートリアルやストアオファーなど、ポップアップの表示を追跡します。
| フィールド | タイプ | オプション | 説明 |
|---|---|---|---|
| userID | string | いいえ | ユーザーの一意のID。 |
| popupID | string | いいえ | ポップアップの一意のID。 |
| popupType | string | はい | ポップアップのタイプ。例: tutorial、offerなど。 |
| popupName | string | はい | 人間が読める、ローカライズされていないプレイヤー向けのポップアップ名。 |
進行状況イベント
entity_Leveled
このイベントは、アカウント全体の統計の増加、またはゲーム内のエンティティの進行状況を追跡するために使用されます。
| フィールド | タイプ | オプション | 説明 |
|---|---|---|---|
| entityType | string | いいえ | レベルアップしたエンティティのタイプ。 |
| userID | string | はい | ユーザーの一意のID。 |
| entityID | string | はい | レベルアップしたエンティティのID。 |
| levelStat | string | はい | 増加している統計(例: level)。 |
| levelChange | integer | はい | レベルの増加量。 |
| levelCurrent | integer | はい | 増加後のレベル。 |
entity_Dead
entityIDはGUIDにすることができますが、別のオプションとして、簡単に識別できるように、より意味のあるゲーム固有のプレフィックスを使用することです(例: worldboss_12345)。これは、さらなる分析を行う開発者にとって有用です
このイベントを使用して、エンティティが死亡または破壊される頻度と状況を理解します。
| フィールド | タイプ | オプション | 説明 |
|---|---|---|---|
| entityType | string | いいえ | 死亡したエンティティのタイプ。 |
| userID | string | はい | ユーザーの一意のID。 |
| entityID | string | はい | 死亡したエンティティのID。 |
| deathDay | integer | はい | 死亡が発生したゲーム内の日。 |
| deathLocation | string | はい | 死亡が発生した場所の名前(例: Crossroads)。 |
| deathType | string | はい | 死亡のタイプ(例: self、player、environment)。 |
| deathSource | string | はい | 死亡の原因(例: player、NPC)。 |
リソースイベント
resource_Flow
transactionIDには一意のGUIDを使用することをお勧めします。トランザクションに複数のリソースが含まれる場合、関連するイベント全体で同じtransactionIDを使用すると、開発者はダッシュボードの範囲を超えた分析のためにそれらを効率的にリンクできます。
このイベントを使用して、ゲームプレイリソースとアイテムの変更を追跡します。
| フィールド | タイプ | オプション | 説明 |
|---|---|---|---|
| userID | string | いいえ | ユーザーの一意のID。 |
| flowType | string | いいえ | フロータイプ。例: sinkまたはsource。 |
| transactionID | string | いいえ | トランザクションの一意の識別子。 |
| transactionType | string | いいえ | トランザクションのタイプ(例: traded、consumed)。 |
| resourceName | string | いいえ | 取引されるアイテムまたは通貨の名前。 |
| amount | string | いいえ | 取引されるリソースの量。 |
| endBalance | string | いいえ | トランザクション後の残高。 |
ゲームSDKを使用してゲーム標準イベントを送信する
AGS Game SDKは、ゲーム標準イベントの送信を非常にシンプルな方法ですぐにサポートします。各イベントに適切な関数を呼び出すことができます。以下は、この機能の使用方法の簡単な概要です。
Unrealでは、この関数はゲームクライアントとゲームサーバーの両方で利用できます。
Unityでは、この関数は現在ゲームクライアントでのみ利用できます。ゲームサーバーのサポートはまだ進行中であり、今後のアップデートで発表される予定です。
- Unreal Engine
- Unity
Unreal Engineの例
FOnlineSubsystemAccelByte* OnlineSubsystem = GetABSubsystem(TestSubsystemName);
const FUniqueNetIdAccelByteUserPtr UserId;
const auto GameStandardEventInterface = OnlineSubsystem->GetGameStandardEventInterface();
bool bIsSent = false;
const int32 LocalUserNum = 0;
// 例: ミッション開始イベントを送信
bIsSent = GameStandardEventInterface->SendMissionStartedEvent(LocalUserNum
, UserId
, FMissionId(TEXT("Test"))
, FMissionInstanceId(FGuid::NewGuid().ToString())
, FAccelByteModelsMissionStartedOptPayload{});
その他のイベント例:
// ミッションステップ終了イベントを送信
bIsSent = GameStandardEventInterface->SendMissionStepEndedEvent(LocalUserNum
, UserId
, FMissionId(TEXT("Tutorial"))
, FMissionInstanceId(FGuid::NewGuid().ToString())
, FMissionStep(2)
, FMissionStepName(TEXT("Tutorial")));
// ミッション終了イベントを送信
bIsSent = GameStandardEventInterface->SendMissionEndedEvent(LocalUserNum
, UserId
, FMissionId(TEXT("Test"))
, FMissionInstanceId(FGuid::NewGuid().ToString())
, FMissionSuccess(false)
, FMissionOutcome(TEXT("Fail")));
// マッチ情報イベントを送信
bIsSent = GameStandardEventInterface->SendMatchInfoEvent(LocalUserNum
, FMatchInfoId(TEXT("TestMatch")));
// リソースフローイベントを送信
bIsSent = GameStandardEventInterface->SendResourceFlowEvent(LocalUserNum
, UserId
, EAccelByteFlowType::source
, FAccelByteTransactionId(FGuid::NewGuid().ToString())
, FTransactionType(TEXT("Test"))
, FResourceName(TEXT("Gold"))
, FResourceAmount(TEXT("10"))
, FResourceEndBalance(20));
Unreal Engine SDK API
Unreal Engineでさまざまなタイプのイベントを送信するために使用できる、利用可能なすべての関数のリストは次のとおりです:
- SendMissionStartedEvent(FAccelByteUserId userId, FMissionId missionId, FMissionInstanceId missionInstanceId, FAccelByteModelsMissionStartedOptPayload optionalParameters)
- SendMissionStepEndedEvent(FAccelByteUserId userId, FMissionId missionId, FMissionInstanceId missionInstanceId, FMissionStep missionStep, FMissionStepName missionStepName)
- SendMissionEndedEvent(FAccelByteUserId userId, FMissionId missionId, FMissionInstanceId missionInstanceId, FMissionSuccess missionSuccess, FMissionOutcome missionOutcome)
- SendMatchInfoEvent(FMatchInfoId matchInfoId, FAccelByteModelsMatchInfoOptPayload optionalParameters)
- SendMatchInfoPlayerEvent(FAccelByteUserId userId, FMatchInfoId matchInfoId, FAccelByteModelsMatchInfoPlayerOptPayload optionalParameters)
- SendMatchInfoEndedEvent(FMatchInfoId matchInfoId, FMatchEndReason endReason, FAccelByteModelsMatchInfoEndedOptPayload optionalParameters)
- SendPopupAppearEvent(FAccelByteUserId userId, FPopupEventId popupId, FAccelByteModelsPopupAppearOptPayload optionalParameters)
- SendEntityLeveledEvent(FEntityType entityType, FEntityId entityId, FAccelByteUserId userId, FAccelByteModelsEntityLeveledOptPayload optionalParameters)
- SendEntityDeadEvent(FEntityType entityType, FEntityId entityId, FAccelByteUserId userId, FAccelByteModelsEntityDeadOptPayload optionalParameters)
- SendResourceFlowEvent(FAccelByteUserId userId, EAccelByteFlowType flowType, FAccelByteTransactionId transactionId, FTransactionType transactionType, FResourceName resourceName, FResourceAmount resourceAmount, FResourceEndBalance endBalance)
Unityの例
var gameStandardAnalyticsService = AccelByte.Core.AccelByteSDK.GetClientRegistry().GetGameStandardEvents();
var model = new AccelByte.Models.MissionStartedEventPayload
{
MissionId = new MissionId("mission-id"),
MissionInstanceId = new MissionInstanceId("guid-instance-id"),
OptionalParameters = new MissionStartedOptionalParameters
{
MissionDifficulty = "mission-difficulty",
MissionLocation = "mission-location",
MissionName = "mission-name",
MissionType = "mission-type"
}
};
// ミッション開始イベントを送信
var missionStartedSent = gameStandardAnalyticsService.SendMissionStartedEvent(model);
その他のイベント例:
// ミッションステップ終了イベントを送信
var missionStepEndedSent = gameStandardAnalyticsService.SendMissionStepEndedEvent(
new AccelByteUserId("user-id"),
new MissionId("mission-id"),
new MissionInstanceId("guid-instance-id"),
new MissionStep(2),
new MissionStepEndedOptionalParameters
{
MissionStepName = "mission-step-name"
});
// ミッション終了イベントを送信
var missionEndedSent = gameStandardAnalyticsService.SendMissionEndedEvent(
new AccelByteUserId("user-id"),
new MissionId("mission-id"),
new MissionInstanceId("mission-instance-id"),
new MissionSuccess(true),
new MissionEndedOptionalParameters
{
MissionOutcome = "mission-outcome"
});
// リソースフローイベントを送信
var resourceFlowSent = gameStandardAnalyticsService.SendResourceFlowEvent(
new AccelByteUserId("user-id"),
new ResourceFlowType(FlowType.Sink),
new TransactionId("transaction-id"),
new TransactionType("transaction-type"),
new ResourceName("resource-name"),
new ResourceAmount("resource-amount"),
new ResourceEndBalance(20));
Unity SDK API
Unityでさまざまなタイプのイベントを送信するために使用できる、利用可能なすべての関数のリストは次のとおりです:
- SendMissionStartedEvent(AccelByteUserId userId, MissionId missionId, MissionInstanceId missionInstanceId, MissionStartedOptionalParameters optionalParameters)
- SendMissionStepEndedEvent(AccelByteUserId userId, MissionId missionId, MissionInstanceId missionInstanceId, MissionStep missionStep, MissionStepEndedOptionalParameters optionalParameters)
- SendMissionEndedEvent(AccelByteUserId userId, MissionId missionId, MissionInstanceId missionInstanceId, MissionSuccess missionSuccess, MissionEndedOptionalParameters optionalParameters)
- SendMatchInfoEvent(MatchTimestamp timestamp, MatchInfoId matchInfoId, MatchInfoOptionalParameters optionalParameters)
- SendMatchInfoPlayerEvent(AccelByteUserId userId, MatchInfoId matchInfoId, MatchInfoPlayerOptionalParameters optionalParameters)
- SendMatchInfoEndedEvent(MatchInfoId matchInfoId, MatchEndReason matchEndReason, MatchInfoEndedOptionalParameters optionalParameters)
- SendPopupAppearEvent(AccelByteUserId userId, PopupId popupId, PopupAppearOptionalParameters optionalParameters)
- SendEntityLeveledEvent(EntityType entityType, EntityLeveledOptionalParameters optionalParameters)
- SendEntityDeadEvent(EntityType entityType, EntityDeadOptionalParameters optionalParameters)
- SendResourceFlowEvent(AccelByteUserId userId, ResourceFlowType flowType, TransactionId transactionId, TransactionType transactionType, ResourceName resourceName, ResourceAmount resourceAmount, ResourceEndBalance resourceEndBalance)