使用 Firebase 遠端設定,為 Unity 遊戲導入 A/B 版本測試

1. 簡介

在本程式碼研究室中,您將瞭解如何針對範例遊戲「MechaHamster:使用 Firebase 版本升級」,建立遠端設定實驗 (在「使用 Firebase 遠端設定檢測遊戲」中修改)。

利用遠端設定進行 A/B 版本測試,你可以針對特定目標對象,測試調整應用程式使用者介面、功能或參與度廣告活動的變更,再向更多目標對象推出廣告活動。此外,實驗結果也可以:

  • 判斷哪個參數值變化版本可改善收益和留存率等主要指標。
  • 找出使用者偏好哪些子群組。
  • 收集並儲存實驗資料,即可進一步分析設定不同參數值的效果。

A/B 測試的基本原理:您可以運用這項功能進行遠端設定檢測的程式碼編寫作業,然後開始實驗根據遠端設定條件 (包括 Google Analytics 使用者屬性)、推出百分比、Analytics 轉換事件和上述這些條件的組合,控制客戶獲得的價值。

首先,你必須導入條件,根據使用者動作設定使用者屬性,限制要納入實驗的對象。接著請建立 A/B 測試實驗,根據 Google Analytics 使用者屬性,決定要將哪些客戶納入實驗。最後,你會運用這些資料進一步瞭解目標對象

課程內容

  • 如何使用檢測設備遠端設定值來設定 A/B 測試
  • 如何使用 Google Analytics 使用者屬性做為 A/B 版本測試的許可條件

事前準備

事前準備

  • 支援 iOS 和/或 Android 版本的 Unity 2019.1.0f1 以上版本

2. 啟用偵錯選單

專案中有個隱藏了偵錯選單,且遊戲中已有這個選單的按鈕,但該按鈕尚未啟用。你必須從 MainMenu Prefab 啟用該按鈕,才能使用該按鈕。

  1. 在 Unity 編輯器中,選取「Project」分頁標籤,然後在「Assets」下方展開「Hamster」>優先處理 >Menu,並按一下「MainMenu」

Unity 編輯器「Project」分頁顯示\n 資產。倉鼠、母親、菜單

  1. 在 Prefab 階層中,找出名稱為 DebugMenuButton 的已停用子物件,然後按一下,以在「Inspector」分頁中開啟。

Unity 編輯器顯示「主選單」,\n 停用 DebugMenu

  1. 在「Inspector」分頁中,勾選含有「DebugMenuButton」的文字欄位,勾選左上角旁邊的方塊,即可啟用這項功能。

DebugMenuButton 的「Inspector」分頁\n(含核取方塊)

  1. 儲存 Prefab

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

3. 啟用遠端設定子選單

  1. 在 Unity 編輯器中的「Project」分頁中,展開「Assets」>倉鼠 >優先處理 >選單並按兩下「DebugMenu」物件,在編輯器的「Hierarchy」分頁中開啟。

    「資產」下的巢狀「DebugMenu」項目、\nHamster、Prefab、選單
  2. 階層分頁中展開階層,然後按一下 DebugMenu > 下方的子物件Panel,標示為遠端設定動作

遠端設定動作巢狀結構位於 Canvas、DebugMenu 下方

  1. 在 Unity 的「Inspector」(檢查工具) 分頁中,勾選含有物件名稱的文字欄位左側的方塊,即可啟用「Remote Config Actions」(遠端設定動作)。

已啟用遠端設定的 Unity 編輯器\n 可在「DebugMenu」(偵錯選單) 和「 Panel」(面板) 下啟用動作

這會有兩個 GameObject 子項,名為「Set Bored Of Subtitle」和「Set Visits Subtitle」,兩者皆已設為呼叫 DebugMenu.cs 中未實作的現有方法。

4. 將子標題覆寫重設為應用程式內預設值

先前的程式碼研究室中,您將參數的預設值覆寫為 JSON,並使用條件提供不同變數。在本程式碼研究室中,您會刪除建立的條件,並重新導入應用程式內預設值,而且只會使用 A/B 測試的結果覆寫條件。

如何重新啟用應用程式內預設值:

  1. 開啟 Firebase 控制台的遠端設定頁面,按一下 subtitle_override 參數旁邊的鉛筆圖示,開啟「編輯參數」側邊面板。
  2. 按一下條件旁邊的「X」圖示即可刪除條件。
  3. 在剩餘的預設值旁邊,啟用「使用應用程式內預設值」切換鈕。

從遠端設定參數編輯器中刪除條件

  1. 按一下「儲存」儲存變更,然後點選「發布變更」發布變更。「遠端設定」頁面\n 發布變更選項

5. 在偵錯函式中設定使用者屬性

現在,您將為 DebugMenu.cs 中一些預先設定但尚未導入的 Google Analytics 功能編寫函式主體 (位於「素材資源」>「倉鼠」>「指令碼」>「狀態」中)。

