事件儲存結構¶
大綱¶
您可以查看傳輸的事件日誌如何儲存在 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 - 違反傳輸規則的事件日誌儲存在 rescue 表中,而不是此表中。有关详细信息,请参阅数据隔离。
attributes 詳細屬性¶
Note
attributes hiveAttributes eventAttributes
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 中的傳送事件日誌功能傳送到舊版 Analytics 的自訂事件 |
custom_server_mig | 客戶從其伺服器傳送到舊版 Analytics 的自訂事件 |
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 驗證格式並重新發送 |
隔離表結構¶
隔離事件日誌儲存在 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 | 隔離詳細資料(缺少欄位名稱等) |