Создание и запуск первого эксперимента

В этом пошаговом руководстве описаны следующие операции.

  • Создайте проект экспериментирования в Центре партнеров, который определяет несколько удаленных переменных, представляющих текст и цвет кнопки приложения.
  • Создайте приложение с кодом, который получает значения удаленных переменных, использует эти данные для изменения цвета фона кнопки, а также записывает данные о событиях просмотра и преобразования обратно в Центр партнеров.
  • Создадите эксперимент в проекте, чтобы выяснить, увеличится ли количество нажатий кнопки приложения после изменения ее фонового цвета.
  • Запустите приложение для сбора данных эксперимента.
  • Просмотрите результаты эксперимента в Центре партнеров, выберите вариант, который будет включен для всех пользователей приложения, и завершите эксперимент.

Общие сведения об A/B-тестировании с помощью Центра партнеров см. в статье Запуск экспериментов приложений с A/B-тестированием.

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

Чтобы выполнить инструкции из этого пошагового руководства, необходимо иметь учетную запись Центра партнеров и настроить компьютер разработки, как описано в разделе Запуск экспериментов приложений с A/B-тестированием.

Создание проекта с удаленными переменными в Центре партнеров

  1. Войдите в Центр партнеров.
  2. Если у вас уже есть приложение в Центре партнеров, которое вы хотите использовать для создания эксперимента, выберите это приложение в Центре партнеров. Если у вас еще нет приложения в Центре партнеров, создайте новое приложение, зарезервировав имя , а затем выберите это приложение в Центре партнеров.
  3. В области навигации нажмите Службы, а затем Эксперименты.
  4. В разделе Проекты на следующей странице нажмите кнопку Создать проект.
  5. На странице Новый проект введите имя Button Click Experiments (эксперименты нажатия кнопки) для проекта.
  6. Разверните раздел Удаленные переменные и нажмите кнопку Добавить переменную четыре раза. Теперь у вас должно быть четыре строки пустых переменных.
  • В первой строке введите buttonText (текст кнопки) в качестве имени переменной, а затем введите Grey Button (серая кнопка) в столбце Значение по умолчанию.
  • Во второй строке введите r в качестве имени переменной, а затем введите 128 в столбце Значение по умолчанию.
  • Во третье строке введите g в качестве имени переменной, а затем введите 128 в столбце Значение по умолчанию.
  • В четвертой строке введите b в качестве имени переменной, а затем введите 128 в столбце Значение по умолчанию.
  1. Нажмите кнопку Сохранить и запомните идентификатор проекта, который отобразится в разделе Интеграция SDK. В следующем разделе описано, как обновить код приложения и установить ссылку на это значение в вашем коде.

Написание кода для эксперимента в приложении

  1. В Visual Studio создайте новый проект универсальной платформы Windows с помощью Visual C#. Назовите проект SampleExperiment.

  2. В обозревателе решений разверните узел проекта, щелкните правой кнопкой мыши Ссылки, а затем — Добавить ссылку.

  3. В диалоговом окне Диспетчер ссылок разверните список Универсальная платформа Windows и выберите Расширения.

  4. В списке пакетов SDK установите флажок рядом с пунктом Microsoft Engagement Framework и нажмите кнопку ОК.

  5. В Обозревателе решений дважды щелкните файл MainPage.xaml, чтобы открыть конструктор для главной страницы приложения.

  6. Перетащите кнопку из панели элементов на страницу.

  7. Дважды щелкните кнопку в конструкторе, чтобы открыть файл с кодом и добавить обработчик для события Click.

  8. Замените все содержимое файла с кодом следующим кодом. Присвойте переменной 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");
            }
        }
    }
    
  9. Сохраните файл с кодом и создайте проект.

