使用 BigQuery 檢查個人化資料

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

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

為「Firebase」啟用「Google 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 個人化資料

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

  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 事件中。

如「[GA4] BigQuery 匯出結構定義」所述,個人化事件中提供的基本欄位與任何 Analytics 事件相同。您主要會關注 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