A/B-тест персонализации: как отделить эффект контента от эффекта шаблона
Блок рекомендаций дал +20% к кликам в тесте, а выручка не сдвинулась? Разбираем, как отделить эффект данных от эффекта шаблона в A/B-тестах персонализации.
Классическая история. Команда добавляет в рассылку блок товарных рекомендаций, гоняет A/B-тест против старой версии письма, видит +18% к кликам и радостно раскатывает на всю базу. Через квартал смотрит на выручку — а она как стояла, так и стоит. Деньги в динамический контент вложены, эффекта нет, вера в персонализацию подорвана.
Причина почти всегда одна: в тесте поменяли две вещи сразу — вёрстку и логику подбора товаров. Письмо с блоком рекомендаций выглядит иначе: новые карточки, фото, другая длина. Часть uplift дал свежий шаблон, часть — сам факт товаров в письме, и только остаток — точность алгоритма. Меня зовут Валерия Старостина, я CRM-маркетолог в ClientCore и регулярно разбираю такие тесты в аудитах. Ниже — как ставить эксперимент, чтобы его цифрам можно было верить.
ЧИТАЙТЕ ТАКЖЕ
«Uplift-расчёт на практике: формулы с контрольной группой, counterfactual-модели и ошибки пост-периода, которые завышают прирост в отчёте.»
Когда вы запускаете ab тестирование в crm маркетинге, обычно меняется одна переменная: тема письма, текст кнопки, время отправки. Остальное зафиксировано, и разница между группами читается чисто.
С персонализацией так не получается. Динамический контент живёт на двух уровнях: данные (что показать конкретному человеку) и подача (как это выглядит в письме). Запуская блок рекомендаций, вы почти всегда трогаете оба уровня: нужны карточки товаров, картинки, цены, место в шаблоне. Контроль и вариант в итоге отличаются по пяти параметрам, а вы измеряете одну цифру.
Добавьте сюда эффект новизны. Любой свежий элемент первые 2–4 недели собирает больше кликов просто потому, что подписчик его заметил. Потом внимание выгорает, метрики возвращаются к базовой линии. Если тест длился неделю, вы измерили именно новизну — и приняли её за персонализацию.
Самый частый разбор в моих аудитах выглядит так: клиент показывает тест с uplift 15–20% по кликам, я спрашиваю, что ещё поменялось в письме, и слышу: „ну, мы заодно шаблон обновили“. Всё, эксперимент мёртв. Разделить эффекты задним числом нельзя — только перезапускать тест».
Валерия Старостина
CRM-маркетолог, ClientCore
Из чего складывается uplift в тесте персонализации
Чтобы понять, что именно вы измерили, разложите результат на составляющие.
Эффект шаблона. Новая вёрстка сама по себе меняет поведение: другая плотность контента, крупные изображения, заметные кнопки. Свежий дизайн может дать и плюс, и минус — но это реакция на оформление, к данным отношения не имеющая.
Эффект механики. Само присутствие товарной подборки в письме. Даже если показать случайные товары из каталога, кликов станет больше: фото товаров кликабельны сами по себе. Это эффект блока как формата.
Эффект данных. То, ради чего всё затевалось: насколько точно алгоритм угадывает интересы конкретного человека. Он измеряется только в сравнении «блок с простой логикой» против «блока с персональной логикой» при одинаковом шаблоне.
Пока слои смешаны, вы не знаете, за что платите. Персональный алгоритм стоит денег: настройка, данные, поддержка. Если тот же uplift даёт блок бестселлеров за копейки, решение очевидно. Без чистого дизайна теста вы этого не увидите.
Факторный дизайн: разводим шаблон и контент по разным группам
Рабочая схема — четыре ячейки вместо привычных двух:
Группа A — старый шаблон, без блока рекомендаций. Контроль.
Группа B — новый шаблон, без блока. Показывает чистый эффект вёрстки.
Группа C — новый шаблон, блок с простой логикой: бестселлеры или новинки, одинаковые для всех. Показывает эффект формата.
Группа D — новый шаблон, блок с персональным подбором. Полная версия.
Дальше простая арифметика. Разница B и A — вклад шаблона. Разница C и B — вклад самого блока. Разница D и C — вклад данных, и только она оправдывает вложения в алгоритм.
Схема требует вдвое большей выборки, чем обычный тест, и это её честная цена. Если база не позволяет четыре группы, идите последовательно: сначала тест шаблона при неизменном контенте, потом тест логики при неизменном шаблоне. Два чистых эксперимента подряд лучше одного смешанного.
Мы так и работаем с миграциями. В проекте для Movavi, например, перенесли 28 писем на новый шаблон с сохранением всей логики — контент и механики остались прежними, поменялась только оболочка (кейс). После такого переноса любой сдвиг метрик читается однозначно: это эффект шаблона, и он становится новой базовой линией для следующих тестов.
Выборка и статистическая значимость
Тонкое место: персонализация тестируется на сегментах, а сегменты малы. Если персональный подбор работает только для тех, у кого есть история покупок, вы режете базу до активной части — и группа D превращается в несколько тысяч человек.
Правила, которые мы держим в проектах:
Считайте размер выборки до запуска. Возьмите базовую конверсию, задайте минимальный эффект, который имеет смысл ловить (для email обычно 5–10% относительных), и посчитайте выборку в любом калькуляторе A/B-тестов. Не хватает базы — тестируйте более грубое изменение или объединяйте несколько кампаний в один эксперимент.
Гоняйте тест полными неделями, минимум двумя. Поведение подписчиков в будни и выходные различается, обрезанный цикл искажает результат.
Не подглядывайте. Зашли на третий день, увидели значимость 95% и остановили — с заметной вероятностью вы приняли шум за сигнал. Статистическая значимость валидна только на заранее зафиксированном горизонте.
Просьба „давайте остановим, там уже всё понятно“ — верный способ внедрить то, что не работает. Я пересчитывала такие тесты: из десяти рано остановленных примерно три-четыре на полном горизонте сходятся в ноль. А клиент год живёт с ложным выводом и строит на нём дорожную карту».
Валерия Старостина
CRM-маркетолог, ClientCore
Метрики: почему клики — плохой судья
Блок рекомендаций почти гарантированно поднимает CTR: товарные фото кликают охотнее текста. Если судить тест по кликам, персонализация «побеждает» всегда — и это ничего не говорит о деньгах.
Основная метрика — выручка на доставленное письмо или конверсия в заказ в окне атрибуции, которое принято у вас в CRM. Только она отвечает на вопрос, окупается ли алгоритм. Клики и открытия оставьте диагностикой: по ним видно, где проседает цепочка, но решение по ним не принимают.
Норма
метрика решения — выручка на доставленное письмо, окно атрибуции одинаковое для всех групп;
отписки и жалобы на спам идут сторожевыми метриками рядом с основной;
holdout-группа без персонализации (5–10% базы) живёт постоянно и пересматривается раз в квартал.
Red flag
победитель определён по CTR;
окно атрибуции у варианта и контроля разное;
вывод сделан по одной неделе, пока работала новизна.
Holdout заслуживает отдельного слова. Небольшая группа, которая стабильно получает версию без персонализации, — единственный способ отслеживать эффект в длинную. Новизна выгорает, поведение базы меняется, а контроль продолжает показывать правду.
Ошибки, которые встречаются в почти каждом аудите
Норма
в тесте меняется одна переменная, остальное зафиксировано;
группы режутся случайно из одного сегмента;
горизонт и метрика решения зафиксированы до старта;
эффект перепроверяется через 4–6 недель после раскатки.
Red flag
новый шаблон и новая логика уехали в прод одним релизом;
вариант с блоком длиннее контроля, и оффер уехал ниже первого экрана;
тестировали на активных подписчиках, а раскатали на всю базу;
победителя выбрали по кликам на третий день.
Отдельная ловушка — позиция. Когда блок рекомендаций вставляют в середину письма, весь остальной контент смещается вниз. Проседание метрик в таком тесте часто говорит о том, что блок отодвинул главный оффер, — алгоритм тут может быть ни при чём. Позицию и число карточек тестируйте отдельным экспериментом, уже после подтверждения эффекта данных.
Порядок внедрения, после которого вопросов не остаётся
Соберите последовательность, где каждый шаг меняет одно:
1. Шаблон. Переведите рассылки на новый шаблон без смены контента и логики. Измерьте сдвиг — это новая базовая линия. 2. Формат. Добавьте блок с простой логикой (бестселлеры) против чистого шаблона. Увидите цену самого формата. 3. Данные. Сравните персональный подбор против бестселлеров при том же шаблоне и той же позиции. Это и есть чистый A/B-тест персонализации. 4. Позиция и плотность. Когда эффект данных подтверждён, ищите лучшее место блока и число карточек.
В проекте для FINNTRAIL мы шли похожим путём: сначала собрали новый шаблон и ускорили сборку писем с полутора недель до двух часов, затем наводили персонализацию по сегментам — итогом стал рост выручки email-канала на 15% (кейс). Поэтапность здесь принципиальна: когда шаблон и данные внедряются разными релизами, у каждого шага есть собственная измеримая отдача, и команда понимает, во что вкладываться дальше.
ЧИТАЙТЕ ТАКЖЕ
«Uplift — разница в выручке между группой, которой ушла рассылка, и контрольной группы без нее. Формула, пример с цифрами и перевод результата в ROI канала.»
Минимум два полных недельных цикла, для длинного цикла покупки — до четырёх недель. Причины две: поведение базы внутри недели неравномерно, а эффект новизны первых дней завышает результат. Горизонт фиксируйте до старта и не останавливайте тест по промежуточной значимости.
Что делать, если сегмент слишком мал для статистической значимости?
Есть несколько рабочих ходов: объединить несколько кампаний в один эксперимент с общей метрикой, тестировать более грубое изменение (чем больше минимальный детектируемый эффект, тем меньше нужна выборка) или удлинить горизонт и накопить наблюдения. Совсем маленькой базе в пару тысяч контактов классический A/B честно противопоказан — там лучше работают качественные проверки и holdout на длинном горизонте.
Можно ли тестировать «письмо с блоком» против «письма без блока»?
Можно, если вопрос звучит как «нужен ли нам такой формат». Но результат будет суммой эффектов шаблона, механики и данных — вы не узнаете, окупается ли именно персональный алгоритм. Для решения о вложениях в рекомендательный движок нужен факторный дизайн или последовательные тесты.
Блок рекомендаций даёт клики, но не заказы. Убирать?
Не спешите. Сначала проверьте постклик: куда ведут карточки, совпадает ли товар на лендинге с товаром в письме, есть ли он в наличии. Частая находка — алгоритм рекомендует то, что раскуплено, или ведёт на общую категорию. Если с логистикой всё чисто, а выручка на письмо не растёт за 4–6 недель, тестируйте другую логику подбора или позицию блока — и только потом хороните формат.