A/B‑тестирование — один из ключевых методов оценки эффективности изменений в продукте, рекламной кампании или пользовательском интерфейсе. Метод позволяет получить достоверные данные о влиянии конкретного изменения на заданную метрику, сравнивая результаты между двумя независимыми группами пользователей. Однако на практике большая часть тестов проводится с нарушениями: от некорректной рандомизации до преждевременной остановки.
В этой статье мы собрали принципы корректного проведения A/B‑тестов, типовые ошибки и актуальные подходы.
A/B‑тест — это контролируемый эксперимент, когда аудитория случайным образом разделяется на группы, каждая из которых видит свою версию тестируемого элемента. Далее сравниваются ключевые метрики — например, конверсия, кликабельность, средний чек и т. д.
Типовые сценарии применения:
Изменение текста на кнопке с призывом к действию.
Сравнение разных вариантов дизайна страницы (например, тёмная и светлая темы).
Тестирование новых условий акции.
Оценка влияния дополнительного шага в форме на завершение заявки (например, влияет ли добавление поля «Комментарий» в форму заказа на процент завершённых заявок).
Ключевой принцип: одновременно меняется только один элемент. Это необходимо для того, чтобы результат можно было интерпретировать однозначно.
Гипотеза должна быть конкретной и проверяемой. Стандартная формулировка:
«Если изменить X, то метрика Y изменится на Z%, поскольку…»
Пример корректной гипотезы:
Если заменить формулировку кнопки «Купить» на «Оформить заказ», это повысит конверсию на 10%, так как новая формулировка точнее отражает ожидаемое действие.
В каждом A/B-тесте нужно заранее определить главную метрику — именно по ней вы будете судить, сработало ли изменение. Остальные показатели можно отслеживать для проверки или чтобы выявить побочные эффекты, но они не должны влиять на основное решение об эффективности теста.
Для начала — важное интро. Перед запуском теста следует помнить, что распределение пользователей по группам должно быть:
Случайным — чтобы избежать систематических искажений.
Взаимоисключающим — один пользователь не должен попасть сразу в обе группы.
Однородным — группы должны быть сопоставимы по ключевым характеристикам.
Итак, существует два способа организовать эксперимент: через готовые сервисы или с помощью собственной настройки на сайте.
1. Готовые инструменты
Для веб-сайтов в экосистеме Яндекса используется Varioqub (работает вместе с Яндекс.Метрикой). Требуется установленный счётчик Метрики. Пользователи распределяются между вариантами, вариант закрепляется (cookie __ymab_param
), а результаты доступны в интерфейсе Метрики в разделе Varioqub → Эксперименты.
Для мобильных приложений аналогичный сценарий решается через AppMetrica Experiments. Там для A/B-тестов используют флаги — удалённые настройки, позволяющие включать / выключать варианты без релиза в сторах. Сравнение метрик доступно прямо в интерфейсе AppMetrica.
2. Собственная настройка
Если готовые сервисы недоступны, тест можно реализовать самостоятельно:
При первом визите случайным образом назначить пользователю вариант A или B.
Делайте равновероятный сплит (50/50) на фронтенде или бэкенде через генерацию случайного числа.
Закрепить выбранный вариант через cookie или базу данных.
Важно закрепить за пользователем выбранный вариант, чтобы он всегда видел одну и ту же версию. Для этого можно сохранить метку A или B в cookie браузера. Если пользователь авторизован, лучше записать его вариант в базу вместе с ID — так он будет получать тот же вариант даже на другом устройстве.
Отдавать соответствующую версию интерфейса (через серверный рендеринг или фич-флаги).
При каждом визите проверяйте сохранённую метку и сразу показывайте пользователю нужный вариант страницы. Лучше делать это на сервере — тогда версия загружается сразу, без заметной подмены интерфейса после загрузки.
Передавать в систему аналитики идентификатор варианта и затем сравнивать метрики по сегментам.
Добавляйте параметр variant=A/B
во все события (просмотры, клики, конверсии) с единым названием поля — так отчёты по группам будут сопоставимы.
Результаты теста будут достоверными только при достаточном объёме данных. Для расчёта удобно использовать калькулятор Evan Miller.
Необходимо задать четыре параметра:
Базовая конверсия (baseline): фактическое значение метрики сейчас.
Минимально значимый эффект (uplift): насколько должна измениться метрика, чтобы гипотеза считалась подтверждённой.
Уровень значимости (alpha): показывает, насколько велик риск принять изменение за успешное, если на самом деле эффекта нет. Обычно устанавливают 5% — это значит, что в 1 случае из 20 тест может «ошибочно подтвердить» гипотезу.
Статистическая мощность (power): вероятность обнаружить эффект, если он действительно существует. Обычно ориентируются на 80%.
Пример:
Если текущая конверсия — 5%, а вы хотите проверить, даст ли изменение рост хотя бы до 5,5%, потребуется примерно 31 000 пользователей в каждой группе. Только при таком объёме выборки результат можно считать достоверным.
Тест завершается не по времени, а после того, как каждая группа наберёт расчётное количество наблюдений. Но обычно эксперимент проводят минимум 1–2 недели и заканчивают на границе недели, чтобы учесть разницу в поведении по дням. При трафике 2–10 тыс. визитов в день это обычно 1–3 недели, при меньшем трафике или небольшом эффекте — до 3–4 недель. Главное условие — собрать нужное количество данных.
На результаты также влияют:
Равномерность по дням недели. Поведение пользователей отличается в будни и выходные, поэтому тест должен охватывать полный недельный цикл.
Внешние факторы. Акции, праздники, баги на сайте или рассылки могут исказить результат. Такие периоды лучше исключать или учитывать отдельно.
Независимость групп. Один и тот же пользователь не должен попадать в обе группы. В противном случае его поведение будет смешивать результаты.
После завершения теста важно не просто посмотреть на цифры, а корректно их сравнить. Алгоритм:
1. Определите ключевую метрику
Это та же метрика, которую вы выбрали на этапе гипотезы: конверсия, CTR, средний чек, выручка и т. п. В нашем примере это будет конверсия в заявку.
2. Сравните метрику в двух группах.
В группе A заявку оставили 500 из 10 000 посетителей → конверсия = 5%.
В группе B заявку оставили 600 из 10 000 → конверсия = 6%.
Разница = +1 процентный пункт.
3. Рассчитайте p-value.
Теперь нужно понять: разница в 1% — это действительно эффект нового варианта или просто случайность? p-value — это вероятность получить такие же или более сильные различия между группами, если на самом деле никакого эффекта нет.
Считаем p-value через калькулятор A/B-тестов (подставляем размеры групп и количество заявок).
Получаем, например, p-value = 0.02. Это значит, что вероятность случайного результата = 2%.
Подставьте данные по группам (размер выборки и число целевых действий) в онлайн-калькулятор A/B-тестов. Например: Evan Miller’s AB Test Calculator или аналог в AppMetrica / Varioqub. Калькулятор автоматически посчитает p-value.
В интерфейсе это «p-value» или «уровень значимости».
4. Убедитесь, что собрана расчётная выборка.
Перед запуском мы считали, что для обнаружения эффекта в 0,5% нужно минимум 30 000 пользователей на группу.
Если у нас только 10 000 в каждой группе, результат ненадёжный: p-value может измениться при повторении теста.
Если у нас ≥30 000 в каждой группе, тогда вывод корректен.
Вывод:
При 10 000 визитов на группу тест ещё не настоялся. Даже при p-value = 0.02 стоит продолжать до нужной выборки.
При 30 000 визитов на группу и тех же цифрах можно уверенно сказать: новый вариант увеличивает конверсию примерно на 1 п. п. (то есть относительный рост около +20%).
1. Недостаточная выборка
Тест останавливают до того, как набрана необходимая аудитория (например, менее 80% от расчётной). В итоге выводы будут основаны не на реальных различиях, а на случайных колебаниях данных.
2. Нарушения рандомизации
Если в одну группу попали только десктопные пользователи, а в другую — мобильные, сравнение будет некорректным.
3. Множественные изменения
При одновременном изменении текста, изображения и цены невозможно понять, что именно повлияло на метрику.
4. Преждевременный вывод
Тест остановили через три дня, увидев +15% к конверсии, а через неделю разница между вариантами исчезла — эффект оказался случайным. Без полного периода и нужной выборки можно неправильно интерпретировать результаты и получить неверные выводы.
5. Несопоставимые аудитории
Если одна группа состоит в основном из новых пользователей, а другая — из постоянных клиентов, результат нельзя считать репрезентативным.
A/B-тесты позволяют проверять идеи в контролируемых условиях и принимать решения на основе данных. Но эффективность метода зависит от дисциплины и соблюдения ключевых этапов. Важно:
Чётко сформулировать гипотезу до запуска.
Задать основную метрику.
Заранее рассчитать необходимый объём выборки.
Выдержать нужную длительность теста.
Обеспечить корректное разделение аудитории.
Соблюдайте эти правила, и тогда A/B-тестирование станет надёжным инструментом для оценки идей и распределения бюджетов. Удачи!