К-04 · RTB-ядро

Никаких
чёрных ящиков

Шлюзы, приёмник трафика, аукцион, плеер, антифрод и аналитика написаны нами и работают в нашей инфраструктуре. Ни одной чужой 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
kartonmedia.online · технологии01 / 09
Упаковка

Четыре способа отдать инвентарь

Любой из способов приводит запрос к одному каноническому виду. Что произойдёт с запросом дальше, от способа подключения не зависит.

  • 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
kartonmedia.online · приём трафика02 / 09
Плеер

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 у нас сейчас нет.

kartonmedia.online · плеер03 / 09
Досмотр

Девять проверок на каждом запросе

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

  1. 01Ботовые user-agent по управляемым сигнатурам
  2. 02Датацентровые IP и ASN вместо домашних сетей
  3. 03Несоответствие гео: заявленная страна против фактической
  4. 04Дубли запросов от одного источника
  5. 05Rate-limit по эндпоинту и по источнику
  6. 06Выходные узлы Tor
  7. 07Управляемые списки: адреса, приложения, домены
  8. 08Целостность объявленной цепочки поставки на запросе
  9. 09Частотные ограничения на пользователя

Режим на эндпоинт

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

Скоринг источников

Раз в час качество каждого источника пересчитывается в оценку от 0 до 100. Падение оценки уводит источник в карантин, устойчивое падение - в бан. История оценок остаётся в отчётах.

kartonmedia.online · антифрод04 / 09
Отчётность

Каждый запрос становится строкой

Событие пишется на каждый запрос, а не на каждый показ: видно и то, что выиграло аукцион, и то, что до него не дошло, с причиной отказа.

  • Событие каждого запроса уходит в ClickHouse
  • Часовые витрины держат отчёты кабинета почти в реальном времени
  • Разрезы до плейсмента и до конкретного креатива
  • Причина отказа по каждому запросу, а не общий процент брака
  • Выгрузка CSV из кабинета, без запроса менеджеру
  • Часовой пояс отчётов настраивается в кабинете
  • Цена фиксируется в момент показа: пересчёта задним числом нет
  • Журналы показов доступны сторонам для сверки
kartonmedia.online · аналитика05 / 09
Прозрачность

Цепочка поставки объявлена

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

SupplyChain 1.0
Объект schain уезжает с каждым запросом: покупатель видит всех участников цепочки до площадки.
sellers.json
Продавец раскрыт в публичном файле: карточка сверяется без переписки с менеджером.
ads.txt и app-ads.txt
Файлы площадок перепроверяет робот по расписанию, статус проверки виден в кабинете. Площадка без корректной записи в торги не попадает.
Сверка
Отчёты строятся из тех же событий, что и биллинг: цифры партнёра и наши сходятся построчно.
kartonmedia.online · цепочка поставки06 / 09
Деньги

Отчёт не переписывает историю

Ревшара фиксируется в момент показа и больше не меняется. Учёт ведётся двойной записью, поэтому расхождение между отчётом и балансом видно сразу, а не в конце месяца.

Учёт
Мультивалютный биллинг с двойной записью
Курс
Ставки приводятся к одной валюте в момент бида
Ревшара
Фиксируется на показе, задним числом не пересчитывается
Выплаты
Автоматически по расписанию, с net-отсрочками по договору
Документы
Договор в рублях с российским юридическим лицом, закрывающие документы по договору
kartonmedia.online · биллинг07 / 09
Отдельный контур

Первый экран телевизора

Интерфейсная реклама живёт в операционной системе телевизора: баннер на главном экране, до того как зритель выбрал контент. Это отдельный продукт рядом со стеком, а не разновидность видеорекламы.

Как это устроено

  • Место показа: главный экран, разделы и карусели интерфейса вендора
  • Переход по QR-коду: с пульта неудобно вводить адрес, человек продолжает на телефоне
  • Экосистемы: Hisense и Toshiba, Haier, Xiaomi, TCL, LG Channels, Yandex OS
  • Покупка бронированием у площадки понедельно или на месяц, вне RTB-аукциона

Границы продукта

Инвентарь принадлежит партнёрскому sales house, который работает по прямым контрактам с производителями телевизоров. Мы выступаем агентством: приводим клиента, собираем медиаплан и ведём размещение.

Аукцион, антифрод и лог-уровневая отчётность платформы к этим размещениям не применяются: источник статистики здесь площадка партнёра, и в отчёте мы это разделяем. Размеры макетов, доступные объёмы и сроки подтверждает площадка под конкретный бриф.

данные о поверхностях приводит партнёр, это не наш замер

инвентарь партнёрского sales house08 / 09
Паспорт стека

Технические характеристики

Одна таблица вместо переписки. Если строки здесь нет, значит этого в платформе нет.

Протоколы спроса
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-аукциона платформы; статистику даёт площадка

Порядок маркировки и распределение обязанностей разобраны отдельно: маркировка и закон.

kartonmedia.online · паспорт стека09 / 09
Дальше

Разберём стек с вашей командой

Час с инженерами платформы: архитектура, интеграция, нагрузка, вопросы безопасности. Без менеджеров посередине. А кабинет можно открыть прямо сейчас.

Регистрация - 3 шага: почта, пароль, код из письма. Кабинет открыт сразу; обмен трафиком - после проверки менеджером