建立 Firebase 遠端設定實驗並進行 A/B 測試

使用 Firebase Remote Config 為擁有活躍使用者族群的應用程式部署設定時,請務必確保設定正確無誤。您可以使用A/B Testing實驗,判斷下列事項:

  • 實作功能以提升使用者體驗的最佳方式。應用程式開發人員往往要等到應用程式在應用程式商店中的評分下降,才會發現使用者不喜歡新功能或更新後的使用者體驗。A/B Testing可協助您評估使用者是否喜歡新版功能,或是否偏好現有的應用程式。此外,將大部分使用者保留在基準群組中,可確保大部分使用者族群在實驗結束前,能繼續使用應用程式,而不會遇到任何行為或外觀變更。
  • 根據業務目標,盡可能提升使用者體驗。 有時您會為了盡可能提高收益或留存率等指標,而對產品進行變更。使用 A/B Testing 時,您需要設定業務目標,Firebase 則會執行統計分析,判斷變化版本在所選目標上的成效是否優於基準。

如要對功能變化版本和基準進行 A/B 測試,請按照下列步驟操作:

  1. 建立實驗。
  2. 管理實驗。

建立實驗

Remote Config 實驗可讓您評估一或多個Remote Config參數的多個變化版本。

  1. 確認專案已啟用 Google Analytics,實驗才能存取 Analytics 資料。

    如果您在建立專案時未啟用 Google Analytics,可以在 Firebase 控制台的「 Settings > Integrations tab」中啟用。

  2. 在 Firebase 控制台中,依序前往「DevOps & Engagement」>「A/B Testing」

  3. 按一下「Create experiment」(建立實驗),然後在 系統提示您選取要實驗的服務時,選取「Remote Config」。

  4. 在「Variants」(變化版本) 部分,選擇實驗的基準和至少一個變化版本。您可以新增一或多個參數來進行實驗。您可以重複這個步驟,在實驗中新增多個參數。

  5. (選用) 如要在實驗中加入多個變化版本,請按一下「Add another variant」(新增其他變化版本)。

  6. 變更特定變化版本的一或多個參數。未納入實驗的使用者,其未變更的參數則維持不變。

  7. 展開「Variant Weights」(變化版本權重),查看或變更實驗的變化版本權重。根據預設,每個版本的權重均等。請注意,如果權重不均等,可能會導致資料收集時間加長。此外,實驗開始之後即不可再變更權重。

  8. 使用 Remote Config 條件定義實驗的「指定目標」條件:

    • 重複使用現有條件:如果 Remote Config 範本中的現有條件已符合目標對象,請從清單中選取該條件。

    • 確認條件評估順序:請確認「條件」頁面上的條件已按照正確的優先順序排列。由於 Remote Config 會由上而下依序評估條件,因此其他優先順序較高的條件可能會導致符合實驗條件的使用者人數不足。

    • 建立新條件:如果現有條件不符合指定目標需求,或您想複製現有條件 (例如避免鎖定其他參數共用的條件),請先選擇使用實驗的應用程式,再建立新條件。如果您測試的參數也使用現有 (或其他重疊) 條件,請務必將新的實驗條件放在「條件」分頁中現有條件的上方 (提高評估優先順序),否則使用者會先符合現有條件,而不會進入實驗。

      接著,您可以按一下「and」,並從下列清單中選取一或多個選項,指定特定使用者子集:

      • 版本:一或多個應用程式版本
      • 版本號碼:應用程式的版本號碼 (Apple) 或版本代碼 (Android)
      • 平台:要指定的一或多個平台 (iOS、Android 或網頁)
      • 作業系統:根據作業系統和版本,指定網頁應用程式使用者
      • 瀏覽器:根據網頁瀏覽器和瀏覽器版本,指定網頁應用程式使用者
      • 裝置類別:根據網頁應用程式使用者的裝置是否為行動裝置,指定目標對象
      • 語言:一或多種語言和語言代碼,用於選取可能納入實驗的使用者
      • 國家/地區:選取一或多個國家/地區,指定要納入實驗的使用者
      • 使用者目標對象:Analytics 目標對象,用於指定可能納入實驗的使用者
      • 使用者屬性:一或多個 Analytics 使用者屬性,用於選取可能納入實驗的使用者
      • 隨機百分比中的使用者:指定在定義的百分位數範圍內,隨機選取的使用者百分比
      • 匯入的區隔:指定上傳至專案的自訂匯入區隔使用者
      • 日期/時間:根據指定的日期和時間範圍指定使用者
      • 初次開啟:根據使用者初次開啟應用程式的時間指定目標
      • 安裝 ID:使用 Firebase 安裝 ID (FID),指定特定測試裝置或用戶端執行個體
      • 使用者存在:指定專案中所有應用程式的所有使用者
      • 自訂信號:根據執行階段傳遞的自訂用戶端鍵/值信號,指定目標使用者族群
  9. 設定「Exposure」(曝光):輸入應用程式使用者族群中符合「Target users」(目標使用者) 條件的百分比,並在實驗中平均分配給基準和一或多個變化版本。可以是 0% 到 100% 之間的任何百分比。使用者會隨機分配到各個實驗,包括重複的實驗。

  10. 您也可以視需要設定啟用事件,確保實驗只會計入最先觸發特定 Analytics 事件的使用者資料。請注意,符合指定目標參數的所有使用者都會收到 Remote Config 實驗值,但只有觸發啟用事件的使用者才會納入實驗結果。

    為確保實驗有效,請務必選擇在應用程式啟用擷取的設定值之後發生的事件。此外,下列事件一律會在擷取的值啟用前發生,因此無法使用:

    • app_install
    • app_remove
    • app_update

    您選為啟用事件的 Analytics 事件,不得同時做為同一實驗的主要指標 (或額外指標)。否則 Firebase 控制台會觸發驗證錯誤,導致實驗無法啟動。

  11. 在實驗的 「目標」部分,選取要追蹤的主要 指標,並從 清單中新增要追蹤的其他指標。包括內建目標 (購買、收益、留存率、未發生當機的使用者等)、Analytics 轉換事件和其他 Analytics 事件。完成後,點選「下一步」。

  12. 按一下「儲存」,儲存實驗。您必須發布範本,才能開始執行實驗。

