使用 BigQuery 檢查個人化資料

Remote Config 個人化功能會在將個人化內容指派給使用者時記錄 personalization_assignment Analytics 事件,方便您使用 BigQuery 檢查及分析個人化事件和相關事件。

以下各節將說明如何為 Analytics 事件啟用 BigQuery 匯出功能、如何儲存個人化事件,並提供一些基本查詢,協助您開始使用。

FirebaseGoogle Analytics 啟用 BigQuery 匯出功能

如果您使用的是 Spark 方案,可以使用 BigQuery 沙箱免費存取 BigQuery,但須遵守沙箱限制。詳情請參閱「定價和 BigQuery 沙箱」一文。

首先,請確認您將 Analytics 資料匯出至 BigQuery

  1. 開啟「整合」分頁,您可以透過 Firebase 控制台中的 > 專案設定」存取該分頁。
  2. 如果您已將 BigQuery 與其他 Firebase 服務搭配使用,請按一下「管理」。否則請按一下「連結」
  3. 詳閱「關於將 Firebase 連結至 BigQuery」,然後按一下「下一步」
  4. 在「設定整合」部分中,啟用「Google Analytics」切換按鈕。
  5. 選取區域並選擇匯出設定。

  6. 按一下「連結至 BigQuery

視您選擇的資料匯出方式而定,表格可能需要最多一天的時間才能使用。如要進一步瞭解如何將專案資料匯出至 BigQuery,請參閱「將專案資料匯出至 BigQuery」。

接下來,我們將在 BigQuery 中存取及檢查個人化事件。

使用 BigQuery 存取 Remote Config 個人化資料

如要查詢實驗的數據分析資料,請按照下列步驟操作:

  1. Google Cloud 控制台中開啟 BigQuery。您也可以直接透過 Analytics 事件頁面底部的「BigQuery 中查看原始事件」連結,開啟這份報表。
  2. 選取並展開 Firebase 專案,然後展開 analytics_ANALYTICS_PROPERTY_ID 項目並按一下 events_

    在 Cloud 控制台中存取個人化事件

  3. 在「查詢」下拉式選單中,選取「在新分頁中開啟」

    系統會顯示自動產生的查詢範例。

  4. 如要查看個人化事件和相關資料,請更新查詢來選取 personalization_assignment 事件。下列查詢範例會針對特定日期區塊傳回完整的個人化指派事件,並將結果限制為 10 筆:

    # Select all personalization_assignment events
    SELECT *
    FROM `PROJECT_NAME.analytics_ANALYTICS_PROPERTY_ID.events_DATE_SHARD`
    WHERE event_name = 'personalization_assignment'
    LIMIT 10
    

    提示:如要搜尋所有事件資料表 (而非分割資料表),您可以將事件資料表日期替換為星號 (例如 PROJECT_NAME.analytics_ANALYTICS_PROPERTY_ID.events_*)。不過,不建議在非測試情境或大型資料集中使用這項功能。

  5. 在查詢撰寫器中選取「執行查詢」。結果會顯示在下方窗格中。

在下一節中,我們會進一步說明個人化指派事件的內容。

系統會將哪些個人化資料匯出至 BigQuery

個人化資料會納入 BigQuery 中的 Google Analytics 資料表,並儲存在 personalization_assignment 事件中。

個人化事件中提供的基本欄位與任何 Analytics 事件相同,如[GA4] BigQuery 匯出結構定義所述。您主要會關心 user_pseudo_id i(可用於區分不同使用者)、事件時間戳記和其他使用者屬性。

個人化專屬詳細資料會儲存在 event_params 欄位中,並在下表中說明:

參數 資料類型 說明
personalization_id STRING 提供已指派個人化功能的通用唯一識別碼 (UUID)。
群組 STRING 指出使用者是指派至個人化群組 (P13N) 還是控制組 (BASELINE) 群組。
arm_index INTEGER 代表指派給使用者的替代值,介於 0 到 4 之間的整數。
arm_key STRING 包含個人化功能使用的參數名稱。
arm_value STRING 包含個人化功能指派的替代值字串。
engaged_session_event INTEGER 包括使用者參與的工作階段數量。詳情請參閱「關於工作階段」。
firebase_event_origin STRING 表示事件的來源。對於 personalization_assignment 事件,這個值一律會是 fp
firebase_screen_class STRING 提供個人化指派發生時,使用者所操作畫面的類別名稱。詳情請參閱「自動收集的事件」。
firebase_screen_id INTEGER 顯示個人化指派發生時,使用者所在畫面的 ID。詳情請參閱「自動收集的事件」。
first_open_time STRING 提供使用者初次開啟應用程式的時間戳記 (以世界標準時間的毫秒為單位)。詳情請參閱「自動收集的事件」。
ga_session_id INTEGER 提供 Google Analytics 工作階段 ID。詳情請參閱「關於工作階段」。您可以使用這個屬性,將 personalization_assignment 事件與其他 Analytics 事件建立關聯。
ga_session_number INTEGER 提供 Google Analytics 工作階段編號。詳情請參閱「關於工作階段」。

查詢範例

您可以使用下列 SQL 陳述式,從 personalization_assignment 事件中擷取個人化專屬參數:

    # Expand nested personalization parameters
    SELECT
     timestamp_micros(event_timestamp) AS event_time,
     user_pseudo_id,
     (
       SELECT event_params.value.string_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'group'
     ) AS personalization_group,
     (
       SELECT event_params.value.string_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'personalization_id'
     ) AS personalization_id,
     (
       SELECT event_params.value.string_value,
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'arm_key'
     ) AS arm_key,
     (
       SELECT event_params.value.string_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'arm_value'
     ) AS arm_value,
     (
       SELECT event_params.value.int_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'ga_session_id'
     ) AS ga_session_id,
    FROM `PROJECT_NAME.analytics_ANALYTICS_ACCOUNT_ID.events_DATE_SHARD`
    WHERE event_name = 'personalization_assignment'
    LIMIT 10