Как организовать A/B тестирование для оценки эффективности виджета
Что проверяют
Умеете ли вы спроектировать эксперимент до запуска: метрика, единица рандомизации, размер выборки, длительность. Следом обычно спрашивают, как считать CTR виджета, если группы делили по пользователям, и что делать, если результаты подсмотрели на третий день.
Как отвечать
Каркас дизайна:
- гипотеза и метрики: одна целевая метрика, например доля пользователей с целевым действием через виджет или выручка на пользователя. Плюс барьерные: время загрузки страницы, общая конверсия, клики по соседним блокам, чтобы виджет не каннибализировал остальную страницу;
- единица рандомизации: пользователь, а не сессия или просмотр, иначе один человек увидит обе версии. Разбиение делают хэшем от
user_idс солью эксперимента, так группа стабильна между визитами; - логирование показа: фиксировать момент, когда виджет попал в экран, в обеих группах. В контроле пишут событие «виджет был бы показан», тогда можно анализировать только тех, до кого эксперимент реально дошёл;
- размер выборки: из базовой конверсии, минимального эффекта (MDE), уровня значимости 0,05 и мощности 0,8. Для конверсии грубая оценка на группу:
n ≈ 16·p(1−p)/δ²; - длительность: фиксируется заранее и кратна неделе, чтобы покрыть недельную сезонность.
Анализ начинается с проверки SRM: фактическое соотношение групп сверяют с плановым критерием хи-квадрат. Для долей подходит z-тест, для выручки с тяжёлым хвостом бутстреп. Ratio-метрики вроде CTR при рандомизации по пользователям считают дельта-методом или линеаризацией. Снизить дисперсию и сократить срок помогает CUPED на данных до эксперимента.
Где спотыкаются
Подглядывают и останавливают тест при первом p < 0,05. Доля ложноположительных результатов вырастает в разы. Если смотреть по ходу действительно нужно, берут последовательные тесты.
Считают CTR по просмотрам обычным t-тестом, будто просмотры независимы. Просмотры одного пользователя коррелируют, дисперсия занижается, и тест находит эффект, которого нет.
Не учитывают эффект новизны. Заметный новый виджет кликают из любопытства в первые дни, поэтому перед раскаткой стоит сравнить эффект по неделям.