Обзор клиента
Клиент — крупный медиа-провайдер и AdTech-компания, которая доставляла новостной и рекламный контент для сайтов с большим трафиком. Для бизнеса были критичны скорость загрузки, стабильность показа и точность рекламной аналитики: задержки напрямую влияли на вовлеченность пользователей и доход от рекламы.
Платформа работала в локальной облачной инфраструктуре клиента, а не в публичном облаке AWS или Azure. Поэтому наша команда не могла использовать их преимущества: автоматическое добавление вычислительных ресурсов, балансировку нагрузки и управляемые CDN.
Клиенту требовалась собственная рекламная платформа, которая запускала RTB-аукционы, выбирала рекламные предложения, считала показы и клики, доставляла разные форматы медийного контента и выдерживала высокий трафик.
Задача
Клиенту нужно было построить платформу, которая по скорости и надежности могла конкурировать с крупными рекламными и медиа-платформами, но работала внутри локальной инфраструктуры.
Основные задачи проекта:
- работать в локальной облачной инфраструктуре клиента без использования готовых облачных механизмов масштабирования и балансировки нагрузки;
- обрабатывать более 100 млн запросов в день;
- загружать рекламный и медиа-контент с задержкой на уровне миллисекунд;
- поддерживать разные форматы: текстовые блоки, изображения, видеофрагменты, HTML-виджеты, слайдеры и анимацию;
- учитывать показы, просмотры и клики с минимальной задержкой;
- передавать точные данные для биллинга, отчетности и рекламной аналитики;
- разработать не набор отдельных модулей, а готовую платформу с административными панелями, отчетностью, импортом и экспортом данных;
- разработать модуль учета показов и кликов.
Краткий обзор проекта
Мы разработали высоконагруженную платформу для доставки контента и RTB-рекламы на базе .NET.
MS SQL Always-On Cluster использовался как основная база данных, а Redis хранил счетчики показов и кликов в памяти и ускорял доступ к часто запрашиваемым данным. Redis обновлял данные по показам, просмотрам и кликам почти мгновенно, что было критично для рекламной аналитики и расчета стоимости показов.
Команда СКЭНД также построила сеть для загрузки и показа рекламных материалов для локальной инфраструктуры клиента. Она распределяла изображения, видеофрагменты, HTML-блоки и другие рекламные форматы без зависимости от внешних CDN-провайдеров.
Для DevOps-команды мы разработали систему мониторинга, которая показывала загрузку Redis, состояние сети загрузки контента и ход длительных расчетов в рекомендательной системе.
Отказоустойчивость реализовали на уровне инфраструктуры и приложения. При сбоях оборудования платформа автоматически переключалась на рабочие узлы и восстанавливала сервисы без остановки рекламного процесса.
Решение
RNetPlus развернули в локальной облачной инфраструктуре клиента. Публичные облачные сервисы и готовые CDN не соответствовали целям клиента, поэтому команда СКЭНД отдельно оптимизировала приложение, Redis, MS SQL и собственную сеть доставки контента.
Платформа обрабатывала полный цикл рекламного показа.
Сначала система определяла пользователя по цифровому профилю. Затем запускала быстрый DSP-аукцион и выбирала рекламное предложение с учетом релевантности, истории кликов, популярности материалов и параметров кампании. После этого платформа показывала пользователю выбранный рекламный или новостной блок: изображение, видеофрагмент, HTML5-слайдер или другой интерактивный формат.
Типовая нагрузка составляла около 100 млн просмотров в день. Даже при таком объеме платформа сохраняла задержку на уровне миллисекунд.
Ключевые возможности
- собственная сеть доставки контента с кэшированием рекламного и медийного контента;
- учет показов, просмотров и кликов почти в реальном времени;
- Redis для хранения счетчиков показов и кликов и быстрого обновления статистики;
- размещение рекламного контента с задержкой на уровне миллисекунд при нагрузке более 100 млн запросов в день;
- поддержка текстовых блоков, изображений, видеофрагментов, HTML-виджетов, слайдеров и анимированных форматов;
- RTB-аукционы и DSP-логика для выбора рекламного предложения под конкретного пользователя;
- интеграция с DMP для формирования пользовательских профилей и таргетированной доставки рекламы;
- рекомендательная система для подбора новостей и рекламных блоков;
- административные панели, отчетность, импорт и экспорт данных;
- мониторинг использования ресурсов, состояния сети доставки контента и производительности расчетных модулей;
- автоматическое переключение при сбое оборудования и восстановление после сбоев.
Технологический стек
- Основная платформа: .NET
- База данных: MS SQL Server, MS SQL Always-On Cluster
- Кэширование и счетчики: Redis
- Инфраструктура: Локальная облачная инфраструктура на виртуальных машинах
- Мониторинг и масштабирование: Собственные инструменты мониторинга и логика масштабирования
- AdTech-компоненты: DSP-аукционы, RTB-логика и интеграция с DMP
- Размещение контента: Собственная сеть размещения контента с кэшированием рекламного и медийного контента
Результаты
RNetPlus стала основной рекламной платформой для издателей и медиа-компаний с большим трафиком. Клиент получил рекламную инфраструктуру, которая работала без зависимости от публичных облачных сервисов и справлялась с трафиком крупных медиа-площадок.
В результате проект обеспечил несколько важных улучшений:
- платформа обрабатывала около 100 млн просмотров в день;
- собственная сеть размещения контента и кэширование помогли избежать зависимости от дорогих облачных CDN-сервисов;
- доставка рекламных блоков с задержкой на уровне миллисекунд повысила стабильность показа на сайтах с большим трафиком;
- точный учет показов, кликов и просмотров улучшил биллинг и рекламную отчетность;
- DSP-аукционы помогали выбирать наиболее ценные рекламные предложения для каждого показа;
- интеграция с DMP позволила учитывать пользовательские профили при таргетированной доставке рекламы;
- рекомендательная система подбирала контент с учетом истории кликов, популярности материалов и интересов пользователя;
- платформа продолжала доставлять рекламу при сбоях оборудования за счет автоматического переключения на рабочие узлы.
В одном из реальных случаев платформа восстановилась после сбоя MS SQL Always-On Cluster в рождественскую ночь. Доставка рекламы не остановилась, а последствия ограничились небольшими задержками в отчетности.