Никаких
чёрных ящиков
Шлюзы, приёмник трафика, аукцион, плеер, антифрод и аналитика написаны нами и работают в нашей инфраструктуре. Ни одной чужой white-label-коробки: запрос виден от приёма до показа и до строки в отчёте.
- Приём
- OpenRTB 2.5/2.6, VAST 2-4, тег, плеер, SDK, Prebid, s2s
- Аукцион
- Real-time auction, решение за десятки миллисекунд
- Досмотр
- 9 проверок на каждом запросе, скоринг источников
- Отчёт
- ClickHouse, часовые витрины, причины отказов по запросу
- RTB-ядро своё
- OpenRTB 2.5/2.6
- VAST 2-4
- Плеер 14 КБ без зависимостей
- 9 антифрод-проверок на запрос
- Маркировка: erid в VAST
Из чего собран стек
Шесть узлов одного конвейера. Все написаны внутри команды и обновляются вместе: приём трафика не может разойтись с аукционом, а аукцион с отчётом.
- 01Приём
Шлюзы и приёмник трафика
Запрос от тега, плеера, SDK или партнёрской сети приходит на собственные шлюзы на Go и нормализуется в один канонический вид. Дальше по маршруту едет один формат, а не шесть.
- Go
- OpenRTB 2.5/2.6
- VAST 2-4
- 02Торги
Аукцион и выдача
Свои кампании и внешний спрос стоят в одной очереди: сперва собственный спрос, затем внешние источники. Решение занимает десятки миллисекунд, ставки приводятся к одной валюте в момент бида.
- Go
- real-time auction
- Мультивалютность
- 03Досмотр
Антифрод
Девять проверок на каждом запросе плюс почасовой скоринг качества источников. Режим наблюдения показывает, что срезалось бы, до включения жёсткой блокировки.
- Realtime
- Наблюдение / блок
- Скоринг 0-100
- 04Данные
Аналитика на ClickHouse
Каждый запрос становится событием в ClickHouse. Часовые витрины держат отчёты кабинета почти в реальном времени, до плейсмента и креатива.
- ClickHouse
- Часовые витрины
- CSV
- 05Аудитории
Собственная DMP
Сегменты собираются по поведению, окна задаются в часах. Сегменты живут внутри платформы и доступны в таргетинге кабинета рекламодателя.
- Сегменты
- Окна в часах
- Opt-out
- 06Интерфейс
Кабинеты на React 19
Кабинет издателя и кабинет рекламодателя написаны той же командой, что и ядро: регистрация за минуту, 2FA, таргетинг, модерация, биллинг и выплаты. Языки интерфейса: русский и английский.
- React 19
- 2FA
- ru / en
Четыре способа отдать инвентарь
Любой из способов приводит запрос к одному каноническому виду. Что произойдёт с запросом дальше, от способа подключения не зависит.
- 01Тег
Плеер и баннерный тег
Асинхронный баннерный тег с IntersectionObserver и srcdoc-песочницей: соседний код страницы он не трогает. Видеоплеер ставится тем же способом.
- async
- IntersectionObserver
- srcdoc-sandbox
- 02VAST
VAST-эндпоинт в ваш плеер
Площадка остаётся на своём стеке воспроизведения и забирает VAST-эндпоинт. Поддерживаются VAST 2, 3 и 4; поле erid уезжает в разметку вместе с креативом.
- VAST 2-4
- erid
- 03OpenRTB
Прямое соединение
Для сетей и крупных площадок: OpenRTB 2.5/2.6, свои флоры и правила доступа к инвентарю, SupplyChain на каждом запросе.
- OpenRTB 2.6
- schain 1.0
- Флоры
- 04Прочее
SDK, Prebid, s2s
Эндпоинт для мобильных SDK, адаптер header bidding через Prebid и серверные фиды для партнёров, которые ходят server-to-server.
- Mobile SDK
- Prebid
- s2s
14 килобайт и ноль зависимостей
Собственный JS-плеер платформы: ставится одним тегом, не тянет за собой библиотек и не спорит с кодом страницы. Шесть форматов показа закрывают и in-stream, и out-stream размещения.
Форматы показа
- 01slider
- 02fullpage
- 03inpage
- 04embed
- 05interscroller
- 06floating
Плеер отдаёт события воспроизведения в отчётность на тех же правах, что и остальные события маршрута: показ, ошибки, отказы. Поле erid уезжает в VAST вместе с креативом, пометка «Реклама» отображается на экране.
Форма тега
<script async src="https://ВАШ_CDN_ХОСТ/player.js"
data-site="ВАШ_ID" data-format="instream"></script>Пример показывает форму тега. Фактический хост скрипта и значение data-site выдаются вместе с доступом; публичного CDN у нас сейчас нет.
Девять проверок на каждом запросе
Проверки перечислены поимённо, потому что закрытая методология ничего не доказывает. Каждая работает в двух режимах: наблюдение показывает, что срезалось бы, блокировка убирает запрос из торгов.
- 01Ботовые user-agent по управляемым сигнатурам
- 02Датацентровые IP и ASN вместо домашних сетей
- 03Несоответствие гео: заявленная страна против фактической
- 04Дубли запросов от одного источника
- 05Rate-limit по эндпоинту и по источнику
- 06Выходные узлы Tor
- 07Управляемые списки: адреса, приложения, домены
- 08Целостность объявленной цепочки поставки на запросе
- 09Частотные ограничения на пользователя
Режим на эндпоинт
Наблюдение или блокировка выставляются отдельно для каждого эндпоинта. Пока стоит наблюдение, отчёт показывает, сколько запросов ушло бы под нож и по какой причине. Решение о жёсткой блокировке принимается по цифрам, а не вслепую.
Скоринг источников
Раз в час качество каждого источника пересчитывается в оценку от 0 до 100. Падение оценки уводит источник в карантин, устойчивое падение - в бан. История оценок остаётся в отчётах.
Каждый запрос становится строкой
Событие пишется на каждый запрос, а не на каждый показ: видно и то, что выиграло аукцион, и то, что до него не дошло, с причиной отказа.
- Событие каждого запроса уходит в ClickHouse
- Часовые витрины держат отчёты кабинета почти в реальном времени
- Разрезы до плейсмента и до конкретного креатива
- Причина отказа по каждому запросу, а не общий процент брака
- Выгрузка CSV из кабинета, без запроса менеджеру
- Часовой пояс отчётов настраивается в кабинете
- Цена фиксируется в момент показа: пересчёта задним числом нет
- Журналы показов доступны сторонам для сверки
Цепочка поставки объявлена
Покупатель должен видеть, через чьи руки прошёл запрос. Мы объявляем цепочку на каждом запросе и проверяем чужие объявления роботом, а не на честном слове.
- SupplyChain 1.0
- Объект schain уезжает с каждым запросом: покупатель видит всех участников цепочки до площадки.
- sellers.json
- Продавец раскрыт в публичном файле: карточка сверяется без переписки с менеджером.
- ads.txt и app-ads.txt
- Файлы площадок перепроверяет робот по расписанию, статус проверки виден в кабинете. Площадка без корректной записи в торги не попадает.
- Сверка
- Отчёты строятся из тех же событий, что и биллинг: цифры партнёра и наши сходятся построчно.
Отчёт не переписывает историю
Ревшара фиксируется в момент показа и больше не меняется. Учёт ведётся двойной записью, поэтому расхождение между отчётом и балансом видно сразу, а не в конце месяца.
- Учёт
- Мультивалютный биллинг с двойной записью
- Курс
- Ставки приводятся к одной валюте в момент бида
- Ревшара
- Фиксируется на показе, задним числом не пересчитывается
- Выплаты
- Автоматически по расписанию, с net-отсрочками по договору
- Документы
- Договор в рублях с российским юридическим лицом, закрывающие документы по договору
Первый экран телевизора
Интерфейсная реклама живёт в операционной системе телевизора: баннер на главном экране, до того как зритель выбрал контент. Это отдельный продукт рядом со стеком, а не разновидность видеорекламы.
Как это устроено
- Место показа: главный экран, разделы и карусели интерфейса вендора
- Переход по QR-коду: с пульта неудобно вводить адрес, человек продолжает на телефоне
- Экосистемы: Hisense и Toshiba, Haier, Xiaomi, TCL, LG Channels, Yandex OS
- Покупка бронированием у площадки понедельно или на месяц, вне RTB-аукциона
Границы продукта
Инвентарь принадлежит партнёрскому sales house, который работает по прямым контрактам с производителями телевизоров. Мы выступаем агентством: приводим клиента, собираем медиаплан и ведём размещение.
Аукцион, антифрод и лог-уровневая отчётность платформы к этим размещениям не применяются: источник статистики здесь площадка партнёра, и в отчёте мы это разделяем. Размеры макетов, доступные объёмы и сроки подтверждает площадка под конкретный бриф.
данные о поверхностях приводит партнёр, это не наш замер
Технические характеристики
Одна таблица вместо переписки. Если строки здесь нет, значит этого в платформе нет.
- Протоколы спроса
- OpenRTB 2.5 / 2.6, VAST-эндпоинты, Prebid-адаптер, серверные фиды
- Форматы
- Баннер, in-stream и out-stream видео, CTV, push и in-page push, попандер, native
- Креативы
- VAST 2.0-4.x, баннерные и нативные креативы
- Аукцион
- Real-time auction, водопад «свои кампании, затем внешний спрос», управление флорами и таймаутами, решение за десятки миллисекунд
- Плеер
- Собственный JS-плеер, 14 КБ, ноль зависимостей, шесть форматов показа
- Антифрод
- 9 realtime-проверок на запрос, режимы наблюдения и блокировки на эндпоинт, почасовой скоринг источников 0-100
- Аналитика
- Событие на каждый запрос в ClickHouse, часовые витрины, разрезы до плейсмента и креатива, причины отказов, выгрузка CSV
- Требования к цепочке
- ads.txt / app-ads.txt у площадки, sellers.json у продавца, SupplyChain 1.0 на каждом запросе
- Маркировка и отчётность
- Поле erid передаётся в VAST; данные передаются в ОРД и выгружаются в ЕРИР через Яндекс ОРД
- Биллинг
- Мультивалютный учёт с двойной записью, ревшара фиксируется в момент показа, автовыплаты по расписанию с net-отсрочками
- Интерфейс Smart TV
- Баннеры на главном экране в ОС вендоров (Hisense и Toshiba, Haier, Xiaomi, TCL, LG Channels, Yandex OS) через партнёрский sales house
- Порядок закупки интерфейса
- Бронирование объёмов у площадки понедельно или на месяц, вне RTB-аукциона платформы; статистику даёт площадка
Порядок маркировки и распределение обязанностей разобраны отдельно: маркировка и закон.
Разберём стек с вашей командой
Час с инженерами платформы: архитектура, интеграция, нагрузка, вопросы безопасности. Без менеджеров посередине. А кабинет можно открыть прямо сейчас.
Регистрация - 3 шага: почта, пароль, код из письма. Кабинет открыт сразу; обмен трафиком - после проверки менеджером