イベント保存構造¶
概要¶
送信されたイベントログが BigQuery に格納される構造、attributes JSON フィールドの詳細構造、転送ルールに違反したログの分離方法を確認できます。
テーブル構造¶
送信されたイベントログは、会社固有のBigQueryデータセットのt_raw_event_logテーブルに保存されます。
テーブル列構造¶
保存場所¶
| アイテム | フォーマット |
|---|---|
| テーブル | t_raw_event_log |
| パーティショニング | dateTime基準日別パーティション |
列定義¶
| 列名 | データ型 | 説明 | 例 |
|---|---|---|---|
userId | STRING | 必須属性 userId として送信された値 | 100001 |
identifierProvider | STRING | 必須属性 identifierProvider として送信された値 | hive |
deviceId | STRING | 必須属性 deviceId として送信された値 | 100000 |
appId | STRING | 必須属性 appId として送信された値 | "com.com2us.game.ios" |
appIdGroup | STRING | 必須属性appIdに基づいてHiveアプリセンターのゲーム名に変換された値 | com.com2us.game |
dateTime | TIMESTAMP | 必須属性eventTimeをUTCに変換した値 | 2026-07-20T05:01:01Z |
eventName | STRING | 必須属性 eventName として送信された値 | asset_drop |
checksum | STRING | イベントごとに生成されるハッシュ値 | HW2FTEB56TEEWER |
bigqueryRegistTimestamp | TIMESTAMP | イベントがBigQueryに格納されているUTC時刻 | 2026-07-20T05:02:01Z |
attributes | JSON | カスタム属性と自動収集属性を格納するJSONフィールド | 以下を参照してください。 |
attributes 例
{
"hiveAttributes": {
"dataSource": "custom_server",
"geoIpCountry": "KR"
},
"eventAttributes": {
"eventTime": "2026-07-20T14:01:01+09:00",
"level": 10,
"character_name": "AA",
"stage_id": "stage_101"
}
}
テーブル構造に関する注意事項 & Tips¶
- 再送信などで同じイベントが重複して保存される可能性があるため、照会時に
checksum基準重複排除クエリを一緒に使用することをお勧めします。 - 転送ルールに違反したイベントログは、このテーブルではなくテーブルに保存されます。詳細については、データ分離を参照してください。
attributes詳細属性¶
Note
attributes 列は JSON タイプで、hiveAttributes と eventAttributes の 2 つの領域に分けられます。
attributes 例¶
{
"hiveAttributes": {
"dataSource": "custom_server",
"geoIpCountry": "KR"
},
"eventAttributes": {
"eventTime": "2026-07-20T14:01:01+09:00",
"level": 10,
"character_name": "AA"
}
}
hiveAttributes¶
パイプラインが自動的に処理して保存する領域。
| 属性名 | データ型 | 説明 | 例 |
|---|---|---|---|
dataSource | STRING | イベントログの転送主体。以下dataSource詳細を参照 | custom_server |
geoIpCountry | STRING | パイプラインがIPに基づいて判定した国コード(ISO 3166 alpha-2) | KR |
dataSource詳細¶
dataSource はイベントログの転送プリンシパルを表し、次のいずれかの値が自動的に設定されます。
| 値 | 説明 |
|---|---|
airbridge | Airbridgeで収集されたイベント |
appsflyer | Appsflyerで収集されたイベント |
adjust | Adjustで収集されたイベント |
singular | Singularで収集されたイベント |
hive_server | Hive認証、ビリングなどを介して自動的に収集するイベント |
hive_sdk | Hive SDKが自動的に収集するファンネルなどのイベント |
custom_server | 顧客がサーバーから送信するカスタムイベント |
custom_sdk | 顧客がHive SDKのイベントログ送信機能を介して送信するカスタムイベント |
custom_sdk_mig | 顧客がHive SDKのイベントログ送信機能を介して旧バージョンのアナリティクスに送信するカスタムイベント |
custom_server_mig | 顧客がサーバーから旧バージョンのアナリティクスに送信するカスタムイベント |
custom_except | イベント遷移中に例外的なケースにeventAttribute、hiveAttributeを生成して送信するイベント |
eventAttributes¶
ユーザーが送信した属性とSDKが自動的に収集した属性が格納される領域です。
| 属性名 | データ型 | 説明 |
|---|---|---|
eventTime | STRING | 必須属性として送信された eventTime の元の値 |
| (ユーザー定義属性) | 数字/文字 | ユーザーが直接送信したカスタム属性 |
| (自動収集属性) | 属性別に異なる | SDKが自動的に収集したクライアント情報(クライアント転送時) |
attributes 注意事項 & Tips¶
hiveAttributesは開発者が直接値を設定する領域ではなく、パイプラインが自動的に埋める領域です。dataSource、geoIpCountry以外の値は保存されません。- カスタム属性とSDK自動収集属性はどちらも
eventAttributesにまとめて保存されます。照会時に属性名で区切る必要があります。 dataSource値でイベントログの転送パス(SDK/サーバー/MMP など)を区分して照会できます。
データの分離¶
Warning
転送ルールに準拠していないイベントログは、通常テーブル(t_raw_event_log)には保存されず、**分離テーブル(t_raw_event_log_rescue)**に別々に保存されます。 検疫テーブルには元のJSONが一緒に保存されるため、検疫の原因を特定して修正して再送信できます。
分離理由¶
| エラー理由 | 説明 | 対応方法 |
|---|---|---|
| 必須属性の欠落 | 7つの必須属性(userId、identifierProvider、deviceId、appId、eventTime、eventName、appIdGroup)のいずれかがない、または値が空 | 欠落している必須属性を含めて再送信 |
| 予約語の使用 | 属性名としてattributes、eventAttributes、hiveAttributesを使用した場合(大文字小文字無関係) | その属性名を別の名前に変更します。 |
| 許可されていない属性値 | 属性値が JSON オブジェクト ({}) または JSON 配列 ([]) の場合 | 属性値を文字列または数値に変更します。 |
| eventTimeフォーマットエラー | eventTime が RFC 3339 形式でないか、解析できない場合 | RFC 3339形式に変更(タイムゾーンを含む) |
| eventTime範囲超過 | eventTimeが現在の時刻基準で過去31日または将来31日を超えている場合 | eventTime 値を確認して正常範囲に変更 |
| JSON解析失敗 | 送信されたメッセージが有効なJSON形式でない場合 | JSONフォーマット検証後の再送信 |
分離テーブル構造¶
孤立したイベントログは、t_raw_event_log_rescue テーブルに次の構造で保存されます。
| 列名 | データ型 | 説明 |
|---|---|---|
userId | STRING | 送信されたuserId(解析可能な場合) |
identifierProvider | STRING | 送信されたidentifierProvider |
deviceId | STRING | 送信されたdeviceId |
appIdGroup | STRING | 送信されたappIdGroup |
dateTime | STRING | 送信されたeventTime元の値(文字列のまま保存、TIMESTAMP以外) |
eventName | STRING | 送信されたeventName |
bigqueryRegistTimestamp | TIMESTAMP | BigQuery保存時間 |
checksum | STRING | ハッシュ値 |
rawData | STRING | 送信されたオリジナルJSONフル |
errorReason | STRING | 分離理由コード |
errorStackTrace | STRING | 隔離の詳細(欠けているフィールド名など) |