這些函式可設定使用者屬性,用來描述使用者族群的區隔,並用來記錄使用者對遊戲子標題的看法。

如要實作 SetUserBoredOfSubtitleSetUserEnjoysSubtitle,請在 DebugMenu.cs 中找出 現有版本,並依照以下方式覆寫:

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

如果您的應用程式使用 Google Analytics 正確設定,您可以呼叫其中一項函式,讓遠端設定的條件使用該資源。如要從行動裝置呼叫 SetUserBoredOfSubtitle,請啟動遊戲,然後按下主選單中的「Debug 選單」按鈕,再按下「Set Bored of Subtitle」

6. 建立自訂維度

接下來,您將為 subtitle_override 設定各種副標題變化版本,找出成效最佳的子標題。不過,在 A/B 版本測試中,只有對目前子標題 (如 subtitle_sentiment 記錄的內容) 有「無聊」一詞的使用者,才會向他們放送這些變化版本。

您將使用自訂維度來建立 Analytics 事件的自訂參數。詳情請參閱「自訂維度和指標」一文。

如要建立新的自訂維度,請按照下列步驟操作:

  1. 開啟 Firebase 控制台,展開「Analytics」選單,然後選取「自訂定義」
  2. 在「自訂定義」頁面中,按一下「建立自訂維度」
  3. 在「新增自訂維度」視窗中,將維度名稱設為「字幕情緒」然後在「範圍」下拉式選單中選取「使用者」
  4. 在「使用者屬性」欄位中,選取 subtitle_sentiment.

7. 設定 A/B 測試實驗

接著,請建立 A/B 測試實驗,為 subtitle_override 設定不同的值來進行測試,以便最佳化 2 到 3 天的使用者留存率。

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

「遠端設定」頁面的 subtitle_override 參數,\n 顯示「編輯」選項。

  1. 在接著顯示的「編輯參數」對話方塊中,按一下「新增」

遠端設定編輯參數頁面中的\n 新增實驗選項。

  1. 從顯示的清單中選取「實驗」

遠端設定參數頁面:新增實驗\n 實驗

  1. 輸入實驗名稱和說明。

實驗名稱和說明\n 區段

  1. 接著,選擇指定條件首先,請從下拉式選單中選取您的應用程式,

A/B 測試設定的「指定目標」步驟\n 已選取應用程式

  1. 接著,按一下「And」新增條件,然後選取「使用者屬性」並選擇 subtitle_sentiment。如果沒有顯示,請手動輸入。
  2. 您只想要替目前字幕中帶有「無聊」的翻譯字幕選擇「包含」,然後輸入 bored
  3. 視需要選擇符合上述條件的目標對象百分比,以便參與測試。選取「100%」,避免您無法輕鬆控制隨機性。

已選取「subtitle_sentiment」的 A/B 測試指定目標部分\n

  1. 接著,選取測試用來爭取最高成效的目標。選擇「回訪率 (2 至 3 天)」

A/B 測試目標區段

  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%。變化版本權重設定\n 區段這些變化版本指出有 201 次無回應,而 A/B 測試會根據預設,對看重字幕的使用者放送 A/B 測試,並在 200/201 次後放送其中一個新畫面的值。
  5. 按一下「開始實驗」來儲存並提交,然後在彈出式確認視窗中按一下「開始」按一下「開始」啟動\n 實驗

8. 執行「Set User Property」方法並重新整理

現在,您已設定關於使用者的各種屬性,可用來引導遊戲的邏輯或呈現方式。

如果您先前未執行 SetUserProperty 方法或將其設為 enjoys,開啟遊戲時仍應看到預設的子標題。

如果設為 bored (重新擷取前),您應該會看到一個新值的比例約為 50/50。

裝置進入 A/B 測試實驗後,來自實驗的值不會改變,而且每次安裝都會持續。因此,如要接收其他實驗性值,您必須建立新的安裝作業,方法是將遊戲重新安裝至相同裝置/模擬器,或是將遊戲安裝到新裝置/模擬器。

如果是針對所有使用者群推出真正的 A/B 版本測試,基準值應與其他變化版本相近。不過在這種情況下,您可以指定非常有誤差的機率,以驗證實驗是否正常運作。如果 (在 1/201 案例中) 您仍收到預設值,請嘗試在裝置/模擬器中重新安裝遊戲。

此做法的另一個影響是,將使用者屬性切換回 enjoys 並「不會」將值改回基準,但又只要切換至 enjoys 並重新安裝,即可達到此效果。

9. 恭喜!

您已使用遠端設定 A/B 測試功能測試不同的遠端設定值,並判斷各值對 Analytics 指標有何影響。

涵蓋內容

  • 如何使用檢測設備遠端設定值來設定 A/B 測試
  • 如何將 Google Analytics 使用者屬性納入 A/B 測試實驗條件

後續步驟

實驗結束後,您可以從專案的實驗清單中選取一項實驗,決定實驗的用途。你想選一個「得獎者」嗎?或進行更多實驗?