Привет, меня зовут Армен Есаян, я аналитик данных CRM в Авито. В статье расскажу, на какие виды мы делим A/B-тесты рассылок, как дизайним эксперименты и анализируем их результаты. Статья будет полезна аналитикам и продакт-менеджерам, которые развивают CRM-инфраструктуру, а также тем, кто хочет узнать, как технически устроены A/B-тесты рассылок.
Что внутри статьи:
Какие CRM-рассылки бывают в Авито
1. Локальные эксперименты с CRM-рассылками
2. Эксперимент с глобальной контрольной группой
3. Тесты с балансировщиком CRM-рассылок
Как анализируем результаты экспериментов
Резюме: главное в проведении A/B-тестов для CRM-рассылок
Какие CRM-рассылки бывают в Авито
Прежде чем начать отправлять регулярные маркетинговые коммуникации пользователям, мы пропускаем любую рассылку через 5 стадий:
Придумываем идею.
Пишем текст рассылки.
Создаём дизайн и запускаем A/B-тест.
Анализируем итоги эксперимента.
В случае «зелёных» результатов раскатываем рассылку на всех.
Мы различаем коммуникации:
По сегментам пользователей. Например, продавцам отправляем коммуникации с полезными материалами, советами и акциями, а покупателям — с подборками, рекомендациями или напоминаниями о товарах в избранном.
По гипотезам, которые тестируем. Они могут быть такими:
эффективность конкретных рассылок. Обычно такой эксперимент выглядит как тестовая группа против контрольной: первая получает рассылку, вторая нет.
новые тексты коммуникаций. Сравниваем и находим наиболее конверсионные посылы для продаж наших продуктов.
условия триггеров, по которым отправляется коммуникация. Находим наилучшую точку для контакта с пользователем через рассылки, исходя из этапа CJM, на котором человек находится.
масштабирование или сужение сегментов. Проверяем, даёт ли масштабирование соразмерный инкрементальный рост продуктовых метрик без роста отписок. В случае сужения смотрим, нет ли изменений в тех же метриках и соразмерного сужения отписок от коммуникаций.
объединённый эффект от нескольких рекламных кампаний. Если невозможно измерить эффект от одной рассылки из-за слишком высокого MDE (minimum detectable effect) — ожидается, что эффект от нескольких рассылок одновременно будет более сильным.
По каналам коммуникации. CRM-платформа позволяет нам отправлять рассылки пользователям в разные каналы. Например, мы присылаем рекламные кампании в пуш-уведомлении, мессенджере внутри приложения или в ленте уведомлений. Так выглядят наши коммуникации:
Подробнее о том, как устроены CRM-коммуникации в Авито, рассказывал тимлид команды аналитики в статье: «Как Авито общается с покупателями и продавцами через массовые рассылки».
За 2023 год CRM-департамент провёл 39% от всех А/В-тестов в Авито. Расскажу, на какие виды мы делим эксперименты с CRM-рассылками и как работаем с каждым.
1. Локальные эксперименты с CRM-рассылками
Такие тесты помогают нам измерять эффективность конкретной коммуникации или группы рассылок.
Дизайн продуктового А/В-теста. При создании любого эксперимента в нашей внутренней платформе ключевой фильтр — это Is Exposed. От его положения зависит результат теста.
Is Exposed (экспоужер) позволяет включать в расчёт метрики разных пользователей: тех, кто попал в эксперимент во время взаимодействия с Авито, и тех, кто не попал. Например, пользователи, которые заходили на тот экран приложения, где тестируем новое поле с информацией.
У экспоужера есть 2 состояния: True и Any. На нашей платформе переключатель Is Exposed выглядит так:
Больше о нашей платформе для A/B-тестов можно узнать в видео «Trisigma: движущая сила А/В-экспериментов | avito.code».
Если установим Is Exposed = True — в тесте будут учитываться только те пользователи, которые столкнулись с тестируемым элементом. Это помогает понять, насколько успешна конкретная функция.
Метрики, которые мы посчитали для всех пользователей в группах Is Exposed = Any, позволяют оценить ожидаемый эффект от внедрения функции в масштабе всего бизнеса.
Например, мы хотим проверить, будут ли пользователи чаще контактировать, если отображать в объявлении рейтинг продавца. Для этого проводим А/В-тест.
В эксперимент попадут пользователи, которые находились внутри Авито в тестовый период, а именно внутри карточки товара. Если такой пользователь увидел рейтинг продавца, то он в тестовой группе, а если нет — то в контрольной.
Дизайн А/В-теста в CRM. Если просто перенести логику продуктовых тестов в CRM, результаты эксперимента будут некорректными.
Например, мы тестируем функцию: «Отправлять пользователю пуш-уведомление с подборкой рекомендаций через 22 часа с момента последнего взаимодействия с Авито» — мы надеемся, что это будет мотивировать людей опять зайти в приложение.
Если будем действовать по логике продуктового А/В-теста, то получим, что:
пользователи из тестовой группы получают пуши, чаще заходят в приложение и чаще попадают в эксперимент;
люди из контрольной группы не заходят в приложение.
Реальное соотношение размеров выборки перестанет соответствовать зафиксированному до эксперимента — таким метрикам нельзя будет доверять.
Чтобы не сталкиваться с такой проблемой в тестах CRM-коммуникаций, мы:
добавляем пользователей в тестовую группу на этапе формирования сегмента рассылки, а не когда они заходят в приложение. Это помогает решить проблему со «здоровьем» тестов.
улучшаем чувствительность теста. Мы приняли семь дней за максимальный период косвенного влияния рассылки на пользователя. Благодаря этому мы также получаем низкую дисперсию и не «шумные» метрики.
Например, кампания X отправляется пользователю не чаще, чем раз в 24 дня. Пользователь совершает действие на площадке в двадцатый день. Маловероятно, что его действия связаны с рассылкой. Мы не будем их учитывать, поскольку они содержат лишнюю информацию и зашумляют метрику.
Предположим, что пользователи получают рассылку каждый девятый день. В случае установки Is Exposed = Any мы посчитаем метрики этого пользователя за все дни эксперимента.
Если выберем Is Exposed = True, то учтём метрики только за семь дней после первого попадания в эксперимент. Такая настройка позволяет сделать тест более чувствительным. Так это выглядит на схеме:
2. Эксперимент с глобальной контрольной группой
Сумма аплифтов каждого A/B-теста ≠ совокупному аплифту от всех CRM-коммуникаций. Поэтому нам нужно было придумать, как его измерить.
Для этого решили ввести тест с глобальной контрольной группой (ГКГ). Это 10% пользователей Авито, которые не получают маркетинговые рассылки определённый промежуток времени. Пользователи попадают в такую группу случайно, а чтобы не было эффекта привыкания — раз в месяц мы обновляем 2 из 10% участников группы.
Благодаря такому подходу мы можем измерять разницу между тестовой и контрольной группой и видеть чистый эффект от всех рассылок, который получают пользователи.
В целом есть разные стратегии по выбору пользователей для глобальной контрольной группы, здесь я расскажу про две.
Стратегия 1:
Выделяем 10% пользователей в ГКГ.
Пополняем её, разделяя новых пользователей на тестовых и контрольных.
Полностью перемешиваем их раз в определенный период — месяц или год.
Измеряем эффект относительно ГКГ.
Стратегия 2:
Выделяем 10% пользователей в ГКГ.
Пополняем её, разделяя новых пользователей на тестовых и контрольных.
Перемешиваем только часть пользователей с периодичностью.
Измеряем эффект относительно ГКГ.
Мы в Авито используем второй способ, потому что он позволяет наблюдать за трендом и плавной динамикой аплифта в ключевых продуктовых метриках.
3. Тесты с балансировщиком CRM-рассылок
Каждый день CRM-департамент генерирует и отправляет более четырёхсот регулярных маркетинговых кампаний во всех вертикалях Авито.
Балансировщик CRM-рассылок — это сервис, который распределяет кампании по времени и приоритезирует их по релевантности. Он отправляет пользователю только наиболее подходящие и равномерно распределённые в течение дня рассылки.
Без балансировщика:
сегменты рассылаемых кампаний собираются с помощью SQL-запросов из DWH, поэтому могут пересекаться.
CRM-маркетологи сами выбирают время отправки коммуникаций. Так как конкретного правила для выбора времени нет, сложно составлять расписание отправки кампании. Это делается вручную и не факт, что эффективно. В итоге неудачно выбранное время влияет на результаты А/В-тестов и приводит к неправильным выводам.
пользователи могут не получать интересные им рассылки. В Авито есть коммуникационная политика: пользователь не может получать больше определённого количества уведомлений в день. Поэтому компании, отправленные не вовремя, могут заблокироваться и человек не получит релевантную и полезную коммуникацию.
мы не можем персонализировать время отправки кампании под конкретного пользователя, так как генерация кампании происходит строго в указанное время. К тому же мы не узнаем, какие кампании пользователь получит в течение дня и сколько их будет.
Нам важно, чтобы рассылки не конфликтовали и не каннибализировали друг друга.
С балансировщиком:
снижается негатив и увеличивается инкрементальный эффект от каждой кампании, так как балансировщик устанавливает лимит по количеству уведомлений на пользователя в день.
мы устанавливаем наилучшее время отправки рассылки для пользователя. Прайм-тайм для каждого отдельного человека будет разным.
Вот как это работает в реальности
Предположим, мы хотим отправить одному пользователю четыре маркетинговые кампании за день. Они стоят слишком близко друг к другу по времени, а всего для этого пользователя разрешены только три рассылки в день.
В таком случае балансировщик распределит кампании по дню и выберет топ-3 из предлагаемого набора, а оставшуюся рассылку заблокирует.
Заблокированная в этот день кампания может уйти в другой день, а может так и остаться не отправленной — зависит от того, попадёт ли этот пользователь в сегмент рассылки ещё раз или нет.
Все локальные эксперименты с CRM-рассылками живут внутри экспериментов в балансировщике. Вот как иерархия тестов выглядит на схеме:
Как анализируем результаты экспериментов
Первичные выводы по локальным тестам составляют CRM-маркетологи. У них есть инструкция, в которой описано, как нужно подводить результаты эксперимента:
как настраивать параметры отчёта: окна и разрезы для анализа метрик;
какие метрики анализировать;
за что отвечает каждая из них: целевые, прокси, метрики позитива и негатива;
как писать первичную резолюцию. Это осуществляется по шаблону, составленному нашими коллегами из команды аналитики.
Если маркетолог считает, что тест не стоит полноценной реализации, то дополнительно мы ничего не делаем. Таким образом, коммуникация не будет регулярно отправляться всему сегменту пользователей.
В случае когда маркетолог хочет выпустить рассылку на всех пользователей или сомневается, подключается CRM-аналитик. Мы помогаем маркетологам: смотрим, как отписки влияют на финансовые показатели, рассчитываем баланс метрик позитива и негатива — упущенные к инкрементальным покупателям, и оцениваем очищенный эффект в покупателях.
Более подробно про методологию можно послушать в выступлении на ютуб-канале Авито: «Анализ пользовательского негатива от CRM коммуникаций»
Эксперимент с глобальной контрольной группой служит маркером для оценки эффекта от всех CRM-рассылок. Любой сотрудник Авито может изучить этот вопрос и посмотреть результаты теста с ГКГ. Но анализируют, подводят итоги и отвечают за методологию только горизонтальные CRM-аналитики.
Резюме: главное в проведении A/B-тестов для CRM-рассылок
A/B-эксперименты CRM-рассылок отличаются от продуктовых тестов, вот что стоит учитывать:
добавляйте пользователей в тестовую группу на этапе формирования сегмента рассылки, а не при входе на вашу площадку или в приложение.
исследуйте, как собирать метрики с эксперимента, чтобы они были наименее шумными.
создавайте глобальную контрольную группу. Так, вы сможете измерять совокупный инкрементальный эффект от всех CRM-рассылок и отслеживать уставание пользователей.
начните выстраивать иерархию рассылок, если у вас уже есть автоматизированная платформа для отправки CRM-рассылок и количество регулярных кампаний только растёт.
подумайте, как сделать так, чтобы не спамить, а отправлять наиболее релевантные кампании пользователям. А также о том, как будете проверять свои решения на А/В-тестах.
Спасибо за уделённое статье время! Буду рад ответить на ваши вопросы в комментариях.