A/B тестирование при помощи Google Optimize. Как сравнить воронку цели в A/Б тесте при условии, что Google Analytics не поддерживает сегментацию в отчете Funnel Visualization?
Исходные данные
На сайте известного бренда в сфере фастфуда есть форма отклика на вакансию. Сайт отредизайнили, форму «улучшили».
И вот перед нами классическая задача — определить, стал ли сайт и новая анкета более удобной. И еще одно маленькое условие — где именно и за счет чего она стала лучше.
С основной задачей все просто, делаем эксперимент Google Optimize, направляем долю трафика на новый сайт с новой формой и измеряем конверсию. Получаем результат, конверсия в новой форме 9.7% против 8.8% в старой.
Казалось бы, что еще надо? Конверсия выше — вперед на продакшен. Однако, эксперименты не совсем чисты. У нас не только форма новая, но и весь сайт. А вдруг повышение конверсии достигается за счет сайта, а форма на самом деле не такая хорошая, как кажется.
Для измерения прохождения формы мы используем Funnel Visualization в GA: при заполнении каждого поля отправляется Event и по ним построена воронка. И вот проблема, решение которой как раз и является темой статьи: Воронки GA не поддерживает сегментацию. А нам нужно представить результаты тестирования в виде двух воронок, чтобы можно было сравнить drop offs на каждом шаге и убедится, что сама форма также стала лучше и за счет каких шагов.
Решение
- Записываем ExperimentId в custom dimension
- Делаем отдельное представление с фильтром "включить только трафик с ExperimentId)
- Делаем (копируем) второе представление с фильтром "исключить трафик с ExperimentId)
Cправка: |
Настройки самого эксперимента были нестандартными. При указании долей трафика между старой и новой формой, распределение задали как 0/100, а доля пользователей всего эксперимента 10%. Это значит, что наличие ExperimentID означает, что пользователь был отобран для эксперимента и видел новую форму. Процесс настройки сбора данных в отдельное представление Создаем custom dimension с областью действия сессия (scope session). В него в каждом хите будем передавать идентификатор эксперимента, если он есть. |
Процесс настройки сбора данных в отдельное представление
1. Создаем custom dimension с областью действия сессия (scope session). В него в каждом хите будем передавать идентификатор эксперимента, если он есть.
2. Создаем Custom-фильтр, который будет отбирать хиты, относящиеся только к эксперименту.
3. Идентификатор эксперимента для фильтра берем в Google Optimize
4. Создаем переменную, которая будет вытаскивать из cookie идентификатор эксперимента. Кука эксперимента по-умолчанию называется _gaexp
5. Создаем вторую переменную, которая выделяет ID эксперимента в чистом виде:
6. Кука эксперимента имеет такой формат: GAX1.2.{ExperimentID}.ddddd.x
Справка: |
Если вам нужно выделять отдельно варианты эксперимента, то регулярное выражение нужно будет доработать. В примере выше, последняя цифра x — это номер варианта. Полученный таким образом ID эксперимента будет полностью совпадать с тем, который указан в настройках эксперимента в Google Optimize и с тем, что что вы увидите в GA. Поэтому его можно использовать в фильтрах. |
7. Добавляем передачу custom dimension в каждом хите. Это будет гораздо проще сделать, если вы используете переменную настроек Google Analytics Settings. Если не используете — отредактируйте все тэги Google Analytics.
8. После публикации изменений GTM для пользователей, участвующих в эксперименте, в хитах будет передаваться переменная cdХХ (в нашем случае это cd15), содержащая ID эксперимента.
Результаты эксперимента
Удивительно но факт — новая форма (конверсия 41%) хуже, чем старая (45%). Анализ отсева на каждом шаге позволяет определить узкие места и поставить дизайнерам задачу на доработку.
Вывод
Не ленитесь делать анализ воронки, даже даже если общая конверсия, которую вы получаете в эксперименте, показывает данные, которые понравятся заказчику.
Старая воронка
Новая воронка