,監控測試變化版本與預設值的擷取百分比。

每項專案最多可建立 300 個實驗 (包括推出作業),其中最多可有 24 個執行中的實驗和推出作業,其餘則為已完成的實驗。

管理實驗

使用 Remote Config 建立實驗後,您可以啟動實驗、在實驗執行期間監控實驗,以及增加實驗參與人數。

實驗結束後,您可以記下勝出變化版本使用的設定,然後向所有使用者推出這些設定。或者,您也可以執行其他實驗。

編輯實驗

  1. 在 Firebase 控制台導覽 選單的「DevOps & Engagement」(開發運作與參與) 專區中,按一下 「Remote Config」。
  2. 按一下「A/B 測試」分頁標籤。
  3. 按一下「執行中」,然後點選要編輯的實驗。
  4. 按一下內容選單 (),然後點選「Edit running experiment」(編輯執行中的實驗)。
  5. 如要驗證應用程式是否有使用者會納入實驗,請展開詳細資料,並在「指定目標和發布」部分中檢查是否有大於 0% 的數字 (例如「1% 的使用者符合條件」)。

監控實驗

實驗執行一段時間後,您可以查看進度,以及目前參與實驗的使用者結果。

  1. 在 Firebase 控制台導覽 選單的「DevOps & Engagement」(開發運作與參與) 專區中,按一下 「Remote Config」。
  2. 按一下「A/B 測試」分頁標籤。
  3. 按一下「執行中」,然後點選或搜尋實驗名稱。這個頁面會顯示執行中實驗的各種觀測和模擬統計資料,包括:

    • 與基準的差異百分比:用來衡量特定變化版本與基準相比,指標的改善程度。計算方式是比較變化版本和基準的值範圍。
    • 超越基準的機率:特定變化版本在所選指標上超越基準的預估機率。
    • 每位使用者 observed_metric:根據實驗結果,這是指標值在一段時間後可能落入的預測範圍。
    • 總observed_metric:基準或變化版本的觀察累積值。這個值可用來評估各個實驗變化版本的成效,以及計算改善幅度、值範圍、超越基準的機率和成為最佳變化版本的機率。視評估的指標而定,這個資料欄可能會標示為「每位使用者持續時間」、「每位使用者收益」、「留存率」或「轉換率」。
  4. 實驗執行一段時間後 (Remote Config為 14 天),這個頁面的資料會指出哪個變化版本是「勝出版本」(如果有的話)。部分測量結果會附上長條圖,以視覺化格式呈現資料。

