Создание и запуск первого экспериментаCreate and run your first experiment

В этом пошаговом руководстве описаны следующие операции.In this walkthrough, you will:

  • Создайте проект экспериментирования в центре партнеров, который определяет несколько удаленных переменных, представляющих текст и цвет кнопки приложения.Create an experimentation project in Partner Center that defines several remote variables that represent the text and color of an app button.
  • Создание приложения с кодом, получающим значения удаленной переменной, с помощью этих данных для изменения цвета фона кнопки, а также для просмотра данных событий представления и преобразования в центр партнеров.Create an app with code that retrieves the remote variable values, uses this data to change the background color of a button, and logs view and conversion event data back to Partner Center.
  • Создадите эксперимент в проекте, чтобы выяснить, увеличится ли количество нажатий кнопки приложения после изменения ее фонового цвета.Create an experiment in the project to test whether changing the background color of the app button successfully increases the number of button clicks.
  • Запустите приложение для сбора данных эксперимента.Run the app to gather experiment data.
  • Ознакомьтесь с результатами эксперимента в центре партнеров, выберите вариант, который будет включен для всех пользователей приложения, и завершите эксперимент.Review the experiment results in Partner Center, choose a variation to enable for all users of the app, and complete the experiment.

Общие сведения о тестировании A/B в центре партнеров см. в статье выполнение экспериментов приложений с помощью тестирования a/b.For an overview of A/B testing with Partner Center, see Run app experiments with A/B testing.

Предварительные требованияPrerequisites

Для выполнения этого пошагового руководства необходимо иметь учетную запись центра партнеров, и необходимо настроить компьютер разработки, как описано в статье Запуск экспериментов с приложением a/B.To follow this walkthrough, you must have a Partner Center account and you must configure your development computer as described in Run app experiments with A/B testing.

Создание проекта с удаленными переменными в центре партнеровCreate a project with remote variables in Partner Center

  1. Войдите в Центр партнеров.Sign in to Partner Center.
  2. Если у вас уже есть приложение в центре партнеров, которое вы хотите использовать для создания эксперимента, выберите это приложение в центре партнеров.If you already have an app in Partner Center that you want to use to create an experiment, select that app in Partner Center. Если у вас еще нет приложения в центре партнеров, Создайте новое приложение, сохранив имя , а затем выберите это приложение в центре партнеров.If you do not yet have an app in Partner Center, create a new app by reserving a name and then select that app in Partner Center.
  3. В области навигации нажмите Службы , а затем Эксперименты .In the navigation pane, click Services and then click Experimentation .
  4. В разделе Проекты на следующей странице нажмите кнопку Создать проект .In the Projects section of the next page, click the New project button.
  5. На странице Новый проект введите имя Button Click Experiments (эксперименты нажатия кнопки) для проекта.In the New project page, enter the name Button Click Experiments for your new project.
  6. Разверните раздел Удаленные переменные и нажмите кнопку Добавить переменную четыре раза.Expand the Remote variables section and click Add variable four times. Теперь у вас должно быть четыре строки пустых переменных.You should now have four empty variable rows.
  • В первой строке введите buttonText (текст кнопки) в качестве имени переменной, а затем введите Grey Button (серая кнопка) в столбце Значение по умолчанию .In the first row, type buttonText for the variable name and type Grey Button in the Default value column.
  • Во второй строке введите r в качестве имени переменной, а затем введите 128 в столбце Значение по умолчанию .In the second row, type r for the variable name and type 128 in the Default value column.
  • Во третье строке введите g в качестве имени переменной, а затем введите 128 в столбце Значение по умолчанию .In the third row, type g for the variable name and type 128 in the Default value column.
  • В четвертой строке введите b в качестве имени переменной, а затем введите 128 в столбце Значение по умолчанию .In the fourth row, type b for the variable name and type 128 in the Default value column.
  1. Нажмите кнопку Сохранить и запомните идентификатор проекта, который отобразится в разделе Интеграция SDK .Click Save and make note of the project ID value that appears in the SDK integration section. В следующем разделе описано, как обновить код приложения и установить ссылку на это значение в вашем коде.In the next section, you will update your app code and reference this value in your code.

