Привет! Меня зовут Антон Семенистый, я старший data science-инженер в Авито. Мы с коллегами разрабатываем алгоритмы платного продвижения, и нам часто приходится тестировать новые модели. Как оказалось, A/B-тесты не всегда дают верный результат в сравнении рекламных алгоритмов, поэтому мы перешли на split-тесты.

В статье рассказываю про преимущества split-тестов перед A/B для решения AdTech-задач, а также о том, почему и как мы используем эти тесты для ранжирования рекламных объявлений в поисковой выдаче.

Текст будет полезен DS-инженерам, аналитикам, продактам и всем, кто занимается разработкой рекламных алгоритмов.

Что внутри статьи:

Как работает платное продвижение на Авито

Сначала разберёмся, что происходит, когда продавец хочет купить платное продвижение — это поможет понять, почему A/B-тесты неэффективны.

Пользователь заходит на Авито, подаёт объявление и видит вот такой интерфейс:

Также система показывает прогнозируемый прирост просмотров. Например, если продавец выберет 7 дней продвижения с бюджетом 2 000 ₽, мы покажем, что это увеличит количество просмотров на 40%
Также система показывает прогнозируемый прирост просмотров. Например, если продавец выберет 7 дней продвижения с бюджетом 2 000 ₽, мы покажем, что это увеличит количество просмотров на 40%

Продавцу нужно задать два ключевых параметра:

  • бюджет — сколько денег он готов потратить на рекламу;

  • длительность — сколько дней будет работать продвижение.

После этого пользователь нажимает «Купить платное продвижение», и объявление попадает в рекламную систему.

Более подробно про платное продвижение согласно правилам Авито можно прочитать здесь.

Что происходит «под капотом». На техническом уровне система создаёт «кампанию продвижения». Это сущность, которая объединяет все параметры объявления: выбранный бюджет, срок, дополнительные настройки вроде автоуправления ставками. 

Кампания продвижения помогает отличить платные объявления от бесплатных и управлять их показами в поисковой выдаче.

Продвижение работает по аукционной модели — чем больше ставка и ожидаемая эффективность объявления, тем выше оно поднимется в поиске. Когда покупатель заходит в поиск или рекомендации, мы разыгрываем рекламный аукцион.

Шаг 1. Определяем количество рекламных мест. В каждом поисковом запросе или блоке рекомендаций есть ограниченное число позиций под рекламу. Например, может быть 2 платных места в топе выдачи.

Шаг 2. Отбираем кандидатов. Система выбирает все объявления, которые могут участвовать в аукционе, и фильтрует их по категории, региону и другим параметрам.

Шаг 3. Ранжируем объявления по ECPI. Для каждого объявления рассчитывается ECPI (Expected Cost Per Impression) — ожидаемая выручка за показ. 

Ставка — сумма, которую продавец готов платить за клик. А CTR (Click-Through Rate) — вероятность клика, предсказанная нашей моделью. 

В итоге ожидаемая выручка рассчитывается по такой формуле:

ECPI = Ставка × CTR

Схематично аукцион выглядит так
Схематично аукцион выглядит так

Если у двух продавцов одинаковая ставка, но у одного CTR выше, его объявление окажется выше в выдаче. Вот пример, как может выглядеть «конкурс» на рекламном аукционе.

Продавец

Ставка (₽)

Прогнозируемый CTR

ECPI (Ставка × CTR)

Итоговое место

А

50

10% (0.10)

5.0

1-е место

В

70

5% (0.05)

3.5

2-е место

С

90

2% (0.02)

1.8

3-е место

Продавец С хоть и предлагает самую высокую ставку, но его объявления не такие привлекательные для покупателей, поэтому побеждает продавец А

Списываем деньги со счёта продавца, только когда покупатель кликнул на его объявление. Так работает CPC-модель (cost per click). Этот механизм делает продвижение прозрачным: продавцы платят за реальный интерес к их товару или услуге.

Тут еще больше контента

Почему A/B-тесты не подходят для задач, связанных с рекламными аукционами

Часто нам приходится тестировать новые алгоритмы и виды аукциона. И в такие моменты всегда возникает вопрос: а как правильно это сделать? Логично, что нужно проводить A/B-тесты и сравнивать два алгоритма между собой.