向所有使用者推出實驗

實驗執行一段時間後,目標指標會出現「領先者」(即勝出版本),此時即可向所有使用者套用實驗設定。您可以選取此後要向所有人發布的變化版本。即使實驗結果沒有明顯的勝出版本,您仍可向所有使用者發布特定變化版本。

  1. 在 Firebase 控制台導覽 選單的「DevOps & Engagement」(開發運作與參與) 專區中,按一下 「Remote Config」。
  2. 按一下「A/B 測試」分頁標籤。
  3. 按一下「Completed」或「Running」,然後點選要 向所有使用者發布的實驗,接著依序點選 「」 內容選單和「Roll out variant」。
  4. 如要向所有使用者推出實驗,請按照下列步驟操作:
    • 如果是Remote Config實驗,請選取一個變化版本,確認要更新的Remote Config參數值。建立實驗時定義的指定條件,在範本中會顯示為新條件,確保該版本推出後只會影響實驗所指定的使用者。點選「在遠端設定中查看」並檢查變更,然後按一下「發布變更」完成導入。

展開實驗

如果發現實驗吸引的使用者不足,A/B Testing無法判斷勝出組合,可以提高實驗的分配比例,觸及更高比例的應用程式使用者族群。

  1. 在 Firebase 控制台導覽 選單的「DevOps & Engagement」(開發運作與參與) 專區中,按一下「Remote Config」。
  2. 按一下「A/B 測試」分頁標籤。
  3. 選取要編輯的執行中實驗。
  4. 在「Experiment overview」(實驗總覽) 中,按一下內容選單 (),然後點選「Edit running experiment」(編輯執行中的實驗)。
  5. 「Targeting」(指定目標) 對話方塊會顯示一個選項,可提高參與實驗的使用者百分比。選取大於目前百分比的數字,然後按一下「發布」。實驗會推送給指定百分比的使用者。

複製實驗

  1. 在 Firebase 控制台導覽 選單的「DevOps & Engagement」(開發運作與參與) 專區中,按一下「Remote Config」。
  2. 按一下「A/B 測試」分頁標籤。
  3. 選取要停止的實驗 (執行中或已完成)。
  4. 按一下「已完成」或「執行中」,將滑鼠游標懸停在實驗上,按一下內容選單 (),然後點選「複製實驗」或「停止實驗」。

停止實驗

  1. 在 Firebase 控制台導覽 選單的「DevOps & Engagement」(開發運作與參與) 專區中,按一下「Remote Config」。
  2. 按一下「A/B 測試」分頁標籤。
  3. 選取要停止的實驗 (執行中或已完成)。
  4. 按一下「Completed」(已完成) 或「Running」(執行中),將滑鼠游標懸停在實驗上,按一下內容選單 (),然後點選「Stop experiment」(停止實驗)。

網頁用戶端識別和實驗持續性

使用者首次在瀏覽器中透過 Firebase A/B Testing 啟動網頁應用程式時,系統會產生專屬的 Firebase 安裝 ID (FID)。這個 FID 會永久儲存在瀏覽器的 IndexedDB 中,用於在不同工作階段中識別應用程式執行個體。

Firebase A/B Testing 會使用 FID 將使用者指派給實驗變化版本,Google Analytics 則會使用 FID 匯總事件,以便評估及分析各個變化版本中的使用者行為。

由於 FID 儲存在 IndexedDB 中,如果使用者從其他瀏覽器或無痕視窗存取應用程式,或清除瀏覽器的 IndexedDB,Firebase A/B Testing 會將使用者視為新使用者。也就是說,使用者在使用不同瀏覽器或瀏覽工作階段時,可能會被納入不同的實驗變化版本。

