除了在 A/B Testing 控制台中查看實驗資料,您也可以在 Firebase 中檢查及分析實驗資料。BigQuery雖然 A/B Testing 沒有個別的 BigQuery 表格,但實驗和變數成員資格會儲存在 Analytics 事件表格中的每個 Google Analytics 事件。
含有實驗資訊的使用者屬性格式為 userProperty.key like "firebase_exp_%"
或 userProperty.key =
"firebase_exp_01"
,其中 01
是實驗 ID,而 userProperty.value.string_value
則包含實驗變數的 (以零為基準) 索引。
您可以使用這些實驗使用者屬性擷取實驗資料。 您可以透過多種不同方式分析實驗結果,並獨立驗證 A/B Testing 的結果。
如要開始使用,請按照本指南所述完成下列步驟:
- 在 Firebase 控制台中啟用 BigQuery 匯出功能Google Analytics
- 使用 BigQuery 存取 A/B Testing 資料
- 探索查詢範例
在 Firebase 控制台中啟用 BigQuery 匯出功能 (適用於 Google Analytics)
如果採用 Spark 方案,您可以使用BigQuery沙箱免費存取 BigQuery,但須遵守沙箱限制。詳情請參閱「定價和 BigQuery 沙箱」。
首先,請確認您要將 Analytics 資料匯出至 BigQuery:
- 開啟「整合」分頁標籤,方法是在 Firebase 控制台中依序點選 >「專案設定」。
- 如果您已將 BigQuery 與其他 Firebase 服務搭配使用,請按一下「管理」。否則請按一下「連結」。
- 查看「關於將 Firebase 連結至 BigQuery」,然後按一下「下一步」。
- 在「設定整合」部分,啟用 Google Analytics 切換鈕。
選取區域並選擇匯出設定。
按一下「連結至『BigQuery』」。
視您選擇的資料匯出方式而定,表格最多可能需要一天才能提供。如要進一步瞭解如何將專案資料匯出至 BigQuery,請參閱「將專案資料匯出至 BigQuery」。
在 BigQuery 中存取 A/B Testing 資料
查詢特定實驗的資料前,請先取得下列部分或全部資訊,以供查詢使用:
- 實驗 ID:您可以從「實驗總覽」頁面的網址取得這個 ID。舉例來說,如果網址看起來像這樣:
https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25
, 則實驗 ID 為 25。 - Google Analytics 房源 ID:這是 9 位數的Google Analytics房源 ID。您可以在 Google Analytics 中找到這個 ID;展開專案名稱以顯示 Google Analytics 事件資料表名稱 (
project_name.analytics_000000000.events
) 時,這個 ID 也會顯示在 BigQuery 中。 - 實驗日期:為加快查詢速度並提高效率,建議您將查詢限制在包含實驗資料的Google Analytics每日Google Analytics事件資料表分區 (以
YYYYMMDD
字尾識別的資料表)。舉例來說,如果實驗期間為 2024 年 2 月 2 日至 2024 年 5 月 2 日,您應指定_TABLE_SUFFIX between '20240202' AND '20240502'
。如需範例,請參閱「選取特定實驗的值」。 - 事件名稱:通常會對應到您在實驗中設定的目標指標。例如
in_app_purchase
活動、ad_impression
或user_retention
活動。
收集完產生查詢所需的資訊後,請按照下列步驟操作:
使用 Firebase 控制台自動產生的查詢,查詢實驗資料
如果您使用 Blaze 方案,「實驗總覽」頁面會提供範例查詢,傳回您正在查看的實驗名稱、變數、事件名稱和事件數量。
如要取得並執行自動產生的查詢,請按照下列步驟操作:
- 在 Firebase 控制台中,開啟 A/B Testing 並選取要查詢的 A/B Testing 實驗,開啟「實驗總覽」。
- 在「選項」選單的「BigQuery 整合」下方,選取「查詢實驗資料」。這會在 BigQuery Google Cloud 控制台中開啟專案,並提供基本查詢,可用於查詢實驗資料。
以下範例顯示為名為「Winter welcome experiment」的實驗產生的查詢,該實驗有三個變化版本 (包括基準)。這項查詢會傳回每個事件的有效實驗名稱、變體名稱、專屬事件和事件計數。請注意,查詢產生器不會在資料表名稱中指定專案名稱,因為查詢產生器會直接在專案中開啟。
/*
This query is auto-generated by Firebase A/B Testing for your
experiment "Winter welcome experiment".
It demonstrates how you can get event counts for all Analytics
events logged by each variant of this experiment's population.
*/
SELECT
'Winter welcome experiment' AS experimentName,
CASE userProperty.value.string_value
WHEN '0' THEN 'Baseline'
WHEN '1' THEN 'Welcome message (1)'
WHEN '2' THEN 'Welcome message (2)'
END AS experimentVariant,
event_name AS eventName,
COUNT(*) AS count
FROM
`analytics_000000000.events_*`,
UNNEST(user_properties) AS userProperty
WHERE
(_TABLE_SUFFIX BETWEEN '20240202' AND '20240502')
AND userProperty.key = 'firebase_exp_25'
GROUP BY
experimentVariant, eventName
如需其他查詢範例,請參閱「探索查詢範例」。
查看查詢範例
下列各節提供查詢範例,可用於從 Google Analytics 事件資料表擷取 A/B Testing 實驗資料。
從所有實驗中擷取購買和實驗標準差值
您可以根據實驗結果資料,獨立驗證Firebase A/B Testing結果。下列 BigQuery SQL 陳述式會擷取實驗變體、各變體中的不重複使用者人數,以及 in_app_purchase
和 ecommerce_purchase
事件的總收益,並計算指定時間範圍內所有實驗的標準差,該時間範圍由 _TABLE_SUFFIX
開始和結束日期指定。您可以搭配單尾 t 檢定的統計顯著性產生器,使用從這項查詢取得的資料,驗證 Firebase 提供的結果是否符合您自己的分析。
如要進一步瞭解 A/B Testing 如何計算推論結果,請參閱「解讀測試結果」。
/*
This query returns all experiment variants, number of unique users,
the average USD spent per user, and the standard deviation for all
experiments within the date range specified for _TABLE_SUFFIX.
*/
SELECT
experimentNumber,
experimentVariant,
COUNT(*) AS unique_users,
AVG(usd_value) AS usd_value_per_user,
STDDEV(usd_value) AS std_dev
FROM
(
SELECT
userProperty.key AS experimentNumber,
userProperty.value.string_value AS experimentVariant,
user_pseudo_id,
SUM(
CASE
WHEN event_name IN ('in_app_purchase', 'ecommerce_purchase')
THEN event_value_in_usd
ELSE 0
END) AS usd_value
FROM `PROJECT_NAME.analytics_ANALYTICS_ID.events_*`
CROSS JOIN UNNEST(user_properties) AS userProperty
WHERE
userProperty.key LIKE 'firebase_exp_%'
AND event_name IN ('in_app_purchase', 'ecommerce_purchase')
AND (_TABLE_SUFFIX BETWEEN 'YYYYMMDD' AND 'YYYMMDD')
GROUP BY 1, 2, 3
)
GROUP BY 1, 2
ORDER BY 1, 2;
選取特定實驗的值
以下查詢範例說明如何在 BigQuery 中取得特定實驗的資料。這項範例查詢會傳回實驗名稱、變數名稱 (包括基準)、事件名稱和事件計數。
SELECT
'EXPERIMENT_NAME' AS experimentName,
CASE userProperty.value.string_value
WHEN '0' THEN 'Baseline'
WHEN '1' THEN 'VARIANT_1_NAME'
WHEN '2' THEN 'VARIANT_2_NAME'
END AS experimentVariant,
event_name AS eventName,
COUNT(*) AS count
FROM
`analytics_ANALYTICS_PROPERTY.events_*`,
UNNEST(user_properties) AS userProperty
WHERE
(_TABLE_SUFFIX BETWEEN 'YYYMMDD' AND 'YYYMMDD')
AND userProperty.key = 'firebase_exp_EXPERIMENT_NUMBER'
GROUP BY
experimentVariant, eventName