Реализуйте A/B-тесты для своей игры Unity с помощью Firebase Remote Config.

1. Введение

В этом практическом занятии вы узнаете, как создать эксперимент с использованием удаленной конфигурации (Remote Config) с помощью A/B-тестирования для примера игры MechaHamster: Level Up with Firebase edition , которую вы модифицировали в разделе «Инструментирование игры с помощью Firebase Remote Config ».

A/B-тестирование с помощью Remote Config позволяет проверять изменения в пользовательском интерфейсе, функциях или кампаниях по вовлечению пользователей вашего приложения на целевой аудитории, прежде чем внедрять их для более широкой аудитории. Вы также можете использовать результаты экспериментов для:

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

В этом и заключается суть A/B-тестирования: оно позволяет использовать код, настроенный для удаленной конфигурации, и запускать эксперименты, которые контролируют значения, получаемые клиентами, на основе условий удаленной конфигурации (включая свойства пользователей Google Analytics), процентных показателей внедрения, событий конверсии Analytics и некоторой их комбинации.

Сначала вы реализуете условие, определяющее, кто будет участвовать в эксперименте, устанавливая свойства пользователя на основе его действий. Затем вы создадите эксперимент A/B-тестирования, который будет использовать свойства пользователей Google Analytics для определения того, какие клиенты будут включены в эксперимент. И, наконец, вы используете эти данные, чтобы лучше понять свою аудиторию.

Что вы узнаете

  • Как настроить A/B-тестирование с использованием параметров удаленной конфигурации (Remote Config)
  • Как использовать свойства пользователей Google Analytics в качестве условия для участия в A/B-тестах

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

Что вам понадобится

  • Unity 2019.1.0f1 или выше с поддержкой сборки для iOS и/или Android.

2. Включение меню отладки

В проекте скрыто меню отладки, и кнопка для доступа к этому меню существует в игре, но в данный момент неактивна. Для доступа к нему необходимо активировать кнопку в префабе MainMenu.

  1. В редакторе Unity выберите вкладку Project , затем в разделе Assets разверните Hamster > Prefabs > Menus и нажмите MainMenu .

The Unity editor Project tab showing\nAssets. Hamster, Prefabs, Menus

  1. В иерархии префабов найдите отключенный подобъект с именем DebugMenuButton и щелкните по нему, чтобы открыть его на вкладке «Инспектор» .

The Unity editor shows the Main Menu,\nwith DebugMenu disabled

  1. На вкладке «Инспектор» установите флажок в верхнем левом углу рядом с текстовым полем, содержащим DebugMenuButton , чтобы включить его.

The Inspector tab for DebugMenuButton\nwith checkbox

  1. Сохраните сборные дома.

Если вы запустите игру в редакторе или на своем устройстве, меню теперь должно быть доступно.

3. Активируйте подменю «Удалённая настройка».

  1. В редакторе Unity на вкладке «Проект » разверните Assets > Hamster > Prefabs > Menus и дважды щелкните объект DebugMenu , чтобы открыть его на вкладке Hierarchy редактора.

    DebugMenu item nested under Assets,\nHamster, Prefabs, Menus
  2. На вкладке «Иерархия» разверните иерархию и щелкните подобъект в меню «Отладка» > «Панель» , который называется «Действия удаленной конфигурации» .

Remote Config Actions nested under\nCanvas, DebugMenu

  1. На вкладке «Инспектор Unity» включите «Действия удаленной конфигурации» , установив флажок слева от текстового поля с именем объекта.

Unity editor with Remote Config\nActions enabled under DebugMenu, Panel

Этот объект имеет два дочерних объекта GameObject с именами Set Bored Of Subtitle и Set Enjoys Subtitle, которые настроены на вызов существующих, но не реализованных методов в DebugMenu.cs .

4. Сбросьте настройки субтитров до значений по умолчанию в приложении.

В предыдущем практическом занятии вы переопределили значение параметра по умолчанию в формате JSON и использовали условия для отображения различных вариантов. В рамках этого занятия вы удалите созданное вами условие и вернете значение по умолчанию из приложения, переопределяя его только результатами A/B-тестирования.

Чтобы повторно включить встроенную функцию по умолчанию:

  1. Откройте страницу «Удалённая конфигурация» в консоли Firebase и щёлкните значок карандаша рядом с параметром subtitle_override , чтобы открыть боковую панель редактирования параметра .
  2. Нажмите на значок «X» рядом с условием, чтобы удалить его.
  3. Рядом с оставшимся значением по умолчанию включите переключатель «Использовать значение по умолчанию в приложении» .

Deleting a condition from the Remote\nConfig parameter editor

  1. Нажмите «Сохранить» , чтобы сохранить изменения, затем нажмите «Опубликовать изменения» , чтобы опубликовать изменения. Publish\nchanges option on the Remote Config page

5. Настройка пользовательских свойств в функциях отладки.

Теперь вам предстоит написать тела функций для некоторых предварительно настроенных, но не реализованных функций Google Analytics в файле DebugMenu.cs (который находится в Assets > Hamster > Scripts > States).

Эти функции задают свойства пользователя , которые представляют собой способы описания сегментов вашей пользовательской базы и используются для регистрации того, как пользователь относится к подзаголовку игры.

Реализуйте SetUserBoredOfSubtitle и SetUserEnjoysSubtitle , найдя существующие версии этих функций в DebugMenu.cs и переопределив их следующим образом:

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