指定使用者

您可以使用下列使用者指定條件,指定要納入實驗的使用者。

Firebase 控制台支援下列規則類型。Remote Config REST API 提供同等功能,詳情請參閱條件運算式參考資料。

規則類型 運算子 值 注意事項
應用程式 == 從與 Firebase 專案相關聯的應用程式 ID 清單中選取。 在 Firebase 中新增應用程式時,您輸入的軟體包 ID 或 Android 套件名稱會定義一項屬性,在 Remote Config 規則中公開為「應用程式 ID」。

這項屬性的使用方式如下:
  • Apple 平台:使用應用程式的 CFBundleIdentifier。如要查看應用程式在 Xcode 的主要目標軟體包 ID,請前往「一般」分頁。
  • Android:使用應用程式的 applicationId。您可以在應用程式層級的 build.gradle(.kts) 檔案中找到 applicationId。
應用程式版本 字串值:
完全比對、
包含、
不包含、
包含規則運算式

數值:
<、<=、=、!=、>、>=

指定要指定的應用程式版本。

使用這項規則前,您必須先使用應用程式 ID 規則,選取與 Firebase 專案相關聯的 Android/Apple 應用程式。

Apple 平台:使用應用程式的 CFBundleShortVersionString。

注意:請確認 Apple 應用程式使用的是 Firebase Apple 平台 SDK 6.24.0 以上版本,因為舊版不會傳送 CFBundleShortVersionString (請參閱版本資訊)。

Android:使用應用程式的 versionName。

注意:數字比較運算子 (<、<=、=、!=、>、>=) 僅支援數字語意版本 (例如 1.2.3),不支援預先發布版後置字串或連字號 (例如 -beta 或 -rc)。如果版本字串含有非數字後置字串或連字號 (例如 1.5-beta),請改用字串運算子 (例如「包含規則運算式」、「包含」或「完全比對」)。

這項規則的字串比較會區分大小寫。使用「完全符合」、「包含」、「不包含」或「包含規則運算式」運算子時,您可以選取多個值。

使用「包含規則運算式」運算子時,您可以使用 RE2 格式建立規則運算式。規則運算式可以比對全部或部分目標版本字串。您也可以使用 ^ 和 $ 錨定標記,比對目標字串的開頭、結尾或整個字串。

版本編號 字串值:
完全比對、
包含、
不包含、
規則運算式

數值:
=、≠、>、≥、<、≤

指定要指定的應用程式版本。

使用這項規則前,您必須先使用應用程式 ID 規則,選取與 Firebase 專案相關聯的 Apple 或 Android 應用程式。

這個運算子僅適用於 Apple 和 Android 應用程式。這項資訊對應至應用程式的 CFBundleVersion (Apple) 和 versionCode (Android)。這項規則的字串比較會區分大小寫。

使用「完全比對」、「包含」、「不包含」或「包含規則運算式」運算子時,您可以選取多個值。

使用「包含規則運算式」運算子時,您可以使用 RE2 格式建立規則運算式。規則運算式可以比對全部或部分目標版本字串。您也可以使用 ^ 和 $ 錨定標記,比對目標字串的開頭、結尾或整個字串。

平台 == iOS
Android
網頁
 
作業系統 ==

指定要指定的作業系統。

使用這項規則前,您必須先使用應用程式 ID 規則,選取與 Firebase 專案相關聯的網頁應用程式。

如果作業系統及其版本與指定清單中的目標值相符,這項規則會針對特定網頁應用程式執行個體評估為 true。
瀏覽器 ==

指定要指定的瀏覽器。

使用這項規則前,您必須先使用應用程式 ID 規則,選取與 Firebase 專案相關聯的網頁應用程式。