Создание эксперимента в Центре партнеров

  1. Вернитесь на страницу проекта "Эксперименты нажатия кнопки" в Центре партнеров.
  2. В разделе Эксперименты нажмите кнопку Создать эксперимент.
  3. В разделе Сведения об эксперименте введите имя Optimize Button Clicks (оптимизация нажатий кнопки) в поле Имя эксперимента.
  4. В разделе Событие просмотра введите userViewedButton в поле Имя события просмотра. Обратите внимание, что это имя совпадает со строкой события просмотра, которую вы включили в код, добавленный в предыдущем разделе.
  5. В разделе Цели и события конверсии введите следующие значения:
  • В поле Имя цели введите Увеличить количество нажатий на кнопку.
  • В поле Имя события конверсии введите имя userClickedButton. Обратите внимание, что это имя совпадает со строкой события конверсии, которую вы включили в код, добавленный в предыдущем разделе.
  • В поле Цель выберите Максимизировать.
  1. В разделе Удаленные переменные и варианты установите флажок Распределять равномерно, чтобы в вашем приложении варианты распределялись равномерно.
  2. Добавьте переменные в ваш эксперимент:
    1. Щелкните раскрывающийся элемент управления, выберите buttonText и нажмите Добавить переменную. Строка Grey Button (серая кнопка) автоматически отобразится в столбце Вариант А (это значение извлекается из параметров проекта). В столбце Вариант Б введите Blue Button (синяя кнопка).
    2. Щелкните раскрывающийся элемент управления еще раз, выберите r и нажмите Добавить переменную. Строка 128 автоматически отобразится в столбце Вариант А. В столбце Вариант Б введите 1.
    3. Щелкните раскрывающийся элемент управления еще раз, выберите g и нажмите Добавить переменную. Строка 128 автоматически отобразится в столбце Вариант А. В столбце Вариант Б введите 1.
    4. Щелкните раскрывающийся элемент управления еще раз, выберите b и нажмите Добавить переменную. Строка 128 автоматически отобразится в столбце Вариант А. В столбце Вариант Б введите 255.
  3. Нажмите Сохранить, а затем Активировать.

Важно!

После активации эксперимента изменить его параметры будет невозможно, если только это не редактируемый эксперимент (при создании эксперимента вы установили флажок Редактируемый эксперимент). Обычно рекомендуется создать код эксперимента в приложении, прежде чем активировать эксперимент.

Запуск приложения для сбора данных эксперимента

  1. Запустите приложение SampleExperiment, которое вы создали ранее.
  2. Убедитесь, что видите серую или синюю кнопку. Нажмите кнопку и закройте приложение.
  3. Повторите указанные выше действия несколько раз на одном и том же компьютере, чтобы убедиться, что в вашем приложении отображается кнопка одного и того же цвета.

Проверка результатов и завершение эксперимента

Подождите хотя бы несколько часов после завершения предыдущего раздела, а затем выполните следующие действия, чтобы проверить результаты эксперимента и завершить его.

Примечание

Как только вы активируете эксперимент, Центр партнеров сразу же начнет собирать данные из всех приложений, которые инструментируются для записи данных для вашего эксперимента. Однако для отображения данных эксперимента в Центре партнеров может потребоваться несколько часов.

  1. В Центре партнеров вернитесь на страницу Экспериментирование для приложения.

  2. В разделе Активные эксперименты нажмите Optimize Button Clicks (оптимизация нажатий кнопки), чтобы перейти на страницу этого эксперимента.

  3. Убедитесь, что результаты в разделах Сводка по результатам и Подробные сведения о результатах соответствуют вашим ожиданиям. Дополнительные сведения об этих разделах см. в статье Управление экспериментом в Центре партнеров.

    Примечание

    Центр партнеров сообщает только о первом событии преобразования для каждого пользователя за 24-часовой период времени. Если благодаря действиям пользователя срабатывает несколько событий конверсии в вашем приложении в течение 24 часов, регистрируется только первое событие. Это позволяет предотвратить искажение результатов эксперимента для выборки пользователей из-за пользователя со множеством событий конверсии.

  4. Теперь вы можете завершить эксперимент. В разделе Сводка по результатам в столбце Variation B нажмите Переключить. Так вы переключите всех пользователей своего приложения на синюю кнопку.

  5. Нажмите кнопку ОК, чтобы подтвердить завершение эксперимента.

  6. Запустите приложение SampleExperiment, созданное в предыдущем разделе.

  7. Убедитесь, что видите синюю кнопку. Обратите внимание, что может пройти до двух минут, прежде чем ваше приложение получит обновленное назначение варианта.