使用 Firebase Remote Config 為您的 Unity 遊戲實作 A/B 測試

一、簡介

在此 Codelab 中,您將了解如何使用 A/B 測試為範例遊戲MechaHamster:使用 Firebase 版本升級 來建立遠端設定實驗,您已在使用 Firebase 遠端設定 偵測您的遊戲中對其進行了修改。

透過遠端設定進行 A/B 測試,您可以在將應用程式的 UI、功能或參與活動推廣到更廣泛的受眾之前,測試對目標受眾的變更。您也可以使用實驗結果來:

  • 確定哪些參數值變體可以改善收入和保留率等關鍵指標。
  • 發現哪些用戶子群喜歡哪些變體。
  • 收集並儲存實驗數據,以對設定不同參數值的效果進行附加分析。

這就是A/B 測試的本質:它使您能夠取得用於遠端設定的程式碼,並啟動實驗來控制客戶端接收的值,基於遠端設定條件(包括Google Analytics 使用者屬性)、百分比部署、Analytics 轉換事件、以及這些的一些組合。

首先,您將透過根據使用者操作設定使用者屬性來實現一個條件,以限制誰將包含在實驗中。然後,您將建立一個 A/B 測試實驗,該實驗使用 Google Analytics 使用者屬性來確定實驗中包含哪些客戶端。最後,您將使用這些數據來進一步了解您的受眾。

你將學到什麼

  • 如何使用檢測的遠端配置值設定 A/B 測試
  • 如何使用 Google Analytics 使用者屬性作為 A/B 測試准入條件的一部分

先決條件

你需要什麼

  • Unity 2019.1.0f1 或更高版本,支援 iOS 和/或 Android 構建

2. 啟用調試選單

項目中隱藏了一個調試選單,並且遊戲中存在訪問此選單的按鈕,但目前未啟用。您必須啟用該按鈕才能從 MainMenu 預製件中存取它。

  1. 在 Unity 編輯器中,選擇Project選項卡,然後在Assets下,展開Hamster > Prefabs > Menus並按MainMenu

The Unity editor Project tab showing\nAssets. Hamster, Prefabs, Menus

  1. 在預製層次結構中,找到名為DebugMenuButton的停用子對象,然後按一下它以在「檢查器」標籤中將其開啟。

The Unity editor shows the Main Menu,\nwith DebugMenu disabled

  1. 「檢查器」標籤中,選取左上角包含DebugMenuButton 的文字欄位旁邊的方塊以啟用它。

The Inspector tab for DebugMenuButton\nwith checkbox

  1. 保存預製件。

如果您在編輯器或裝置上運行遊戲,現在應該可以存取選單。

3. 啟用遠端配置子選單

  1. 從 Unity 編輯器的「專案」標籤中,展開「資源」 > “Hamster” > “預製件” > “選單” ,然後雙擊“調試選單”物件以在編輯器“層次結構”標籤中將其打開。

    DebugMenu item nested under Assets,\nHamster, Prefabs, Menus
  2. 「層次結構」標籤中,展開層次結構並點選DebugMenu > Panel下的子對象,該子物件標記為Remote Config Actions

Remote Config Actions nested under\nCanvas, DebugMenu

  1. 在 Unity Inspector標籤中,透過選取包含物件名稱的文字欄位左側的方塊來啟用遠端設定操作

Unity editor with Remote Config\nActions enabled under DebugMenu, Panel

它有兩個名為 Set Bored Of Subtitle 和 Set Enjoys Subtitle 的 GameObject 子對象,它們都配置為呼叫DebugMenu.cs中現有但未實現的方法。

4. 將字幕覆蓋重設為應用程式內預設值

先前的 Codelab中,您將參數的預設值覆寫為 JSON,並使用條件來提供不同的變體。作為此 Codelab 的一部分,您將刪除您建立的條件並重新引入應用程式內預設值,並且您只能使用 A/B 測試的結果覆寫它。

若要重新啟用應用程式內預設設定:

  1. 在 Firebase 控制台中開啟「遠端設定」頁面,然後按一下subtitle_override參數旁的鉛筆圖示以開啟「編輯參數」側面板。
  2. 點擊條件旁邊的X圖示將其刪除。
  3. 在剩餘的預設值旁邊,啟用「使用應用程式內預設值」開關。

Deleting a condition from the Remote\nConfig parameter editor

  1. 按一下「儲存」儲存您的更改,然後按一下「發布更改」以發布您的更改。 Publish\nchanges option on the Remote Config page

5. 在調試功能中設定使用者屬性

現在,您將在DebugMenu.cs中為一些預先配置但未實現的 Google Analytics 函數編寫函數體(可以在「資產」>「Hamster」>「腳本」>「狀態」中找到)。

這些函數設定使用者屬性,這是描述使用者群細分的方式,用於記錄使用者對遊戲字幕的感受。

透過在DebugMenu.cs中找到SetUserBoredOfSubtitleSetUserEnjoysSubtitle的現有版本並覆寫它們來實現它們,如下所示:

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