Написание кода для эксперимента в приложенииCode the experiment in your app

  1. В Visual Studio создайте новый проект универсальной платформы Windows с помощью Visual C#.In Visual Studio, create a new Universal Windows Platform project using Visual C#. Назовите проект SampleExperiment .Name the project SampleExperiment .

  2. В обозревателе решений разверните узел проекта, щелкните правой кнопкой мыши Ссылки , а затем — Добавить ссылку .In Solution Explorer, expand your project node, right-click References , and click Add Reference .

  3. В диалоговом окне Диспетчер ссылок разверните список Универсальная платформа Windows и выберите Расширения .In Reference Manager , expand Universal Windows and click Extensions .

  4. В списке пакетов SDK установите флажок рядом с пунктом Microsoft Engagement Framework и нажмите кнопку ОК .In the list of SDKs, select the check box next to Microsoft Engagement Framework and click OK .

  5. В Обозревателе решений дважды щелкните файл MainPage.xaml, чтобы открыть конструктор для главной страницы приложения.In Solution Explorer , double-click MainPage.xaml to open the designer for the main page in the app.

  6. Перетащите кнопку из панели элементов на страницу.Drag a Button from Toolbox to the page.

  7. Дважды щелкните кнопку в конструкторе, чтобы открыть файл с кодом и добавить обработчик для события Click .Double-click the button on the designer to open the code file and add an event handler for the Click event.

  8. Замените все содержимое файла с кодом следующим кодом.Replace the entire contents of the code file with the following code. Присвойте projectId переменной значение идентификатора проекта , полученное из центра партнеров в предыдущем разделе.Assign the projectId variable to the project ID value that you obtained from Partner Center in the previous section.

    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. Сохраните файл с кодом и создайте проект.Save the code file and build the project.

Создание эксперимента в центре партнеровCreate the experiment in Partner Center

  1. Вернитесь на кнопку Страница проекта экспериментов в центре партнеров.Return to the Button Click Experiments project page in Partner Center.
  2. В разделе Эксперименты нажмите кнопку Создать эксперимент .In the Experiments section, click the New experiment button.
  3. В разделе Сведения об эксперименте введите имя Optimize Button Clicks (оптимизация нажатий кнопки) в поле Имя эксперимента .In the Experiment details section, type the name Optimize Button Clicks in the Experiment name field.
  4. В разделе Событие просмотра введите userViewedButton в поле Имя события просмотра .In the View event section, type userViewedButton in the View event name field. Обратите внимание, что это имя совпадает со строкой события просмотра, которую вы включили в код, добавленный в предыдущем разделе.Note that this name matches the view event string that you logged in the code you added in the previous section.
  5. В разделе Цели и события конверсии введите следующие значения:In the Goals and conversion events section, enter the following values:
  • В поле Имя цели введите Увеличить количество нажатий на кнопку .In the Goal name field, type Increase Button Clicks .
  • В поле Имя события конверсии введите имя userClickedButton .In the Conversion event name field, type the name userClickedButton . Обратите внимание, что это имя совпадает со строкой события конверсии, которую вы включили в код, добавленный в предыдущем разделе.Note that this name matches the conversion event string that you logged in the code you added in the previous section.
  • В поле Цель выберите Максимизировать .In the Objective field, choose Maximize .
  1. В разделе Удаленные переменные и варианты установите флажок Распределять равномерно , чтобы в вашем приложении варианты распределялись равномерно.In the Remote variables and variations section, confirm that the Distribute equally check box is selected so that the variations will be distributed equally to your app.
  2. Добавьте переменные в ваш эксперимент:Add variables to your experiment:
    1. Щелкните раскрывающийся элемент управления, выберите buttonText и нажмите Добавить переменную .Click the drop-down control, choose buttonText , and click Add variable . Строка Grey Button (серая кнопка) автоматически отобразится в столбце Вариант А (это значение извлекается из параметров проекта).The string Grey Button should automatically appear in the Variation A column (this value is derived from the project settings). В столбце Вариант Б введите Blue Button (синяя кнопка) .In the Variation B column, type Blue Button .
    2. Щелкните раскрывающийся элемент управления еще раз, выберите r и нажмите Добавить переменную .Click the drop-down control again, choose r , and click Add variable . Строка 128 автоматически отобразится в столбце Вариант А .The string 128 should automatically appear in the Variation A column. В столбце Вариант Б введите 1 .In the Variation B column, type 1 .
    3. Щелкните раскрывающийся элемент управления еще раз, выберите g и нажмите Добавить переменную .Click the drop-down control again, choose g , and click Add variable . Строка 128 автоматически отобразится в столбце Вариант А .The string 128 should automatically appear in the Variation A column. В столбце Вариант Б введите 1 .In the Variation B column, type 1 .
    4. Щелкните раскрывающийся элемент управления еще раз, выберите b и нажмите Добавить переменную .Click the drop-down control again, choose b , and click Add variable . Строка 128 автоматически отобразится в столбце Вариант А .The string 128 should automatically appear in the Variation A column. В столбце Вариант Б введите 255 .In the Variation B column, type 255 .
  3. Нажмите Сохранить , а затем Активировать .Click Save and then click Activate .