На первый взгляд, всё просто: берём группу пользователей, случайным образом делим её на две части и показываем одной половине один алгоритм, а остальным — второй. 

Но когда речь заходит о рекламном аукционе, такой подход создаёт проблемы, из-за которых результаты теста могут быть некорректными.

A/B-тесты по пользователям дают искажённые результаты. Один из самых распространённых способов тестирования — разделение пользователей на две группы. Например, половине показываем аукцион 1, а остальным — аукцион 2.

Когда пользователь заходит на сайт и вводит запрос, система формирует выдачу в реальном времени и отбирает под него товары. Но из-за динамических ставок, ограниченного бюджета или разной конкуренции каждый раз в выдаче могут участвовать разные объявления.

В итоге может возникнуть ситуация, что объявление вообще не попадёт ни в одну, ни в другую группу теста.

Пример. Предположим, продавец продвигает объявление, и оно участвует в аукционе. В первой группе теста оно выиграло место в выдаче и набрало много кликов. Во второй вообще не попало в топ, потому что конкуренты изменили ставки.

В результате в одной группе мы видим хорошую эффективность, а в другой — почти нулевой трафик. Это искажает реальные данные и не даёт объективно сравнить аукционы.

Не учитывается стадия расходования бюджета. Даже если удастся добиться равномерного распределения объявлений между группами, есть ещё один важный фактор: бюджет рекламной кампании.

Продвижение работает с ограниченным бюджетом. Если одно и то же объявление попало в две группы теста в разное время, его бюджет может быть на разных стадиях расходования.

Пример. В первой группе объявление участвует в аукционе в начале рекламной кампании, когда у него большой бюджет. Продавец может делать высокие ставки и выигрывать топовые позиции. 

Во второй группе оно участвует в тесте в конце кампании, когда бюджет уже почти потрачен. Пользователь уже не может увеличивать ставки и проигрывает аукцион.

Такой эффект сильно искажает результаты: в А/Б-тестах разные виды аукционов могут оказаться лучше или хуже из-за разного расходования бюджета, а не из-за реального качества алгоритма. 

Разделение по продавцам не даёт полной картины. Ещё один вариант A/B-тестов — делить продавцов на группы. Одной группе показывать аукцион 1, второй группе — аукцион 2.

Проблема в том, что каждый продавец работает только с одной версией аукциона. Это значит, что одно и то же объявление никогда не будет участвовать в двух алгоритмах, и мы не сможем понять, какой действительно лучше.

Пример. Продавец A участвует в тесте с аукционом 1 и получает 200 кликов. Продавец B участвует в тесте с аукционом 2 и получает 180 кликов. Но мы не знаем, в чём причина разницы:

  • может, у продавца А просто лучше фотографии;

  • может, у продавца B неудачное время размещения;

  • может, сам алгоритм аукциона повлиял на результат.

Без возможности сравнивать один и тот же товар в двух системах тест теряет смысл.

Региональные и категориальные тесты создают слишком много шума. Мы проводили тесты в регионах и категориях и поняли, что прийти к точным результатам здесь ещё сложнее. Вот почему:

  • разные внешние условия. В одном регионе может быть кризис, а в другом — высокий спрос на товары. Это приведёт к разному поведению пользователей, и мы не сможем сравнить эффективность аукционов;

  • маленькие группы для тестов. Некоторые категории товаров слабо заполнены рекламой, поэтому тест может затянуться на месяцы из-за нехватки данных.

Если тестировать один и тот же аукцион на таких разных сегментах, его результаты будут размыты.

Жми сюда!

Как работают split-тесты, и чем они хороши

Split-тест — метод тестирования, при котором одно и то же объявление одновременно участвует в двух или более версиях аукциона, но с разделённым бюджетом и трафиком.

И вместо того чтобы делить пользователей или продавцов на группы, как в классическом A/B-тесте, split-тест делит саму рекламную кампанию — то есть единицей в нашей системе является не покупатель или продавец, а само продвижение. Так можно протестировать разные алгоритмы на одном и том же объекте и при этом исключить влияние внешних факторов.

В классических A/B-тестах вместо кампаний продвижений был бы весь трафик 
В классических A/B-тестах вместо кампаний продвижений был бы весь трафик 

Вот как это работает:

Продавец запускает продвижение. Выбирает бюджет, длительность и другие параметры кампании, после чего система создаёт «кампанию продвижения».

