1. 簡介
在本程式碼研究室中,您將瞭解如何使用 A/B 測試,為範例遊戲「MechaHamster:Level Up with Firebase edition」建立遠端設定實驗。您已在「使用 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 預先建構的物件存取按鈕。
- 在 Unity 編輯器中選取「Project」分頁標籤,然後在「Assets」下方,依序展開「Hamster」 >「Prefabs」 >「Menus」,並點選「MainMenu」。
- 在預先建構的階層中,找到名為「DebugMenuButton」的已停用子物件,然後點選該物件,在「檢查器」分頁中開啟。
- 在「檢查器」分頁中,勾選左上角文字欄位旁邊的方塊,啟用「DebugMenuButton」。
- 儲存預製物件。
在編輯器或裝置上執行遊戲時,應該就能存取選單。
3. 啟用「遠端設定」子選單
- 在 Unity 編輯器的「Project」分頁中,依序展開「Assets」 >「Hamster」 >「Prefabs」 >「Menus」,然後按兩下「DebugMenu」物件,在編輯器的「Hierarchy」分頁中開啟。
- 在「Hierarchy」分頁中,展開階層並點選「DebugMenu」>「Panel」下方的子物件,該物件標示為「Remote Config Actions」。
- 在 Unity 的「Inspector」分頁中,勾選含有物件名稱的文字欄位左側方塊,啟用「Remote Config Actions」。
這有兩個名為「Set Bored Of Subtitle」和「Set Enjoys Subtitle」的 GameObject 子項,兩者都設定為呼叫 DebugMenu.cs
中現有但未實作的方法。
4. 將字幕覆寫設定重設為應用程式內預設值
在先前的程式碼研究室中,您以 JSON 格式覆寫了參數的預設值,並使用條件提供不同變體。在本程式碼研究室中,您將刪除建立的條件,重新導入應用程式內預設值,並只使用 A/B 測試結果覆寫該值。
如要重新啟用應用程式內預設值,請按照下列步驟操作:
- 開啟 Firebase 控制台中的「遠端設定」頁面,然後按一下
subtitle_override
參數旁邊的鉛筆圖示,開啟「編輯參數」側邊面板。 - 按一下條件旁的「X」圖示即可刪除條件。
- 針對其餘預設值,啟用「使用應用程式內預設值」切換鈕。
- 按一下「儲存」儲存變更,然後按一下「發布變更」發布變更。
5. 在偵錯函式中設定使用者屬性
現在,您要為 DebugMenu.cs
中一些預先設定但未實作的 Google Analytics 函式編寫函式主體 (位於「Assets」>「Hamster」>「Scripts」>「States」)。
這些函式會設定使用者屬性,用來描述使用者區隔,並記錄使用者對遊戲副標題的感受。
在 DebugMenu.cs
中找出 SetUserBoredOfSubtitle
和 SetUserEnjoysSubtitle
的現有版本,然後按照下列方式覆寫這些版本,即可實作 SetUserBoredOfSubtitle
和 SetUserEnjoysSubtitle
:
void SetUserBoredOfSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}
如果應用程式已正確設定 Google Analytics,您可以呼叫其中一個函式,讓遠端設定的條件使用該屬性。如要從行動裝置呼叫 SetUserBoredOfSubtitle
,請啟動遊戲並在主選單中按下「Debug Menu」按鈕,然後按下「Set Bored of Subtitle」。
6. 建立自訂維度
接著,為 subtitle_override
設定各種字幕變體,看看哪種字幕效果最好。但在 A/B 測試中,您只會向對目前副標題感到「無聊」(記錄在 subtitle_sentiment
中) 的使用者放送這些變化版本。
您將使用自訂維度,在 Analytics 事件中建立及追蹤自訂參數。詳情請參閱「自訂維度和指標」一文。
如要建立新的自訂維度,請按照下列步驟操作:
- 開啟 Firebase 控制台,展開「Analytics」(數據分析) 選單,然後選取「Custom definitions」(自訂定義)。
- 在「自訂定義」頁面中,按一下「建立自訂維度」。
- 在「新增自訂維度」視窗中,將維度名稱設為「Subtitle Sentiment」,然後從「範圍」下拉式選單中選取「使用者」。
- 在「使用者屬性」欄位中,選取
subtitle_sentiment.
7. 設定 A/B 測試實驗
接著,建立 A/B 測試實驗,為 subtitle_override
設定不同值,相互測試以盡量提高 2 到 3 天的使用者留存率。
- 首先,在 Firebase 控制台的遠端設定頁面,選取
subtitle_override
參數的「編輯」:
- 在隨即顯示的「編輯參數」對話方塊中,按一下「新增」。
- 在隨即顯示的清單中,選取「實驗」。
- 輸入實驗名稱和說明。
- 接著選擇指定條件。首先,請從下拉式選單中選取應用程式。
- 接著按一下「And」新增條件,然後選取「User Property」並選擇
subtitle_sentiment
。如果沒有顯示,請手動輸入。 - 由於您只想為目前字幕情緒包含「無聊」的使用者設定字幕,請選擇「包含」並輸入
bored
。 - 您可以選擇向符合上述條件的目標對象顯示測試的百分比。選取「100%」,避免隨機性,方便控管。
- 接著,選取測試要盡量提升的目標。選取「保留 (2-3 天)」。
- 接著設定實驗參數,並建立不同的字幕變化版本。這些變體是 A/B 測試會向含有「bored」
subtitle_sentiment
的使用者提供的不同值,而 A/B 測試會判斷哪個變體最能提高留存率。 - 請為變體 A 輸入下列參數值:
{"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
- 請為 B 變數輸入下列參數值:
{"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
- 請使用整數設定變體比例,如下所示:
- 基準:1
- 版本 A:100
- 版本 B:100
這些變化版本會指定,每 201 次中,A/B 測試會向對字幕感到無聊的使用者提供預設值,但 200/201 次會提供兩個新值之一,並覆寫片頭畫面。
- 按一下「開始實驗」儲存並提交,然後在確認彈出式視窗中按一下「開始」。
8. 執行「設定使用者屬性」方法並重新整理
您現在已設定各種使用者屬性,可用於引導遊戲的邏輯或呈現方式。
如果您先前未執行 SetUserProperty
方法或已將其設為 enjoys
,開啟遊戲時仍應會看到預設字幕。
如果已設為 bored
(重新擷取前),您應該會看到其中一個新值,比例約為 50/50。
裝置一旦加入 A/B 測試實驗,從該實驗收到的值就不會變更,且每次安裝都會保留。因此,如要接收其他實驗值,您必須重新安裝遊戲到同一部裝置/模擬器,或是安裝遊戲到新的裝置/模擬器,藉此建立新的安裝。
在針對使用者群組進行的實際 A/B 測試中,您應為基準線和其他變體設定類似的權重。但在這個情況下,您會指派非常傾斜的機率,以驗證實驗是否正常運作。如果 (在 1/201 案例中) 仍收到預設值,請嘗試將遊戲重新安裝到裝置/模擬器。
此外,將使用者屬性切換回 enjoys
「不會」將值切換回基準,但您可以切換至 enjoys
並重新安裝,藉此達成目的。
9. 恭喜!
您已使用遠端設定 A/B 測試,實驗不同的遠端設定值,並判斷各值對 Analytics 指標的影響。
涵蓋內容
- 如何使用已插碼的遠端設定值設定 A/B 測試
- 如何將 Google Analytics 使用者屬性做為 A/B 測試實驗的納入條件
後續步驟
實驗結束後,您可以從專案中的實驗清單選取實驗,決定如何處理。您要選擇其中一個做為「勝出」組合,還是要進行更多實驗?