Вставка реклами на стороні клієнта (CSAI) з парсингом маркерів SCTE-35 та інтеграцією багатоплатформного плеєра
Платформа потокового відео потребувала впровадження вставки реклами на стороні клієнта (CSAI) для веб-, мобільних програм та програм для підключених телевізорів — що забезпечує персоналізований рекламний досвід на рівні пристрою з повною підтримкою взаємодії з рекламою (натискні оверлеї, супутні банери, кнопки пропуску), який не може забезпечити вставка на стороні сервера.
Обговоріть Ваш Проєкт
Виклик
Раніше платформа використовувала виключно SSAI (вставка реклами на стороні сервера), що добре справлялося з монетизацією, але мало значні обмеження для інтерактивних рекламних кампаній:
- Зшита за допомогою SSAI реклама не підтримувала натискні оверлеї, супутні банери або інтерактивні рекламні блоки
- Відсутність можливості відстежувати події реклами на стороні клієнта (прогрес по кварталях, видимість, переходи за посиланням), що вимагається покупцями преміум-реклами
- Платформи підключених телевізорів (Roku, Fire TV, Apple TV) очікували CSAI для своїх нативних рекламних фреймворків та вимог до сертифікації
- Маркери SCTE-35 в HLS/DASH маніфестах мали парситися на стороні клієнта, але кожен SDK плеєра обробляв події маркерів по-різному
- Управління рекламними блоками (заповнення багатослотових рекламних пауз кількома оголошеннями) вимагало оркестрації на стороні клієнта
- Для захисту доходу на веб-платформах потрібні були виявлення блокувальників реклами та логіка відкату
- Попереднє завантаження реклами без переривання буфера контенту вимагало ретельного управління життєвим циклом плеєра
Наше Рішення
Ми розробили кросплатформенний фреймворк CSAI з уніфікованим рівнем оркестрації реклами, який парсить маркери SCTE-35 з HLS/DASH маніфестів, взаємодіє з рекламними серверами VAST/VMAP та керує життєвим циклом відтворення реклами на веб- (Video.js/Shaka), iOS (AVPlayer), Android (ExoPlayer) та підключених телевізійних плеєрах.
Архітектура
- Доставка контенту: потоки HLS/DASH з маркерами SCTE-35 через AWS MediaPackage + CloudFront
- Сервер прийняття рішень щодо реклами: Google Ad Manager (GAM) / SpotX з підтримкою VAST 4.2 та VMAP
- Веб-плеєр: Video.js з користувацьким парсером маркерів SCTE-35 та інтеграцією Google IMA SDK
- iOS-плеєр: AVPlayer зі слухачем
AVDateRangeMetadataGroupта IMA iOS SDK - Android-плеєр: ExoPlayer зі слухачем
MetadataOutputта IMA Android SDK - Підключені телевізори: нативні плеєри платформ (Roku RAF, Fire TV IMA, Apple TV AVKit) з адаптерами рекламних фреймворків
- Аналітика реклами: користувацький конвеєр подій для відстеження показів, кварталів, завершень, кліків та видимості
- Відкат: Доставка заставок/внутрішньої реклами, коли заповнення реклами недоступне або виявлено блокувальник реклами
Парсинг SCTE-35 на стороні клієнта
Маркери маніфесту HLS
Сигнали SCTE-35 з'являються в HLS маніфестах у двох форматах, обидва парсяться клієнтом:
EXT-X-DATERANGE (HLS v7+)- Плеєр прослуховує теги
#EXT-X-DATERANGEз атрибутамиSCTE35-OUTтаSCTE35-IN - Атрибути включають
PLANNED-DURATIONдля тривалості рекламної паузи таIDдля кореляції подій - Переважний формат для сучасних плеєрів (AVPlayer, ExoPlayer, Shaka)
#EXT-X-CUE-OUT:DURATION=позначає початок рекламної паузи#EXT-X-CUE-INпозначає повернення до контенту- Підтримується для зворотної сумісності зі старими плеєрами та кодувальниками
Маркери маніфесту DASH
- Сигнали SCTE-35 з'являються як елементи
у DASH MPD зschemeIdUri="urn:scte:scte35:2013:xml" - Елементи
містятьpresentationTime,durationта бінарне корисне навантаження SCTE-35, закодоване в base64 - Shaka Player та ExoPlayer парсять їх нативно через свої API слухачів подій
Потік обробки маркерів
- Виявлення — Слухач метаданих плеєра виявляє подію маркера SCTE-35 під час парсингу маніфесту
- Вилучення — Тривалість паузи, ID події та тип сегментації вилучаються з маркера
- Рекламний запит — Запит VAST/VMAP надсилається на сервер прийняття рішень щодо реклами з параметрами таргетингу (ID контенту, жанр, тип пристрою, сегмент користувача, гео)
- Планування рекламного блоку — Відповідь реклами парситься для побудови рекламного блоку (впорядкований список рекламних креативів, що заповнюють тривалість паузи)
- Попереднє завантаження — Рекламні креативи попередньо завантажуються під час відтворення контенту для усунення затримки на початку рекламної паузи
- Пауза та перемикання — Відтворення контенту призупиняється в точці маркера, плеєр перемикається на відтворення реклами
- Відтворення реклами — Реклама відтворюється послідовно з відстеженням кварталів, відображенням супутніх банерів та обробкою переходів за посиланням
- Відновлення — Після завершення рекламного блоку відтворення контенту відновлюється з точного кадру після точки маркера
Реалізації для конкретних платформ
Веб (Video.js + IMA SDK)
- Користувацький плагін Video.js перехоплює метадані
#EXT-X-DATERANGEчерез події зміни маркерівtextTrack - Google IMA HTML5 SDK керує VAST рекламними запитами, відтворенням реклами та відображенням супутніх елементів
- Оверлей рекламного контейнера розташовується над відеоелементом для підтримки переходів за посиланням та кнопки пропуску
- Виявлення блокувальника реклами за допомогою "канаркового" запиту — при виявленні відкат до внутрішньої реклами або відновлення контенту
- Підтримка preroll, midroll та postroll через VMAP або ручне планування точок маркерів
iOS (AVPlayer + IMA SDK)
AVPlayerItem.navigationMarkerGroupsтаAVDateRangeMetadataGroupвикористовуються для виявлення маркерів SCTE-35- Делегат
AVPlayerItemMetadataOutputспрацьовує на кожну подію маркера з розпарсеними часовими параметрами та корисним навантаженням - Google IMA iOS SDK обробляє VAST запити та відтворення реклами в окремому екземплярі
AVPlayer - Картинка в картинці (PiP) призупиняється під час рекламних пауз згідно з рекламною політикою платформи
- Обробка фонового аудіо — реклама не відтворюється у фоновому режимі
Android (ExoPlayer + IMA SDK)
Player.Listener.onMetadata()зMetadataOutputзахоплює події SCTE-35 з HLS/DASH- Google IMA Android SDK інтегровано через розширення
ImaAdsLoaderExoPlayer - Для відтворення реклами використовується окремий
MediaSource, щоб уникнути забруднення буфера контенту - Обробляє життєвий цикл Activity — стан реклами зберігається під час зміни конфігурації та переведення в фоновий режим
- Android TV та мобільні пристрої використовують одну й ту ж логіку реклами з адаптаціями рівня UI
Платформи підключених телевізорів
Roku (RAF — Roku Ad Framework)- Нативна бібліотека RAF Roku парсить маркери SCTE-35 безпосередньо з HLS маніфестів
RAF.setAdUrl()налаштований з VAST ендпоінтом; RAF обробляє рекламний запит, побудову рекламного блоку та відтворення- Підтримка супутньої реклами через колбеки
renderStitchedAdтаrenderTrackingEventRAF - Сертифікація Roku вимагає використання RAF — користувацькі рекламні плеєри відхиляються під час перевірки
- Використовує реалізацію Android ExoPlayer + IMA SDK, адаптовану для Leanback UI Fire TV
- Навігація D-pad для кнопки пропуску та переходу "Дізнатися більше" на рекламних оверлеях
- Fire TV Ad ID використовується для таргетингу реклами в VAST запитах
AVPlayerViewControllerзinterstitialTimeRangesдля нативних UI індикаторів рекламних пауз- Маркери SCTE-35 парсяться через
AVPlayerItemMetadataCollector - Відтворення реклами керується в окремому
AVQueuePlayerдля чистого розділення контенту/реклами - Обробник кліків з пульта tvOS для інтерактивних рекламних елементів
Управління рекламними блоками
- Заповнення блоку — Кілька VAST рекламних оголошень збираються для заповнення зазначеної тривалості паузи
- Каскад (Waterfall) — Якщо первинний рекламний сервер повертає "без заповнення", вторинні/третинні джерела попиту запитуються послідовно
- Підбір тривалості — Будівник блоку вибирає комбінації оголошень, що вписуються в тривалість паузи (±0.5с допуск)
- Дедуплікація — Той самий рекламний креатив не показується двічі в одному блоці
- Обмеження частоти показів — Обмеження на одного користувача, на одну сесію застосовуються на стороні клієнта, щоб уникнути втоми від реклами
- Бампери — Короткі бамперні креативи ("Ми скоро повернемося" / "Ласкаво просимо назад") огортають рекламні блоки
Відстеження рекламних подій та аналітика
- Стандартні VAST події —
impression,start,firstQuartile,midpoint,thirdQuartile,complete,skip,clickThrough - Видимість — Пікселі видимості MOAT/IAS спрацьовують на основі видимості рекламного вікна перегляду та порогів тривалості
- Користувацькі події — Події на рівні програми (початок/кінець рекламної паузи, показник заповнення блоку, час попереднього завантаження, спрацювання відкату)
- Серверний конвеєр — Клієнт надсилає події до легкого збирача подій, який розсилає їх до GAM, MOAT та внутрішнього аналітичного сховища
- Звірка — Звірка журналів на стороні сервера з подіями на стороні клієнта для виявлення розбіжностей
Обробка блокувальників реклами (Веб)
- Виявлення — "Канарковий" VAST запит до відомого рекламного домену; тайм-аут або блокування вказує на блокувальник реклами
- Стратегія відкату — Показувати внутрішню рекламу або промо-трейлери з CDN домену першої сторони
- Обмеження доступу до контенту — Опціональний "м'який" гейт: запропонувати користувачу внести сайт до білого списку перед відтворенням контенту
- Аналітика — Частота виявлення блокувальників реклами відстежується за браузером, географією та сторінкою
Ключові особливості
- Кросплатформенна CSAI — Уніфікована вставка реклами для веб, iOS, Android, Roku, Fire TV та Apple TV
- Парсинг SCTE-35 на клієнті — Парсинг HLS
EXT-X-DATERANGE,CUE-OUT/INта DASHEventStream - Інтерактивна реклама — Натискні оверлеї, супутні банери та кнопки пропуску на всіх платформах
- Оркестрація рекламних блоків — Заповнення багатослотових рекламних пауз за допомогою каскаду, підбору тривалості та дедуплікації
- Попереднє завантаження — Рекламні креативи попередньо завантажуються під час відтворення контенту для рекламних переходів без затримок
- Відстеження видимості — Інтеграція MOAT/IAS для вимог видимості від покупців преміум-реклами
- Відповідність вимогам підключених телевізорів — Інтеграції Roku RAF, Fire TV IMA та Apple TV AVKit, що відповідають вимогам сертифікації
- Стійкість до блокувальників реклами — Виявлення та відкат до внутрішньої реклами першої сторони на веб-платформі
Результати
Технологічний Стек
caseStudyDetail.more Кейси
Ознайомтесь з іншими нашими технічними впровадженнями
Сигналізація маркерів реклами SCTE-35 та конвеєр вставки трейлерів медіа
Компанії зі стрімінгу медіа потрібен був надійний, автоматизований конвеєр для впровадження маркерів реклами SCTE-35 у живі та VOD потоки, а також можливість вставляти промоційні трейлери (pre-roll, mid-roll, post-roll) у точно визначені позиції — що дозволяє монетизувати через канали FAST, живі події та бібліотеки контенту на вимогу.
Медіасервіси AWS для потокової передачі FAST каналів через SRT
Медіакомпанії потрібно було налагодити надійні канали внеску з низькою затримкою для своїх FAST каналів, використовуючи протокол Secure Reliable Transport (SRT), що дозволяє приймати високоякісний контент з віддалених студій, cloud playout systems та syndication partners через непередбачувані інтернет-з'єднання.
Часті запитання
MicrocosmWorks реалізувала парсер маніфестів, який витягує теги EXT-X-DATERANGE, що містять закодовані в base64 дані SCTE-35 splice_info_section, декодує команди сплайсингу та запускає запит на прийняття рішення щодо реклами до рекламного сервера VAST/VMAP з відповідною тривалістю паузи. Парсер обробляє як типи команд time_signal, так і splice_insert у маніфестах для прямого ефіру (live) та VOD.
MicrocosmWorks розробила спільний SDK для відтворення реклами з адаптерами для конкретних платформ для AVPlayer на iOS, ExoPlayer на Android, hls.js у вебі та нативних плеєрів на Roku та Fire TV. SDK нормалізує події життєвого циклу реклами, такі як показ, відстеження квартилей та завершення на всіх платформах, забезпечуючи уніфіковану звітність незалежно від пристрою відтворення.
MicrocosmWorks реалізував стратегію таймауту та відкату, де програвач чекає максимум 3 секунди на відповідь ad server, перш ніж відтворити стандартну заставку або перейти до наступного сегмента контенту. SDK також попередньо завантажує майбутні VAST відповіді рекламних пауз під час відтворення контенту, щоб мінімізувати затримку в точці фактичної перерви.
MicrocosmWorks інтегрував Open Measurement SDK (OM SDK) для верифікації видимості, сумісний з MOAT, IAS та DoubleVerify, а реалізація відстеження відповідає специфікаціям IAB VAST 4.2 для підрахунку показів та подій квартилів. Система також підтримує рекомендації IAB щодо вимірювання Video Ad Serving Template для точного звітування про показник завершення реклами.
MicrocosmWorks надає послуги з впровадження рекламних технологій за ставками $30-$50/год, при цьому повна система CSAI, що включає парсинг SCTE-35, інтеграцію VAST/VMAP та SDK мультиплатформних плеєрів для iOS, Android, web та CTV, зазвичай вимагає 600-900 годин розробки. Кожен додатковий адаптер платформи додає приблизно 80-120 годин до базового впровадження.
Готові Трансформувати Свій Бізнес?
Давайте обговоримо, як ми можемо застосувати подібні рішення для ваших завдань.