建立和執行您的第一個實驗
在本逐步解說中,您將能夠:
- 在合作夥伴中心建立實驗專案,定義數個代表應用程式按鈕文字和色彩的遠端變數。
- 使用程式碼建立應用程式,以擷取遠端變數值、使用此資料來變更按鈕的背景色彩,並將檢視和轉換事件資料記錄回合作夥伴中心。
- 在專案中建立實驗,以測試變更應用程式按鈕的背景色彩是否成功增加按鈕點擊次數。
- 執行應用程式以收集實驗資料。
- 在合作夥伴中心檢閱實驗結果,選擇要為應用程式所有使用者啟用的變化,並完成實驗。
如需使用合作夥伴中心進行 A/B 測試的概觀,請參閱使用 A/B 測試執行應用程式實驗。
必要條件
若要遵循本逐步解說,您必須擁有合作夥伴中心帳戶,而且您必須依照使用 A/B 測試執行應用程式實驗中所述來設定開發電腦。
在合作夥伴中心使用遠端變數建立專案
- 登入合作夥伴中心。
- 如果您在合作夥伴中心已經有想要用來建立實驗的應用程式,請在合作夥伴中心選取該應用程式。 如果您在合作夥伴中心還沒有應用程式,請透過保留名稱來建立新的應用程式,然後在合作夥伴中心選取該應用程式。
- 在瀏覽窗格中,按一下 [服務],然後按一下 [實驗]。
- 在下一頁的 [專案] 區段中,按一下 [新增專案] 按鈕。
- 在 [新增專案] 頁面中,為新專案輸入名稱「按鈕點選實驗」。
- 展開 [遠端變數] 區段,然後按 [新增變數] 四次。 您現在應該有四個空的變數資料列。
- 在第一個資料列中,輸入 buttonText 作為變數名稱,然後在 [預設值] 資料行中輸入「灰色按鈕」。
- 在第二個資料列中,輸入 r 作為變數名稱,然後在 [預設值] 資料行中輸入 128。
- 在第三個資料列中,輸入 g 作為變數名稱,然後在 [預設值] 資料行中輸入 128。
- 在第四個資料列中,輸入 b 作為變數名稱,然後在 [預設值] 資料行中輸入 128。
- 按一下 [儲存],記下 [SDK 整合] 區段中出現的專案識別碼值。 在下一節中,您將更新應用程式的程式碼,並在程式碼中參考此值。
在您的應用程式中編寫實驗程式碼
在 Visual Studio 中,使用 Visual C# 建立新的通用 Windows 平台專案。 將專案命名為 SampleExperiment。
在 [方案總管] 中,展開專案節點,以滑鼠右鍵按一下 [參考],然後選取 [新增參考]。
在 [參考管理員] 中,展開 [通用 Windows],然後按一下 [延伸模組]。
在 SDK 清單中,選取 [Microsoft Engagement Framework] 旁的核取方塊,然後按一下 [確定]。
在 [方案總管] 中,按兩下 MainPage.xaml 在應用程式中開啟主要頁面的設計工具。
將 Button 從 Toolbox 拖曳到頁面上。
在設計工具上按兩下該按鈕以開啟程式碼檔案,並新增 Click 事件的事件處理常式。
以下列程式碼取代整個程式碼的內容。 將
projectId
變數指派給您在上一節中從合作夥伴中心取得的專案標識碼值。using System; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Media; using System.Threading.Tasks; using Windows.UI; using Windows.UI.Core; // Namespace for A/B testing. using Microsoft.Services.Store.Engagement; namespace SampleExperiment { public sealed partial class MainPage : Page { private StoreServicesExperimentVariation variation; private StoreServicesCustomEventLogger logger; // Assign this variable to the project ID for your experiment from Dev Center. private string projectId = ""; public MainPage() { this.InitializeComponent(); // Because this call is not awaited, execution of the current method // continues before the call is completed. #pragma warning disable CS4014 InitializeExperiment(); #pragma warning restore CS4014 } private async Task InitializeExperiment() { // Get the current cached variation assignment for the experiment. var result = await StoreServicesExperimentVariation.GetCachedVariationAsync(projectId); variation = result.ExperimentVariation; // Check whether the cached variation assignment needs to be refreshed. // If so, then refresh it. if (result.ErrorCode != StoreServicesEngagementErrorCode.None || result.ExperimentVariation.IsStale) { result = await StoreServicesExperimentVariation.GetRefreshedVariationAsync(projectId); // If the call succeeds, use the new result. Otherwise, use the cached value. if (result.ErrorCode == StoreServicesEngagementErrorCode.None) { variation = result.ExperimentVariation; } } // Get remote variables named "buttonText", "r", "g", and "b" from the variation // assignment. If no variation assignment is available, the variables default // to "Grey button" for the button text and grey RGB value for the button color. var buttonText = variation.GetString("buttonText", "Grey Button"); var r = (byte)variation.GetInt32("r", 128); var g = (byte)variation.GetInt32("g", 128); var b = (byte)variation.GetInt32("b", 128); // Assign button text and color. await button.Dispatcher.RunAsync( CoreDispatcherPriority.Normal, () => { button.Background = new SolidColorBrush(Color.FromArgb(255, r, g, b)); button.Content = buttonText; button.Visibility = Visibility.Visible; }); // Log the view event named "userViewedButton" to Dev Center. if (logger == null) { logger = StoreServicesCustomEventLogger.GetDefault(); } logger.LogForVariation(variation, "userViewedButton"); } private void button_Click(object sender, RoutedEventArgs e) { // Log the conversion event named "userClickedButton" to Dev Center. if (logger == null) { logger = StoreServicesCustomEventLogger.GetDefault(); } logger.LogForVariation(variation, "userClickedButton"); } } }
儲存程式碼檔案並建置專案。
在合作夥伴中心建立實驗
- 返回合作夥伴中心的 [按鈕點選實驗] 專案頁面。
- 在 [實驗] 區段中,按一下 [新增實驗] 按鈕。
- 在 [實驗詳細資料] 區段中,於 [實驗名稱] 欄位中輸入名稱「最佳化按鈕點選」。
- 在 [檢視事件] 區段中,於 [檢視事件名稱] 欄位中輸入 userViewedButton。 請注意,此名稱符合您在上一節新增的程式碼中記錄的檢視事件字串。
- 在 [目標和轉換事件] 區段中,輸入下列值:
- 在 [目標名稱] 欄位中,輸入「增加按鈕點選」。
- 在 [轉換事件名稱] 欄位中,輸入名稱 userClickedButton 。 請注意,此名稱符合您在上一節新增的程式碼中記錄的轉換事件字串。
- 在 [目標] 欄位中,選擇 [最大化]。
- 在 [遠端變數和變化] 區段中,確認已選取 [平均散發] 核取方塊,以便將變化平均散發到您的應用程式。
- 將變數新增至您的實驗:
- 按一下拉式控制項,選擇 [buttonText],然後按一下 [新增變數]。 字串「灰色按鈕」應該會自動出現在 [變化 A] 資料行中 (此值衍生自專案設定)。 在 [變化 B] 資料行中,輸入「藍色按鈕」。
- 再按一次下拉式控制項,選擇 [r],然後按一下 [新增變數]。 字串「128」應該會自動出現在 [變化 A] 資料行中。 在 [變化 B] 資料行中,輸入 1。
- 再按一次下拉式控制項,選擇 [g],然後按一下 [新增變數]。 字串「128」應該會自動出現在 [變化 A] 資料行中。 在 [變化 B] 資料行中,輸入 1。
- 再按一次下拉式控制項,選擇 [b],然後按一下 [新增變數]。 字串「128」應該會自動出現在 [變化 A] 資料行中。 在 [變化 B] 資料行中,輸入 255。
- 按一下 [儲存],然後按一下 [啟用]。
重要
啟用實驗之後,除非您在建立實驗時已點選 [可編輯實驗] 核取方塊,否則您就不能再修改實驗參數。 一般而言,建議您先在應用程式中編寫實驗的程式碼後,再啟用實驗。
執行應用程式以收集實驗資料
- 執行您稍早建立的 SampleExperiment 應用程式。
- 確認您看到灰色或藍色按鈕。 按一下該按鈕,然後關閉應用程式。
- 在同一部電腦上重複上述步驟數次,以確認您的應用程式顯示相同的按鈕色彩。
查看結果並完成實驗
完成上一節後至少等候數小時,然後遵循下列步驟來檢閱實驗的結果並完成實驗。
注意
一旦您啟用實驗,合作夥伴中心就會立即開始從任何已檢測的應用程式收集資料,以記錄實驗的資料。 不過,實驗資料可能需要數小時才會出現在合作夥伴中心。
在合作夥伴中心,返回您應用程式的 [實驗] 頁面。
在 [作用中實驗] 區段中,按一下 [最佳化按鈕點選] 以移至此實驗的頁面。
確認 [結果摘要] 和 [結果詳細資料] 區段中顯示的結果符合您預期看到的結果。 如需這些區段的詳細資訊,請參閱在合作夥伴中心管理您的實驗。
注意
合作夥伴中心只會報告每個使用者在 24 小時內的第一個轉換事件。 如果使用者在 24 小時內觸發應用程式中的多個轉換事件,則只會報告第一個轉換事件。 這是為了協助防止具有許多轉換事件的單一使用者扭曲範例使用者群組的實驗結果。
現在,您可以結束實驗了。 在 [結果摘要] 區段中的 [變化 B] 資料行中,按一下 [切換]。 這會將您應用程式的所有使用者切換為藍色按鈕。
按一下 [確定] 以確認您想要結束實驗。
執行您在上一節中建立的 SampleExperiment 應用程式。
確認您看到藍色按鈕。 請注意,您的應用程式可能需要長達兩分鐘的時間才能收到更新的變化指派。