如果瀏覽器及其版本與指定清單中的目標值相符,這項規則會針對特定網頁應用程式執行個體評估為 true。
裝置類別 是、不是 行動裝置 這項規則會評估存取網頁應用程式的裝置是行動裝置或非行動裝置 (電腦或主機)。這類規則僅適用於網頁應用程式。
語言 位於 選取一或多種語言。 如果應用程式執行個體安裝在採用其中一種語言的裝置上,這項規則會針對該應用程式執行個體評估為 true。
國家/地區 位於 選取一或多個區域或國家/地區。 如果應用程式執行個體位於列出的任何區域或國家/地區,這項規則會評估為 true。系統會根據要求中的裝置 IP 位址,或 Firebase Analytics 判定的國家/地區代碼 (如果 Analytics 資料與 Firebase 共用),判斷裝置國家/地區代碼。
使用者目標對象 包括至少一個 從您為專案設定的 Google Analytics 目標對象清單中,選取一或多個目標對象。

這項規則需要應用程式 ID 規則,才能選取與 Firebase 專案相關聯的應用程式。

注意:由於許多 Analytics 目標對象是由事件或使用者屬性定義,而這些屬性可能取決於應用程式使用者的動作,因此「目標對象中的使用者」規則可能需要一段時間,才會對特定應用程式執行個體生效。也就是說,即使使用者符合目標對象的條件,但如果 Analytics 在執行 fetchAndActivate() 時尚未將使用者加入目標對象,使用者就不會符合條件。

使用者屬性 字串值:
包含、
不包含、
完全比對、
包含規則運算式

數值:
=、≠、>、≥、<、≤

注意:在用戶端,您只能為使用者屬性設定字串值。對於使用數值運算子的條件,Remote Config 會將對應使用者屬性的值轉換為整數/浮點數。
從可用的 Google Analytics 使用者屬性清單中選取。 如要瞭解如何使用使用者屬性,針對特定使用者族群自訂應用程式,請參閱「Remote Config 和使用者屬性」。

如要進一步瞭解使用者屬性,請參閱下列指南:

使用「完全比對」、「包含」、「不包含」或「包含規則運算式」運算子時,您可以選取多個值。

使用「包含規則運算式」運算子時,您可以使用 RE2 格式建立規則運算式。規則運算式可以比對全部或部分目標版本字串。您也可以使用 ^ 和 $ 錨定標記,比對目標字串的開頭、結尾或整個字串。

