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

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

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

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

Необходимые компоненты

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

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

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

Кодируйте эксперимент в приложении

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

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

  3. В диспетчере ссылок разверните универсальные окна и щелкните "Расширения".

  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. В разделе "Сведения о эксперименте" введите имя "Оптимизация кнопки" в поле "Имя эксперимента".
  4. В разделе событий View введите userViewedButton в поле имени события View. Обратите внимание, что это имя соответствует строке события представления, вошедшего в код, добавленный в предыдущем разделе.
  5. В разделе "Цели и события преобразования" введите следующие значения:
  • В поле "Имя цели" введите кнопки "Увеличить".
  • В поле имени события преобразования введите имя userClickedButton. Обратите внимание, что это имя соответствует строке события преобразования, вошедшего в код, добавленный в предыдущем разделе.
  • В поле "Цель" выберите "Развернуть".
  1. В разделе "Удаленные переменные и варианты" убедитесь, что флажок "Распределить одинаково" установлен, чтобы варианты распределялись одинаково в приложении.
  2. Добавьте переменные в эксперимент:
    1. Щелкните раскрывающийся список, нажмите кнопку "Текст" и нажмите кнопку "Добавить переменную". Строка " Серая кнопка " должна автоматически отображаться в столбце "Вариант A" (это значение является производным от параметров проекта). В столбце "Вариант B " введите "Синяя кнопка".
    2. Снова щелкните раскрывающийся список, выберите r и нажмите кнопку "Добавить переменную". Строка 128 должна автоматически отображаться в столбце "Вариант А". В столбце "Вариант B " введите 1.
    3. Снова щелкните раскрывающийся список, выберите g и нажмите кнопку "Добавить переменную". Строка 128 должна автоматически отображаться в столбце "Вариант А". В столбце "Вариант B " введите 1.
    4. Снова щелкните раскрывающийся список, выберите b и нажмите кнопку "Добавить переменную". Строка 128 должна автоматически отображаться в столбце "Вариант А". В столбце "Вариант B " введите 255.
  3. Нажмите кнопку "Сохранить " и нажмите кнопку "Активировать".

Внимание

После активации эксперимента вы больше не сможете изменить параметры эксперимента, если только при создании эксперимента не установлен флажок "Редактируемый эксперимент ". Как правило, рекомендуется закодировать эксперимент в приложении перед активацией эксперимента.

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

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

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

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

Примечание.

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

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

  2. В разделе "Активные эксперименты" нажмите кнопку "Оптимизировать", чтобы перейти на страницу для этого эксперимента.

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

    Примечание.

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

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

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

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

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