Система делит кампанию на две подкампании. Например, если тестируется два аукциона, то 50% бюджета идёт в аукцион 1, и ещё 50% бюджета идёт в аукцион 2.

Половина пользователей видит объявление в первом аукционе, вторая половина — во втором. Трафик также делится пропорционально.

Так как объявления, бюджет и условия одинаковы в обеих группах, можно объективно измерить разницу между алгоритмами.

Split-тестирование помогает сравнивать алгоритмы рекламы в чистых условиях. Классические A/B-тесты не учитывают влияние внешних факторов, что мешает точному анализу. Новый подход измеряет эффект без искажений.

Вот некоторые преимущества split-тестов перед A/B:

  • изменения тестируются на одном и том же объявлении: A/B-тесты сравнивают разные, а split-тесты — две версии одного и того же. Это значит, что результат чище: влияние конкуренции, бюджета и случайных факторов минимально.

  • исключается эффект взаимного влияния. В обычных A/B-тестах одно и то же объявление может попасть в разные условия: например, в группу A — в начале кампании, когда бюджет большой, а в группу B — в конце, когда бюджет почти потрачен. Это искажает результат. В split-тестах такого нет, потому что средства делятся пропорционально между версиями теста.

  • подход совместим с другими тестами. Split-тесты можно применять вместе с региональными или категориальными тестами. Например, запустить split-тест только в одном городе и получить чистые данные.

Как мы используем split-тесты

Механики аукциона по-разному влияют на рекламодателей и пользователей. Чтобы понять, какой из них работает лучше, мы протестировали VCG и аукцион первой цены с помощью split-тестов. Вот чем отличаются эти версии.

Аукцион первой цены — рекламодатель платит ставку, которую указал. Например, если продавец поставил 100 ₽ за клик, именно эта сумма спишется при переходе покупателя.

VCG — рекламодатель платит не свою ставку, а минимально необходимую сумму, которая покрывает убыток конкурентов. Например, если продавец поставил 100 ₽, но следующий продавец предложил 80 ₽, списанная сумма будет немного больше 80 ₽, а не 100 ₽.

Чтобы объективно сравнить аукционы, мы запустили split-тест. Вместо того чтобы разделять пользователей, мы разбили бюджет рекламных кампаний: 50% ушло в аукцион первой цены, а 50% — в VCG.

Одно и то же объявление участвует в обоих аукционах одновременно. Это даёт понять, какой алгоритм приносит больше кликов, целевых действий и дохода платформе, а также как меняется качество выдачи.

Мы только начали использовать split-тесты для тестирования аукционных механик, поэтому пока рано делать выводы о результатах. 

Данные продолжают накапливаться, и окончательные итоги появятся позже. Но уже сейчас split-тестирование показывает, что оно помогает объективно сравнивать алгоритмы без искажений, в отличие от традиционных A/B-тестов.

Кликни здесь и узнаешь

Вся статья коротко

Split-тесты — это способ проверить гипотезу с минимальным искажением данных. В отличие от классических A/B, split-тесты делят не пользователей, а одну кампанию на части и тестируют алгоритмы на одном объявлении.

Мы в Авито используем их для платного продвижения, чтобы сравнить, например, аукцион первой цены и VCG. Преимущества очевидны: чистые результаты без шума, точное понимание, какой алгоритм работает лучше, и никаких искажений из-за случайных условий. 

На момент написания статьи мы ещё собираем данные, но уже ясно: этот подход даёт более чистые результаты тестирования.

Если интересно, над какими ещё задачами работают дата-сайентисты в Авито — подписывайтесь на телеграм-канал «Доска AI-объявлений».

Что думаете о преимуществах split-тестов? Делитесь мнением в комментариях.

А если хотите вместе с нами помогать людям и бизнесу через технологии — присоединяйтесь к командам. Свежие вакансии есть на нашем карьерном сайте.

Комментарии (1)


  1. xSVPx
    14.07.2025 15:55

    Вы там в авито подкрутите что-нибудь себе :).

    Ладно, покупатели вам не нужны и вы решили по сохраненным поискам не списки нового присылать, а раз в две недели запросы на подтверждение. Но сами-то запросы зачем продолжать через день слать :)? У меня их сотни уже скопились бы, если бы я правило не настроил по их удалению.