注意:建立Remote Config條件時,無法使用自動收集的使用者屬性。
隨機百分比中的使用者 滑桿 (位於 Firebase 控制台。REST API 使用 <=、> 和 between 運算子。 0-100 TB

使用這個欄位,將變更套用至隨機抽樣的應用程式執行個體 (樣本大小可小至 .0001%),並使用滑桿小工具將隨機排列的使用者 (應用程式執行個體) 分成多個群組。

系統會根據該專案中定義的種子,將每個應用程式執行個體持續對應至隨機整數或分數。

除非您修改種子值,否則規則會使用預設金鑰 (在 Firebase 控制台中顯示為「Edit seed」(編輯種子))。如要讓規則恢復使用預設金鑰,請清除「Seed」欄位。

如要在指定百分比範圍內,持續指定相同的應用程式執行個體,請在不同條件中使用相同的種子值。或者,您也可以指定新的種子,為特定百分比範圍選取一組隨機指派的新應用程式執行個體。

舉例來說,如要建立兩個相關條件,分別套用至不重疊的 5% 應用程式使用者,您可以將其中一個條件設為比對 0% 到 5% 之間的百分比,並將另一個條件設為比對 5% 到 10% 之間的範圍。如要允許部分使用者隨機出現在兩個群組中,請為每個條件中的規則使用不同的種子值。

匯入的區隔 位於 選取一或多個匯入的區隔。 這項規則需要設定自訂匯入區隔。
日期/時間 之前、之後 指定日期和時間,可以是裝置時區或指定時區,例如「(GMT+11) 雪梨時間」。 比較目前時間與裝置擷取時間。
初次開啟 之前、之後

根據使用者初次開啟應用程式的時間指定目標:

  • 選取「新使用者」,指定在未來特定日期和時間後,首次開啟應用程式的使用者。
  • 選取「時間範圍」,指定在您設定的日期和時間前後,初次開啟應用程式的使用者。結合「之前」和「之後」條件,指定特定日期範圍內的使用者。

選取 Android、iOS 或網頁應用程式後,即可根據初次開啟時間指定使用者。

需要下列 SDK:

  • Google Analytics 專用 Firebase SDK
  • Apple 平台 SDK 9.0.0 以上版本或 Android SDK 21.1.1 以上版本 (Firebase BoM 30.3.0 以上版本),以及 JavaScript SDK 12.8.0 以上版本。

在初次開啟事件期間,用戶端也必須啟用 Analytics。

安裝 ID 位於 指定一或多個安裝 ID (最多 50 個) 做為指定目標。 如果特定安裝項目的 ID 位於以半形逗號分隔的值清單中,這項規則會將該安裝項目評估為 true。

如要瞭解如何取得安裝 ID,請參閱「擷取用戶端 ID」。
使用者確實存在 (不使用運算子) 指定目前專案中所有應用程式的所有使用者。

使用這項條件規則,即可比對專案中的所有使用者,無論應用程式或平台為何。

自訂信號 字串值:
包含
不包含
完全比對
包含規則運算式

數值:
=、≠、>、≥、<、≤

版本值:
=、≠、>、≥、<、≤

這項規則的字串比較會區分大小寫。使用「完全比對」、「包含」、「不包含」或「包含規則運算式」運算子時,您可以選取多個值。使用「包含規則運算式」運算子時,您可以建立 RE2 格式的規則運算式。規則運算式可以比對目標版本字串的全部或部分內容。您也可以使用 ^ 和 $ 錨定標記,比對目標字串的開頭、結尾或整個字串。

用戶端環境支援下列資料類型:
  • iOS:int、double
  • Android:int、long、double
  • 網頁:數字

代表要比對的版本號碼 (例如 2.1.0)。

如要進一步瞭解自訂信號條件和條件運算式,請參閱「自訂信號條件」和「用於建立條件的元素」。

A/B Testing 項指標

建立實驗時,您需要選擇主要指標或目標指標,用來判斷勝出版本。您也應該追蹤其他指標,進一步瞭解各實驗變化版本的成效,並追蹤各變化版本可能不同的重要趨勢,例如使用者留存率、應用程式穩定性和應用程式內購收益。實驗最多可追蹤五項非目標指標。

舉例來說,假設您使用 Remote Config 在應用程式中推出兩種不同的遊戲流程,並想提高應用程式內購和廣告收益,同時追蹤各個變化版本的穩定性和使用者留存率。在這種情況下,建議您選擇「預估總收益」做為目標指標,因為這項指標包含應用程式內購收益和廣告收益。接著,您可以在「要追蹤的其他指標」中新增下列指標:

  • 如要追蹤每日和每週使用者留存率,請新增「留存率 (2-3 天)」和「留存率 (4-7 天)」。
  • 如要比較兩個遊戲流程的穩定性,請新增「未受當機情況影響的使用者」。
  • 如要查看各收益類型的詳細資料,請新增「購買收益」和「預估廣告收益」。

下表詳細說明目標指標和其他指標的計算方式。

「目標」指標

指標 說明
未遇到當機情形的使用者 實驗期間,Firebase Crashlytics SDK 偵測到應用程式發生錯誤,未遇到錯誤的使用者百分比。

注意:Firebase Crashlytics 不支援網頁應用程式。

預估廣告收益 預估廣告收益。
預估總收益 購買和預估廣告收益的合併價值。
購買收益 所有 purchase 和 in_app_purchase 事件的合併價值。
留存 (1 天) 每天回訪應用程式的使用者人數。
留存 (2 至 3 天) 在 2 到 3 天內回訪應用程式的使用者人數。
留存率 (4 到 7 天) 4 到 7 天內回訪應用程式的使用者人數。
留存率 (8 至 14 天) 在 8 到 14 天內回訪應用程式的使用者人數。
留存率 (15 天以上) 上次使用應用程式後,15 天以上才再次開啟應用程式的使用者人數。
first_open 使用者安裝或重新安裝應用程式後,初次開啟應用程式時觸發的 Analytics 事件。做為轉換漏斗的一部分。

其他指標

指標 說明
notification_dismiss Analytics 事件,會在通知編寫器傳送的通知遭到關閉時觸發 (僅限 Android)。
notification_receive 當應用程式在背景執行時,收到通知編寫器傳送的通知,就會觸發 Analytics 事件 (僅限 Android)。
os_update Analytics 事件,用於追蹤裝置作業系統更新至新版本的時間。詳情請參閱「自動收集的事件」。

網頁應用程式不支援這項指標。

screen_view Analytics 事件,用於追蹤應用程式中的畫面瀏覽。詳情請參閱「追蹤畫面瀏覽」。
session_start Analytics 事件,用於計算應用程式中的使用者工作階段。詳情請參閱「自動收集的事件」。

BigQuery 資料匯出

除了在 Firebase 控制台中查看 A/B Testing 實驗資料外,您也可以在 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 的結果。

如要開始使用,請按照本指南所述完成下列步驟:

  1. 在 Firebase 控制台中啟用 Google Analytics 的 BigQuery 匯出功能
  2. 使用 BigQuery 存取 A/B Testing 資料
  3. 探索查詢範例

在 Firebase 控制台中,啟用 Google Analytics 的 BigQuery 匯出功能

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

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

  1. 在 Firebase 控制台中,依序前往「 Settings」(設定) >「Integrations」(整合) 分頁。

  2. 在「BigQuery」資訊卡中,按一下「Manage」(管理),確認 專案會將Analytics資料匯出至BigQuery。

    如果資訊卡顯示「Link」(連結),則必須設定匯出作業 (繼續下一個步驟)。

  3. 如要設定匯出功能,請按照下列步驟操作:

    1. 詳閱「關於將 Firebase 連結至 BigQuery」,然後按一下「Next」(下一步)。

    2. 在「Configure integration」(設定整合) 部分,啟用 「Google Analytics」。

    3. 選取區域和匯出設定。

    4. 按一下「連結至 BigQuery」。

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

在 BigQuery 中存取 A/B Testing 資料

查詢特定實驗的資料前,請先取得下列部分或所有資訊,以便在查詢中使用:

  • 實驗 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 中找到這個名稱;展開專案名稱以顯示 Google Analytics 事件資料表 (project_name.analytics_000000000.events) 的名稱時,這個名稱也會顯示在 BigQuery 中。
  • 實驗日期:為編寫更快速、更有效率的查詢,建議您將查詢限制在包含實驗資料的 Google Analytics 每日事件資料表分區,也就是以 YYYYMMDD 後置字串識別的資料表。因此,如果實驗在 2026 年 2 月 2 日至 2026 年 5 月 2 日期間執行,請指定 _TABLE_SUFFIX between '20260202' AND '20260502'。如需範例,請參閱「選取特定實驗的值」。
  • 事件名稱:通常會對應您在實驗中設定的目標指標。例如 in_app_purchase 事件、ad_impression 或 user_retention 事件。
」

收集生成查詢所需的資訊後,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「BigQuery」。
  2. 選取專案,然後選取「建立 SQL 查詢」。
  3. 新增查詢。如要查看可執行的查詢範例,請參閱「探索查詢範例」。
  4. 按一下「執行」。

使用 Firebase 控制台自動生成的查詢,查詢實驗資料

如果您使用的是 Blaze 方案,「實驗總覽」頁面會提供範例查詢,傳回您正在查看的實驗名稱、變化版本、事件名稱和事件數量。

如要取得並執行自動生成的查詢,請按照下列步驟操作:

  1. 在 Firebase 控制台中,依序前往「DevOps & Engagement」> 「A/B Testing」。
  2. 選取要查詢的 A/B Testing 實驗,開啟「Experiment overview」(實驗總覽)。
  3. 在「Options」(選項) 選單中,選取「BigQuery integration」(整合) 下方的 「Query experiment data」(查詢實驗資料)。這會在 Google Cloud 控制台的 BigQuery 中開啟專案,並提供基本查詢,可用於查詢實驗資料。

以下範例顯示為實驗產生的查詢,其中包含三個變化版本 (包括基準),名為「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 '20260202' AND '20260502')
    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