イベント設計および送信ガイド¶
イベントタクソノミーとは?¶
イベントタクソノミー(Event Taxonomy)は、収集するイベントと属性を一貫した構造と命名規則で体系化した分類体系です。
ゲームで発生する多数の行動データ(ログイン、購入、レベルアップなど)を何の規則もなく収集すると、チームごとに異なる名前で同じデータを送ったり、分析時にどのデータが何を意味するのか把握しにくくなります。イベントタクソノミーは、このような混乱を防ぎ、収集したデータをすぐに分析へ活用できるよう支援します。
なぜ必要なのですか?¶
| 問題状況 | タクソノミー適用時 |
|---|---|
| 同じイベントをチームごとに異なる名前で送信 | 一貫した名前でデータ統合が可能 |
| どの属性がどのイベントに含まれるか不明確 | 属性構造が明確になり、分析範囲をすばやく把握 |
| 新規イベント追加時に基準なく任意で定義 | 既存ルールに合わせて一貫性を持って拡張可能 |
| データ品質問題を後から発見 | スキーマ基準で事前検証可能 |
構造¶
Analyticsのイベントタクソノミーは イベント と 属性 の2階層で構成されます。
イベント (Event)
├── プラットフォーム属性 (Platform Attribute) ← SDK連携だけで自動収集
└── イベント属性 (Event Attribute) ← イベントと一緒に直接送信
イベントとは?¶
イベントは、ユーザーがゲーム内で実行した特定の行動をデータとして記録した単位です。「いつ、誰が、何をしたか」を含み、分析の最も基本となる単位です。
- 例: ユーザーがアイテムを購入した →
item_purchaseイベント発生 - 例: ユーザーが特定ステージをクリアした →
stage_clearイベント発生 - 例: ユーザーがアプリにログインした →
loginイベント発生
属性とは?¶
属性は、イベント発生時に一緒に記録される詳細情報です。イベントだけでは「何が起きたか」しか分かりませんが、属性によって「どの条件で、どの値で」発生したのかまで把握できます。
- 例:
item_purchaseイベントの属性 → アイテムID、決済金額、通貨単位 - 例:
stage_clearイベントの属性 → ステージ番号、クリア時間、使用キャラクター
属性は、収集元に応じて2つに分かれます。
- プラットフォーム属性: 別途設定なしにSDK連携だけでHiveが基本収集する属性です。国、OS、アプリバージョン、サーバーIDなどが含まれます。
- イベント属性: イベントと一緒に直接送信する属性です。分析に必要な項目を直接定義して送信します。
ユーザー定義イベント送信¶
ゲームで直接定義したイベント(ユーザー定義イベント)は、以下の収集スキーマに合わせて送信すると、Analyticsで分析に活用できます。
実際のデータ送信には Hive SDKクライアントログ送信 の方法を使用します。送信に必要なソースコードは イベント の [ソース生成] タブ で言語ごとに自動生成できます。
イベント送信前に イベント でイベント名と属性をあらかじめ定義しておくと、チーム内での共有と管理が便利です。ただし、事前定義なしにデータを送信してもAnalyticsは受信データを自動認識し、最大1時間以内にイベント一覧へ反映されます。
Note
自動認識されたイベントはイベント一覧で作成者が system と表示され、イベント画面で説明・属性情報を追加入力して管理できます。
Analytics収集スキーマ¶
ユーザー定義イベント送信時に使用する基本スキーマです。すべてのイベントは以下の形式で送信する必要があります。
| フィールド | 必須 | 説明 |
|---|---|---|
| identifierProvider | 必須 | ユーザー識別子発行システムを明示します。Hive SDKを連携した場合は hive を入力します。 |
| userId | 必須 | アカウント基準のユーザー識別子です。値がない場合は null を許容します。 |
| deviceId | 必須 | 端末基準のユーザー識別子です。値がない場合は null を許容します。 |
| appId | 必須 | Hiveコンソール > アプリセンターに登録されたアプリIDを入力します。 |
| dateTime | 必須 | イベントが発生した日時です。 |
| timezone | 必須 | イベント発生時刻のタイムゾーンです。 |
| category | 必須 | データの収集先テーブルを決める区分値です。ユーザー定義イベントは必ず raw_event_log に固定して送信する必要があります。別の値を入力すると、該当イベントデータが正しいテーブルに収集されません。 |
| eventName | 必須 | イベントを分類するイベント名です。 |
| eventAttribute | 必須 | イベントと一緒に送信する属性セットです。項目は必ず定義し、値がない場合は null を許容します。 |
| hiveAttribute | 必須 | Hiveプロビジョニングサーバーから提供されるプラットフォーム属性セットです。現在は開発者が直接値を設定して送信する必要があります。項目は必ず定義し、値がない場合は null を許容します。 |
Warning
userId と deviceId は、できる限り両方が null にならないよう注意してください。両方ともない場合、ユーザーを識別できず、コホート別ユーザー分析が難しくなることがあります。
イベント名の命名規則¶
eventName に使うイベント名は、以下の規則に従って作成することを推奨します。
- 推奨文字: 英字(a–z, A–Z, 大/小文字区別)、数字(0–9)、アンダーバー(
_)、ハイフン(-) - 区切り文字: 単語間はスペースではなくアンダーバー(
_)で区切る - 形式: イベントを明確に説明する
名詞_動詞形式を推奨 - 例:
item_purchase,level_up,tutorial_complete,stage_start
Warning
上記規則に従わないイベント名は、分析への活用に制限が生じる可能性があります。
hiveAttribute / eventAttribute 構造例¶
hiveAttribute と eventAttribute は、それぞれJSONオブジェクト形式で送信します。
hiveAttribute — Hiveプロビジョニングサーバーから提供されるプラットフォーム属性です。マーケット、サーバーIDなどが該当し、現在は開発者が直接値を設定して送信する必要があります。将来的には自動収集方式に変更される予定です。
eventAttribute — イベントと一緒に直接送信する属性です。該当イベントを分析するために必要な詳細情報を含みます。
Note
属性値は送信形式に関係なく、Analyticsでは基本的に文字型として認識されます。数値型や日付型で集計したい属性は、イベント画面 の [属性] タブで該当属性のデータ型を変更してください。
属性名の命名規則¶
eventAttribute および hiveAttribute のキー名は、以下の規則に従って作成することを推奨します。
- 推奨文字: 英字(a–z, A–Z, 大/小文字区別)、数字(0–9)、アンダーバー(
_)、ハイフン(-) - 区切り文字: 単語間はスペースではなくアンダーバー(
_)で区切る - 例:
item_id,contents-type,stage_level
Warning
上記規則に従わない属性キーは、分析への活用に制限が生じる可能性があります。
属性キー変換規則¶
属性を送信すると、システムが以下の規則に従って一部のキー名を自動変換します。分析時に実際に参照されるキー名が変わるため注意してください。
-Hive 接尾辞 (hiveAttribute)¶
hiveAttribute の すべて のキー末尾に -Hive が自動で付与されます。
| 送信キー | Analyticsで表示されるキー |
|---|---|
country | country-Hive |
market | market-Hive |
-Event 接尾辞 (eventAttribute)¶
eventAttribute のキーのうち、以下の 8つの共通フィールド と名前が重複する場合にのみ -Event が自動で付与されます。
- timezone, dateTime, identifierProvider, userId, deviceId, appId, category, eventName
| 送信キー | 共通フィールドとの衝突有無 | Analytics表示キー |
|---|---|---|
category | O | category-Event |
level | X | level(変換なし) |
Warning
hiveAttribute と eventAttribute の両方とも、変換後のキー名基準でデータが保存されます。分析時は変換後の名前(-Hive, -Event)で属性を参照してください。
推奨イベント¶
以下は、Analyticsで活用度の高いイベント例です。各イベントを eventName と eventAttribute に合わせて送信すると、チャート・ファネル・リテンションなどAnalyticsの各機能ですぐに分析できます。
レベルアップ¶
| eventName | 説明 |
|---|---|
account_level_up | アカウントレベルアップ |
character_level_up | キャラクターレベルアップ |
guild_level_up | ギルドレベルアップ |
skill_level_up | スキルレベルアップ |
eventAttribute (共通):
| 属性 | 説明 | 例 |
|---|---|---|
levelPrev | レベルアップ前のレベル | 10 |
level | レベルアップ後のレベル | 11 |
通貨¶
| eventName | 説明 |
|---|---|
asset_earn | 通貨獲得 |
asset_spend | 通貨消費 |
eventAttribute (共通):
| 属性 | 説明 | 例 |
|---|---|---|
assetName | 通貨名 | diamond, gold |
actionName | 変動理由 | inapp_purchase, quest_reward |
amountPrev | 変動前の通貨量 | 500 |
amountVar | 変動量 | 100 |
amountCurr | 変動後の通貨量 | 600 |
isPaid | 有料通貨かどうか | Y, N |
コンテンツ¶
| eventName | 説明 |
|---|---|
contents_start | コンテンツ受諾・開始 |
contents_success | コンテンツ完了 |
contents_fail | コンテンツ失敗 |
contents_cancel | コンテンツキャンセル |
eventAttribute (共通):
| 属性 | 説明 | 例 |
|---|---|---|
modeTypeName | コンテンツタイプ | raid, quest |
userLevel | ユーザーレベル | 50 |
playTimeSec | プレイ時間(秒) | 120 |
Tip
contents_start → contents_success / contents_fail / contents_cancel の流れでファネルを構成すると、コンテンツ別の完了率と離脱区間を分析できます。
インアプリストア¶
| eventName | 説明 |
|---|---|
store_view | ストア商品の詳細閲覧 |
store_purchase_click | ストア商品購入クリック |
eventAttribute (共通):
| 属性 | 説明 | 例 |
|---|---|---|
productLocation | 商品表示位置 | package, main_shop |
productType | 商品タイプ | pay, free, advertisement |
Tip
store_view → store_purchase_click のファネルで、商品別のクリック転換率を分析できます。
メイト¶
| eventName | 説明 |
|---|---|
mate_earn | メイト獲得 |
mate_spend | メイト消費・販売・削除 |
eventAttribute (共通):
| 属性 | 説明 | 例 |
|---|---|---|
mateId | メイトID | pet_001 |
mateGrade | メイト等級 | rare, epic |
mateChangeFlag | 変動経路 | gacha, purchase, upgrade, sell |
mateChangeAmount | 変動量 | 1 |
社会活動¶
| eventName | 説明 |
|---|---|
party_action | パーティー活動(招待・参加・脱退) |
friend_action | フレンド活動(追加・削除) |
guild_action | ギルド活動(加入・脱退・追放) |