如果您的應用程式正確配置了 Google Analytics,您可以呼叫這些函數之一以使該屬性可用於遠端配置的條件。若要從行動裝置呼叫SetUserBoredOfSubtitle ,請啟動遊戲並按下主選單中的「偵錯選單」按鈕,然後按下「Set Bored of Subtitle」

6. 建立自訂維度

接下來,您將為subtitle_override設定各種字幕變體,以查看哪種字幕效果最佳。但是,在 A/B 測試中,您只會向對當前字幕的感受(如subtitle_sentiment中記錄的)包含“無聊”一詞的用戶提供這些變體。

您將使用自訂維度來建立和追蹤 Analytics 事件的自訂參數。有關詳細信息,請參閱自訂維度和指標

若要建立新的自訂維度:

  1. 開啟Firebase 控制台,展開「分析」選單,然後選擇「自訂定義」。
  2. 在「自訂定義」頁面中,按一下「建立自訂維度」
  3. “新自訂維度”視窗中,將維度名稱設定為“字幕情緒”,然後從“範圍”下拉清單中選擇“使用者”
  4. 對於使用者屬性字段,選擇subtitle_sentiment.

7. 設定 A/B 測試實驗

接下來,建立 A/B 測試實驗,為subtitle_override設定不同的值以進行相互測試,以最佳化兩到三天的使用者保留率。

  1. 首先,在 Firebase 控制台遠端設定頁面上的subtitle_override參數上選擇編輯

The subtitle_override parameter on\nthe Remote Config page, showing the Edit option.

  1. 在出現的編輯參數對話框中,按一下新增新的

The Add new experiment option on the\nRemote Config Edit parameter page.

  1. 從出現的清單中,選擇實驗

Remote Config parameter page: Add new\nexperiment

  1. 輸入實驗的名稱和描述。

Experiment name and description\nsection

  1. 接下來,選擇定位條件。首先,從下拉清單中選擇您的應用程式。

The Targeting step of an A/B Testing\nconfiguration, with an app selected

  1. 接下來,按一下And新增條件,然後選擇User Property並選擇subtitle_sentiment 。如果沒有出現,請手動輸入。
  2. 由於您只想為當前字幕情緒包含“bored”的人設定副標題,因此請選擇contains並輸入bored
  3. (可選)選擇符合上述標準的受眾百分比來接受測試。選擇100%以避免您無法輕鬆控制的隨機性。

A/B Testing Targeting section with\nsubtitle_sentiment selected

  1. 接下來,選擇測試將嘗試最大化的目標。選擇保留(2-3 天)

A/B Testing Goals section

  1. 接下來,設定實驗參數並建立不同的字幕變體。這些變體是 A/B 測試將為subtitle_sentiment包含「無聊」的用戶提供的不同值,A/B 測試將確定哪種變體最適合最大限度地提高保留率。
  2. 為變體 A 輸入以下參數值:
    {"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
    
  3. 為變體 B 輸入以下參數值:
    {"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
    
  4. 將變數比率設定為整數,如下所示:
    • 基線:1
    • 變體 A :100
    • 變體 B :100
    這將導致基線的總權重為 0.5%,變異 A 為 49.8%,變異 B 為 49.8%。 Variant weights configuration\nsection這些變體指定,201 次中有一次,A/B 測試為那些厭倦了字幕的人提供預設值,但 200/201 次,它將提供兩個新值之一併覆蓋標題畫面。
  5. 按一下「開始實驗」儲存並提交,然後在確認彈出視窗中按一下「開始」Click Start to start the\nexperiment

8. 執行設定使用者屬性方法並刷新

您現在已經設定了有關使用者的各種屬性,然後可以使用這些屬性來指導遊戲的邏輯或表示。

如果您之前沒有執行過SetUserProperty方法或將其設為enjoys ,則開啟遊戲時您仍然應該看到預設字幕。

如果您將其設為bored (在重新獲取之前),您應該會看到新值之一的比例約為 50/50。

一旦設備進入 A/B 測試實驗,它們從該實驗收到的值將不會改變,並且在每次安裝時都是持久的。因此,要接收其他實驗值之一,您必須透過將遊戲重新安裝到相同裝置/模擬器或將遊戲安裝到新裝置/模擬器來建立新安裝。

在跨用戶群啟動的真實 A/B 測試中,您應該為基線賦予與其他變體類似的權重。但在這種情況下,您分配非常偏態的機率來驗證實驗是否有效。如果(在 1/201 的情況下)您仍然收到預設值,請嘗試將遊戲重新安裝到您的裝置/模擬器上。

這樣做的另一個影響是,將使用者屬性切換回enjoys不會將值變更回基線,但同樣,您可以透過切換到enjoys並重新安裝來完成此操作。

9. 恭喜!

您已使用遠端配置 A/B 測試來試驗不同的遠端配置值並確定每個值如何影響 Analytics 指標。

我們涵蓋的內容

  • 如何使用檢測的遠端配置值設定 A/B 測試
  • 如何使用 Google Analytics 使用者屬性作為 A/B 測試實驗准入條件的一部分

下一步

實驗結束後,您可以從專案中的實驗清單中選擇一個來決定您想要用它做什麼。您想選擇一個作為“獲勝者”還是進行更多實驗?