Если ваше приложение правильно настроено с Google Analytics, вы можете вызвать одну из этих функций, чтобы сделать свойство доступным для условий Remote Config. Чтобы вызвать SetUserBoredOfSubtitle с мобильного устройства, запустите игру и нажмите кнопку «Меню отладки» в главном меню, затем нажмите «Установить значение «Скучно» для субтитров» .

6. Создайте пользовательское измерение.

Далее вы настроите различные варианты субтитров для параметра subtitle_override , чтобы определить, какой из них работает лучше всего. Однако в A/B-тестировании вы будете показывать эти варианты только пользователям, чье отношение к текущему субтитру (как указано в subtitle_sentiment ) включает слово «скучно».

Для создания и отслеживания пользовательских параметров событий Analytics вы будете использовать пользовательские измерения. Дополнительную информацию см. в разделе «Пользовательские измерения и метрики» .

Для создания нового пользовательского параметра:

  1. Откройте консоль Firebase , разверните меню «Аналитика» и выберите «Пользовательские определения».
  2. На странице «Пользовательские определения» нажмите «Создать пользовательские размеры» .
  3. В окне «Создать пользовательское измерение» задайте название измерения «Настроение подзаголовка» и в раскрывающемся списке «Область действия» выберите «Пользователь» .
  4. В поле «Пользовательские свойства» выберите subtitle_sentiment.

7. Настройте эксперимент A/B-тестирования.

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

  1. Сначала выберите пункт «Редактировать» для параметра subtitle_override на странице «Удалённая конфигурация» в консоли Firebase:

The subtitle_override parameter on\nthe Remote Config page, showing the Edit option.

  1. В появившемся диалоговом окне «Редактировать параметр» нажмите « Добавить новый» .

The Add new experiment option on the\nRemote Config Edit parameter page.

  1. В появившемся списке выберите «Эксперимент» .

Remote Config parameter page: Add new\nexperiment

  1. Введите название и описание вашего эксперимента.

Experiment name and description\nsection

  1. Далее выберите условия таргетинга. Сначала выберите свое приложение из выпадающего списка.

The Targeting step of an A/B Testing\nconfiguration, with an app selected

  1. Далее нажмите кнопку «И», чтобы добавить новое условие, затем выберите «Свойства пользователя» и укажите subtitle_sentiment . Если это значение не отображается, введите его вручную.
  2. Поскольку вы хотите установить подзаголовок только для тех, чей текущий эмоциональный оттенок включает слово «скучно», выберите пункт «содержит » и введите bored .
  3. При желании выберите процент аудитории, соответствующей указанным выше критериям, для проведения теста. Выберите 100% , чтобы избежать случайности, которую вы не можете легко контролировать.

A/B Testing Targeting section with\nsubtitle_sentiment selected

  1. Далее выберите цель, которую тест будет стремиться достичь. Выберите «Удержание информации (2-3 дня)» .

A/B Testing Goals section

  1. Далее настройте параметры эксперимента и создайте различные варианты субтитров. Эти варианты представляют собой разные значения, которые A/B-тестирование будет показывать пользователям, чей subtitle_sentiment содержит слово «скука», и A/B-тестирование определит, какой вариант лучше всего подходит для максимального удержания пользователей.
  2. Введите следующее значение параметра для варианта A:
    {"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
    
  3. Введите следующее значение параметра для варианта B:
    {"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
    
  4. Задайте коэффициенты вариации целыми числами следующим образом:
    • Исходный уровень : 1
    • Вариант А : 100
    • Вариант B : 100
    В результате общий вес составит 0,5% для базового варианта, 49,8% для варианта А и 49,8% для варианта В. Variant weights configuration\nsection Эти варианты указывают, что в одном случае из 201 A/B-тестирование показывает вариант по умолчанию тем, кому надоели субтитры, но в 200 случаях из 201 будет показано одно из двух новых значений, и заголовок экрана будет заменен.
  5. Сохраните и отправьте, нажав «Начать эксперимент» , а затем нажмите «Начать» во всплывающем окне подтверждения. Click Start to start the\nexperiment

8. Запустите метод Set User Property и обновите страницу.

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

Если вы ранее не запускали метод SetUserProperty или установили для него значение enjoys , при запуске игры вы все равно должны видеть субтитры по умолчанию.

Если вы установили режим bored (перед повторной загрузкой), вы должны увидеть одно из новых значений примерно в соотношении 50/50.

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

В реальном A/B-тестировании, проводимом среди вашей пользовательской базы, базовому варианту следует присвоить аналогичный вес, как и другим вариантам. Но в данном случае вы назначаете сильно искаженные вероятности, чтобы подтвердить эффективность эксперимента. Если (в случае 1/201) вы по-прежнему получаете значение по умолчанию, попробуйте переустановить игру на ваше устройство/симулятор.

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

9. Поздравляем!

Вы использовали A/B-тестирование удаленной конфигурации, чтобы поэкспериментировать с различными значениями параметра Remote Config и определить, как каждое из них влияет на показатели аналитики.

Что мы рассмотрели

  • Как настроить A/B-тестирование с использованием параметров удаленной конфигурации (Remote Config)
  • Как использовать свойства пользователей Google Analytics в качестве условия для участия в экспериментах A/B-тестирования.

Следующие шаги

После завершения эксперимента вы можете выбрать один из экспериментов в вашем проекте и решить, что с ним делать дальше. Хотите ли вы выбрать один из них в качестве «победителя» или провести еще несколько экспериментов?