Важно!

После активации эксперимента изменить его параметры будет невозможно, если только это не редактируемый эксперимент (при создании эксперимента вы установили флажок Редактируемый эксперимент ).After you activate an experiment, you can no longer modify the experiment parameters unless it you clicked the Editable experiment check box when you created the experiment. Обычно рекомендуется создать код эксперимента в приложении, прежде чем активировать эксперимент.Typically, we recommend that you code the experiment in your app before activating your experiment.

Запуск приложения для сбора данных экспериментаRun the app to gather experiment data

  1. Запустите приложение SampleExperiment , которое вы создали ранее.Run the SampleExperiment app you created earlier.
  2. Убедитесь, что видите серую или синюю кнопку.Confirm that you see either a grey or blue button. Нажмите кнопку и закройте приложение.Click the button and then close the app.
  3. Повторите указанные выше действия несколько раз на одном и том же компьютере, чтобы убедиться, что в вашем приложении отображается кнопка одного и того же цвета.Repeat the above steps several times on the same computer to confirm that your app shows the same button color.

Проверка результатов и завершение экспериментаReview the results and complete the experiment

Подождите хотя бы несколько часов после завершения предыдущего раздела, а затем выполните следующие действия, чтобы проверить результаты эксперимента и завершить его.Wait at least several hours after completing the previous section, and then follow these steps to review the results of your experiment and complete the experiment.

Примечание

Как только вы активируете эксперимент, центр партнеров немедленно начинает сбор данных из любых приложений, которые инструментированы для записи данных в эксперимент.As soon as you activate an experiment, Partner Center immediately starts collecting data from any apps that are instrumented to log data for your experiment. Однако для отображения данных экспериментов в центре партнеров может потребоваться несколько часов.However, it can take several hours for experiment data to appear in Partner Center.

  1. В центре партнеров вернитесь на страницу экспериментов для своего приложения.In Partner Center, return to the Experimentation page for your app.

  2. В разделе Активные эксперименты нажмите Optimize Button Clicks (оптимизация нажатий кнопки) , чтобы перейти на страницу этого эксперимента.In the Active experiments section, click Optimize Button Clicks to go to the page for this experiment.

  3. Убедитесь, что результаты в разделах Сводка по результатам и Подробные сведения о результатах соответствуют вашим ожиданиям.Confirm that the results shown in the Results summary and Results details sections matches what you expect to see. Дополнительные сведения об этих разделах см. в статье управление вашим экспериментом в центре партнеров.For more details about these sections, see Manage your experiment in Partner Center.

    Примечание

    Центр партнеров сообщает только о первом событии преобразования для каждого пользователя в течение 24-часового периода времени.Partner Center reports only the first conversion event for each user in a 24-hour time period. Если благодаря действиям пользователя срабатывает несколько событий конверсии в вашем приложении в течение 24 часов, регистрируется только первое событие.If a user triggers multiple conversion events in your app within a 24-hour period, only the first conversion event is reported. Это позволяет предотвратить искажение результатов эксперимента для выборки пользователей из-за пользователя со множеством событий конверсии.This is intended to help prevent a single user with many conversion events from skewing the experiment results for a sample group of users.

  4. Теперь вы можете завершить эксперимент.Now you are ready to end the experiment. В разделе Сводка по результатам в столбце Variation B нажмите Переключить .In the Results summary section, in the Variation B column, click Switch . Так вы переключите всех пользователей своего приложения на синюю кнопку.This switches all users of your app to the blue button.

  5. Нажмите кнопку ОК , чтобы подтвердить завершение эксперимента.Click OK to confirm that you want to end the experiment.

  6. Запустите приложение SampleExperiment , созданное в предыдущем разделе.Run the SampleExperiment app you created in the previous section.

  7. Убедитесь, что видите синюю кнопку.Confirm that you see a blue button. Обратите внимание, что может пройти до двух минут, прежде чем ваше приложение получит обновленное назначение варианта.Note that it may take up to two minutes for your app to receive an updated variation assignment.