A/B тест с воронкой цели в Google Analytics & Optimize & Tag Manager


Исходные данные

На сайте известного бренда в сфере фастфуда есть форма отклика на вакансию. Сайт отредизайнили, форму "улучшили".


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


С основной задачей все просто, делаем эксперимент Google Optimize, направляем долю трафика на новый сайт с новой формой и измеряем конверсию. Получаем результат, конверсия в новой форме 9.7% против 8.8% в старой.


Казалось бы, что еще надо? Конверсия выше - вперед на продакшен. Однако, эксперименты не совсем чисты. У нас не только форма новая, но и весь сайт. А вдруг повышение конверсии достигается за счет сайта, а форма на самом деле не такая хорошая, как кажется.


Для измерения прохождения формы мы используем Funnel Visualization в GA: при заполнении каждого поля отправляется Event и по ним построена воронка. И вот проблема, решение которой как раз и является темой статьи: Воронки GA не поддерживает сегментацию. А нам нужно представить результаты тестирования в виде двух воронок, чтобы можно было сравнить drop offs на каждом шаге и убедится, что сама форма также стала лучше и за счет каких шагов.


Решение

  1. Записываем ExperimentId в custom dimension

  2. Делаем отдельное представление с фильтром "включить только трафик с ExperimentId)

  3. Делаем (копируем) второе представление с фильтром "исключить трафик с ExperimentId)

* Настройки самого эксперимента были нестандартными. При указании долей трафика между старой и новой формой, распределение задали как 0/100, а доля пользователей всего эксперимента 10%. Это значит, что наличие ExperimentID означает, что пользователь был отобран для эксперимента и видел новую форму.

Процесс настройки сбора данных в отдельное представление

Создаем custom dimension с областью действия сессия (scope session). В него в каждом хите будем передавать идентификатор эксперимента, если он есть.


Создаем Custom-фильтр, который будет отбирать хиты, относящиеся только к эксперименту.
Идентификатор эксперимента для фильтра берем в Google Optimize
Создаем переменную, которая будет вытаскивать из cookie идентификатор эксперимента. Кука эксперимента по-умолчанию называется _gaexp
Создаем вторую переменную, которая выделяет ID эксперимента в чистом виде:
Кука эксперимента имеет такой формат: GAX1.2.{ExperimentID}.ddddd.x
* Если вам нужно выделять отдельно варианты эксперимента, то регулярное выражение нужно будет доработать. В примере выше, последняя цифра x - это номер варианта.


Полученный таким образом ID эксперимента будет полностью совпадать с тем, который указан в настройках эксперимента в Google Optimize и с тем, что что вы увидите в GA. Поэтому его можно использовать в фильтрах.


Добавляем передачу custom dimension в каждом хите. Это будет гораздо проще сделать, если вы используете переменную настроек Google Analytics Settings. Если не используете - отредактируйте все тэги Google Analytics.
После публикации изменений GTM для пользователей, участвующих в эксперименте, в хитах будет передаваться переменная cdХХ (в нашем случае это cd15), содержащая ID эксперимента.


Результаты эксперимента

Удивительно но факт - новая форма (конверсия 41%) хуже, чем старая (45%). Анализ отсева на каждом шаге позволяет определить узкие места и поставить дизайнерам задачу на доработку.

Вывод

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


Новая воронка СЛЕВА. Старая воронка СПРАВА.