1. 簡介
在本程式碼研究室中,您將瞭解如何針對範例遊戲「MechaHamster:使用 Firebase 版本升級」,建立遠端設定實驗 (在「使用 Firebase 遠端設定檢測遊戲」中修改)。
利用遠端設定進行 A/B 版本測試,你可以針對特定目標對象,測試調整應用程式使用者介面、功能或參與度廣告活動的變更,再向更多目標對象推出廣告活動。此外,實驗結果也可以:
- 判斷哪個參數值變化版本可改善收益和留存率等主要指標。
- 找出使用者偏好哪些子群組。
- 收集並儲存實驗資料,即可進一步分析設定不同參數值的效果。
A/B 測試的基本原理:您可以運用這項功能進行遠端設定檢測的程式碼編寫作業,然後開始實驗根據遠端設定條件 (包括 Google Analytics 使用者屬性)、推出百分比、Analytics 轉換事件和上述這些條件的組合,控制客戶獲得的價值。
首先,你必須導入條件,根據使用者動作設定使用者屬性,限制要納入實驗的對象。接著請建立 A/B 測試實驗,根據 Google Analytics 使用者屬性,決定要將哪些客戶納入實驗。最後,你會運用這些資料進一步瞭解目標對象
課程內容
- 如何使用檢測設備遠端設定值來設定 A/B 測試
- 如何使用 Google Analytics 使用者屬性做為 A/B 版本測試的許可條件
事前準備
- 已完成使用 Firebase 遠端設定來檢測遊戲的步驟
事前準備
- 支援 iOS 和/或 Android 版本的 Unity 2019.1.0f1 以上版本
2. 啟用偵錯選單
專案中有個隱藏了偵錯選單,且遊戲中已有這個選單的按鈕,但該按鈕尚未啟用。你必須從 MainMenu Prefab 啟用該按鈕,才能使用該按鈕。
- 在 Unity 編輯器中,選取「Project」分頁標籤,然後在「Assets」下方展開「Hamster」>優先處理 >Menu,並按一下「MainMenu」。
- 在 Prefab 階層中,找出名稱為 DebugMenuButton 的已停用子物件,然後按一下,以在「Inspector」分頁中開啟。
- 在「Inspector」分頁中,勾選含有「DebugMenuButton」的文字欄位,勾選左上角旁邊的方塊,即可啟用這項功能。
- 儲存 Prefab
如果使用編輯器或裝置上執行遊戲,現在應該可以存取選單。
3. 啟用遠端設定子選單
- 在 Unity 編輯器中的「Project」分頁中,展開「Assets」>倉鼠 >優先處理 >選單並按兩下「DebugMenu」物件,在編輯器的「Hierarchy」分頁中開啟。
- 在階層分頁中展開階層,然後按一下 DebugMenu > 下方的子物件Panel,標示為遠端設定動作。
- 在 Unity 的「Inspector」(檢查工具) 分頁中,勾選含有物件名稱的文字欄位左側的方塊,即可啟用「Remote Config Actions」(遠端設定動作)。
這會有兩個 GameObject 子項,名為「Set Bored Of Subtitle」和「Set Visits Subtitle」,兩者皆已設為呼叫 DebugMenu.cs
中未實作的現有方法。
4. 將子標題覆寫重設為應用程式內預設值
在先前的程式碼研究室中,您將參數的預設值覆寫為 JSON,並使用條件提供不同變數。在本程式碼研究室中,您會刪除建立的條件,並重新導入應用程式內預設值,而且只會使用 A/B 測試的結果覆寫條件。
如何重新啟用應用程式內預設值:
- 開啟 Firebase 控制台的遠端設定頁面,按一下
subtitle_override
參數旁邊的鉛筆圖示,開啟「編輯參數」側邊面板。 - 按一下條件旁邊的「X」圖示即可刪除條件。
- 在剩餘的預設值旁邊,啟用「使用應用程式內預設值」切換鈕。
- 按一下「儲存」儲存變更,然後點選「發布變更」發布變更。
5. 在偵錯函式中設定使用者屬性
現在,您將為 DebugMenu.cs
中一些預先設定但尚未導入的 Google Analytics 功能編寫函式主體 (位於「素材資源」>「倉鼠」>「指令碼」>「狀態」中)。
這些函式可設定使用者屬性,用來描述使用者族群的區隔,並用來記錄使用者對遊戲子標題的看法。
如要實作 SetUserBoredOfSubtitle
和 SetUserEnjoysSubtitle
,請在 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 事件的自訂參數。詳情請參閱「自訂維度和指標」一文。
如要建立新的自訂維度,請按照下列步驟操作:
- 開啟 Firebase 控制台,展開「Analytics」選單,然後選取「自訂定義」。
- 在「自訂定義」頁面中,按一下「建立自訂維度」。
- 在「新增自訂維度」視窗中,將維度名稱設為「字幕情緒」然後在「範圍」下拉式選單中選取「使用者」。
- 在「使用者屬性」欄位中,選取
subtitle_sentiment.
。
7. 設定 A/B 測試實驗
接著,請建立 A/B 測試實驗,為 subtitle_override
設定不同的值來進行測試,以便最佳化 2 到 3 天的使用者留存率。
- 在接著顯示的「編輯參數」對話方塊中,按一下「新增」。
- 從顯示的清單中選取「實驗」。
- 輸入實驗名稱和說明。
- 接著,選擇指定條件首先,請從下拉式選單中選取您的應用程式,
- 接著,按一下「And」新增條件,然後選取「使用者屬性」並選擇
subtitle_sentiment
。如果沒有顯示,請手動輸入。 - 您只想要替目前字幕中帶有「無聊」的翻譯字幕選擇「包含」,然後輸入
bored
。 - 視需要選擇符合上述條件的目標對象百分比,以便參與測試。選取「100%」,避免您無法輕鬆控制隨機性。
- 接著,選取測試用來爭取最高成效的目標。選擇「回訪率 (2 至 3 天)」。
- 接下來,請設定實驗參數,並建立不同的字幕變化版本。這些變數是不同的值,A/B 測試功能會對
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
- 按一下「開始實驗」來儲存並提交,然後在彈出式確認視窗中按一下「開始」。
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 測試實驗條件
後續步驟
實驗結束後,您可以從專案的實驗清單中選取一項實驗,決定實驗的用途。你想選一個「得獎者」嗎?或進行更多實驗?