用測試日誌驗證收集結構與指標:事件日誌傳送 第2篇
在開發事件傳送功能之前先傳送測試日誌,就能事先確認事件與屬性是否依預期的結構與資料型別收集,以及能否用收集到的資料組成所需的指標。在 Hive Analytics 中,以 Data > Event 的 ETL Simulation 傳送測試日誌,在 Data Preview 與 BigQuery 確認收集結果,並在 Create 確認指標組成。若在正式環境中測試,請使用另外的測試用 App ID,並一併決定將測試資料排除於指標彙總之外的方式。
開發事件傳送功能前為何需要驗證資料
「用事件範本定義日誌收集結構:事件日誌傳送 第1篇」介紹了如何定義要分析的事件與屬性,並準備傳送日誌所用的原始碼。本篇將在實際委託開發之前傳送測試日誌,驗證事件的收集結構與指標的運用可能性。
在開發事件傳送功能之前,必須確認資料是否正常收集,以及能否用該結構組成所需的指標。即使事件名稱與屬性已經決定,若實際值的格式或資料型別與分析標準不同,往往要到開發完成後,才會發現屬性遺漏或指標計算的問題。
資料分析人員在傳送測試日誌後,會確認事件與屬性是否依預期的結構收集,以及指標所需的屬性是否全部包含在內。也會檢查各屬性的資料型別與值的格式,並確認對收集到的資料套用運算與維度後,能否組成所需的指標。
例如,若內容完成事件不包含用戶識別碼,就無法計算完成用戶數。若遊玩時間設為字串型別,或未定義值的單位,平均遊玩時間也難以依預期的標準確認。在開發前傳送範例資料,檢查實際的收集形式與指標結果,就能具體確定事件結構與傳送標準。
在 Hive Analytics 驗證測試日誌的方法
在 Hive Analytics 的 Data > Event 中,可以確認已登錄的事件與屬性,並透過 ETL Simulation 或程式碼實作傳送測試日誌。在各屬性輸入符合分析情境的範例值,就能在開發實際的日誌傳送功能之前,確認資料收集結果與作為指標使用的可行性。
測試日誌的驗證依以下順序進行:準備傳送環境與 App ID 並傳送日誌,再確認收集結果與指標組成。
- 選擇環境
依驗證目的,選擇要傳送測試日誌的沙盒或正式環境。在 Data Preview 與 BigQuery 確認結果時,也必須查詢傳送日誌之環境的資料。 - 準備 App ID
準備已在 Hive 主控台的應用程式中心或專案設定中登錄的 App ID。在正式環境中區分測試資料
若要在正式環境中明確區分測試資料與實際服務資料,建議另外登錄並使用測試用 App ID。若在遊戲上線前測試,可在Time Settings將正式上線日設為指標起始日,將上線前收集的資料排除於指標彙總之外。若遊戲已在營運中,可在Metric Filters登錄測試用 App ID,或在Excluded User Management登錄測試帳號,將該資料排除於指標彙總之外。請依測試資料的區分標準與服務狀態選擇適合的方法。 - 傳送測試日誌
分析人員可以在 ETL Simulation 直接傳送,也可以由開發人員實作在 Source Generation 確認的程式碼後傳送。在事件屬性中輸入假設分析情境的範例值,並在傳送前確認用戶識別碼、內容資訊與數值型屬性等是否符合所定義的資料型別與值的格式。 - 確認收集結果
在 Data Preview 確認事件是否已接收,以及傳送的屬性值。若需要詳細檢視原始資料,可在 BigQuery 直接查詢事件資料,檢查輸入的值是否以正確的屬性名稱與資料型別儲存。申請 BigQuery 查詢權限
收集到的事件與屬性原始資料可以在 BigQuery 直接查詢。若要使用 BigQuery,請先取得 Hive Analytics 管理員權限,再從 Hive Analytics 的帳號選單申請 BigQuery 查詢權限。 - 確認指標組成
在Create選擇收集到的事件作為測量值,並套用所需的運算與維度。確認計算出的數值是否符合預期,以及結果是否依屬性值按預期的標準區分,以驗證能否用該資料組成符合分析目的的指標。
用 contents_success 測試日誌驗證事件
若要分析完成內容的用戶數、平均遊玩時間與最高分數,就必須驗證 contents_success 事件是否依預期的結構收集。從選擇環境到確認指標組成的流程如下。
1. 選擇環境
為了確認實際服務將使用的資料結構,在正式環境中進行驗證。登入正式環境的 Hive Analytics 主控台,在 Data > Event 選擇 contents_success 事件,並前往 ETL Simulation 分頁。
2. 準備 App ID
確認要在正式環境中使用的測試用 App ID,已在 Hive 主控台的應用程式中心或專案設定中登錄。
3. 傳送測試日誌
測試日誌可以由分析人員在 ETL Simulation 直接傳送,也可以由開發人員將 Source Generation 提供的程式碼套用到遊戲中傳送。無論哪種方法,都必須輸入傳送日誌所需的必要屬性 userId、deviceId、identifierProvider、appId、eventTime、eventName。在 identifierProvider 輸入 hive,在 appId 輸入先前準備的測試用 App ID。appIdGroup 會在輸入 appId 後自動產生,因此不需另外輸入。
3.1 從 ETL Simulation 傳送
確認事件預先定義的屬性與資料型別,並變更 6 個必要屬性的值。接著將 characterLv、modeTypeId、modeTypeName、score、playTimeSec 改為符合分析情境的範例值後,傳送測試日誌。
contents_success 測試日誌。3.2 用產生的原始碼傳送
開發人員在 Source Generation 確認適合開發環境的程式碼,並將 6 個必要屬性與事件的詳細屬性值連結到實際的遊戲資料。套用程式碼,讓 contents_success 事件在內容完成確定時發生後,執行實作的功能傳送測試日誌。詳細的實作方法請參考 Hive 開發者網站的事件傳送指南。
傳送日誌時的注意事項
若未遵守以下規則,日誌將無法正常收集,並會儲存到另外的隔離資料表t_raw_event_log_rescue。
eventTime須以包含時區的 RFC 3339 格式輸入,並設定在以目前時間為基準的過去 10 年到未來 5 年範圍內。格式不正確或超出允許範圍時,日誌會被隔離。appId須輸入已在 Hive 主控台的應用程式中心或專案設定中登錄的 App ID。輸入未登錄或錯誤的值時,日誌會被隔離。
4. 確認收集結果
4.1 在 Data Preview 確認
傳送後,在 Data Preview 確認是否已接收 contents_success。也一併檢視用戶與裝置識別碼、App ID、事件名稱,以及 attributes 中包含的屬性值。
contents_success 是否已接收,以及傳送的屬性值。4.2 在 BigQuery 確認
若要更詳細地檢視原始資料,可在 BigQuery 以測試用 App ID 與事件名稱為條件查詢資料,確認傳送的 characterLv、modeTypeId、modeTypeName、score、playTimeSec 是否以預期的值與資料型別儲存。
5. 確認指標組成
若收集結果沒有問題,請在 Create 選擇 contents_success 事件,並依下列方式組成指標。
- 對
userId套用COUNT DISTINCT運算,確認內容完成用戶數。 - 對
playTimeSec套用AVG運算,確認平均遊玩時間。 - 對
score套用MAX運算,確認最高分數。 - 選擇
characterLv與modeTypeName作為維度,比較各角色等級、各內容的結果。
若能組成完成用戶數、平均遊玩時間與最高分數,且結果依角色等級與內容區分,就表示事件已依分析目的準備完成。若值有遺漏或結果與預期不同,請重新確認屬性名稱、資料型別與範例值。修正必要的內容後重新傳送測試日誌,並反映變更後的事件設定,重新產生開發用原始碼。
驗證完成後,將確定的原始碼、事件發生時機,以及各屬性要傳送的值交給開發人員,請求開發實際的日誌傳送功能。
將事件傳送程式碼套用到實際遊戲並傳送資料的方法,請參閱下一篇「將遊戲資料以事件日誌傳送:事件日誌傳送 第3篇」。
開始使用 Hive Analytics
設定事件與屬性後傳送測試日誌,就能在請求開發之前,確認資料收集結構與作為指標使用的可行性。反映驗證過程中發現的內容,確定事件設定與原始碼後,再交給開發人員。
Hive Analytics 是遊戲專用的分析解決方案,能以透過 Hive SDK 收集的遊戲事件為基礎,分析用戶行為與遊戲指標。現在就到 Hive Analytics 傳送測試日誌,確認能否用收集到的資料組成所需的指標。