创建并运行你的第一个实验

在本指南中,您将:

  • 在合作伙伴中心创建一个试验 项目,该项目定义表示应用按钮的文本和颜色的多个远程变量。
  • 创建一个包含检索远程变量值的代码的应用,使用此数据更改按钮的背景色,并将视图和转换事件数据记录回合作伙伴中心。
  • 在项目中创建一个试验,以测试更改应用按钮的背景色是否成功增加按钮单击次数。
  • 运行应用以收集试验数据。
  • 在合作伙伴中心查看试验结果,选择一个变体,以便为应用的所有用户启用,然后完成试验。

有关在合作伙伴中心进行 A/B 测试的概述,请参阅 A/B 测试与应用实验

先决条件

若要遵循本演练,必须具有合作伙伴中心帐户,并且必须按照 使用 A/B 测试运行应用试验中所述配置开发计算机。

在合作伙伴中心创建具有远程变量的项目

  1. 登录到合作伙伴中心
  2. 如果合作伙伴中心已有一个用于创建试验的应用,请在合作伙伴中心中选择该应用。 如果还没有合作伙伴中心中的应用,通过保留名称 创建新应用,然后在合作伙伴中心中选择该应用。
  3. 在导航窗格中,单击 服务,然后单击 试验
  4. 在下一页的“项目”部分中,单击“新建项目”按钮。
  5. 新建项目 页中,输入新项目的名称 按钮单击试验
  6. 展开 远程变量 部分,然后单击 添加变量 四次。 现在应该有四个空变量行。
  • 在第一行中,键入变量名称的 buttonText,并在 默认值 列中键入 灰色按钮
  • 在第二行中,键入 变量名称 r,并在 默认值 列中输入 128
  • 在第三行中,键入变量名称 g,然后在 默认值 列中键入 128
  • 在第四行中,在 b 变量名称列中,键入变量名,并在 默认值 列中键入 128
  1. 单击 保存 并记下 SDK 集成 部分中显示的 项目 ID 值。 在下一部分中,你将更新应用代码并在代码中引用此值。

在应用中编写试验代码

  1. 在 Visual Studio 中,使用 Visual C# 创建新的通用 Windows 平台项目。 将项目命名 SampleExperiment

  2. 在解决方案资源管理器里,展开项目节点,右键单击 引用,再单击 添加引用

  3. 引用管理器中,展开 通用 Windows 并单击 扩展

  4. 在 SDK 列表中,选中 Microsoft Engagement Framework 旁边的复选框,然后单击 确定。

  5. 解决方案资源管理器中,双击 MainPage.xaml 以打开应用中主页的设计器。

  6. 按钮工具箱 拖到页面。

  7. 双击设计器上的按钮以打开代码文件,并为 Click 事件添加事件处理程序。

  8. 将代码文件的整个内容替换为以下代码。 将 projectId 变量分配给在上一部分中从合作伙伴中心获取的 项目 ID 值。

    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");
            }
        }
    }
    
  9. 保存代码文件并生成项目。

在合作伙伴中心创建试验

  1. 返回到合作伙伴中心中的“按钮单击试验” 项目页。
  2. 在“试验”部分中,单击 新建试验 按钮。
  3. 试验详细信息 部分中,在 试验名称 字段中键入 “优化按钮单击”名称 的名称。
  4. 在“视图事件”部分中,键入 userViewedButton视图事件名称 字段。 请注意,此名称与在上一节中添加的代码中记录的视图事件字符串匹配。
  5. 目标和转换事件 部分中,输入以下值:
  • 目标名称 字段中,键入 “增加按钮单击”
  • 转换事件名称 字段中,输入名称 userClickedButton。 请注意,此名称与在上一节中添加的代码中记录的转换事件字符串匹配。
  • 目标 字段中,选择 最大化
  1. 在“远程变量和变体” 部分中,确认已选中“平均分配”复选框,以便将变体平均分配到您的应用程序中。
  2. 将变量添加到实验中:
    1. 请单击下拉菜单,选择 buttonText,然后单击 添加变量。 字符串 灰色按钮 应自动显示在 变体 A 列中(此值派生自项目设置)。 在 变体 B 列中,键入“蓝色按钮”
    2. 再次单击下拉列表控件,选择 r,然后单击 添加变量。 字符串 128 应自动显示在 变体 A 列中。 在 变体 B 列中,键入 1 1
    3. 再次单击下拉列表控件,选择 g,然后单击 添加变量。 字符串 128 应自动显示在 变体 A 列中。 在 变体 B 列中,键入 1 1
    4. 再次单击下拉列表控件,选择 b,然后单击 添加变量。 字符串 128 应自动显示在 变体 A 列中。 在 变体 B 列中,键入 255
  3. 单击 保存,然后单击 激活

重要

激活试验后,除非在创建试验时单击“可编辑试验”复选框,否则无法再修改试验参数。 通常,建议在激活试验之前在应用中编写试验代码。

运行应用以收集试验数据

  1. 运行前面创建的 SampleExperiment 应用。
  2. 确认看到灰色或蓝色按钮。 单击该按钮,然后关闭应用。
  3. 在同一台计算机上多次重复上述步骤,确认应用显示相同的按钮颜色。

查看结果并完成试验

完成上一部分后,请至少等待几个小时,然后按照以下步骤查看实验结果并完成实验。

注释

激活试验后,合作伙伴中心会立即开始从任何已检测的应用收集数据,以记录试验的数据。 但是,试验数据可能需要几个小时才能显示在合作伙伴中心。

  1. 在合作伙伴中心,返回到你的应用的 实验 页面。

  2. 活动试验 部分中,单击 “优化按钮点击” 以打开此试验的页面。

  3. 确认 结果摘要中显示的结果结果详细信息 部分与预期看到的结果匹配。 有关这些部分的更多详细信息,请参阅 在合作伙伴中心管理您的实验

    注释

    合作伙伴中心仅报告 24 小时内每个用户的第一个转换事件。 如果用户在 24 小时内在应用中触发多个转换事件,则仅报告第一个转换事件。 这有助于防止具有许多转换事件的单个用户扭曲示例用户组的试验结果。

  4. 现在,你已准备好结束试验。 在 结果摘要 部分中,在 变体 B 列中,单击 切换。 这会将您的应用程序的所有用户切换到蓝色按钮。

  5. 单击“确定” 以确认要结束试验。

  6. 运行在上一部分中创建的 SampleExperiment 应用。

  7. 确认看到蓝色按钮。 请注意,应用可能需要长达两分钟才能收到更新的变体分配。