Поделиться через


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

В этом пошаговом руководстве вы будете:

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

Для получения общей информации о тестировании 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. В обозревателе решений разверните узел проекта, щелкните правой кнопкой мыши на Referencesи выберите Добавить ссылку.

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

Важный

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

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

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

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

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

Заметка

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

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

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

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

    Заметка

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

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

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

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

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