Вставка реклами на стороні клієнта (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 інтегрований через розширення ExoPlayer
ImaAdsLoader - Відтворення реклами використовує окремий
MediaSource, щоб уникнути забруднення буфера контенту - Обробляє життєвий цикл Activity — стан реклами зберігається при змінах конфігурації та роботі у фоновому режимі
- Android TV та мобільні пристрої використовують одну й ту ж логіку реклами з адаптаціями на рівні UI
Платформи підключених телевізорів
Roku (RAF — Roku Ad Framework)- Нативна бібліотека RAF від Roku розбирає маркери SCTE-35 безпосередньо з маніфестів HLS
RAF.setAdUrl()налаштовується з кінцевою точкою VAST; RAF обробляє рекламний запит, побудову рекламного блоку та відтворення- Підтримка супутньої реклами через колбеки RAF
renderStitchedAdтаrenderTrackingEvent - Сертифікація 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 об'єднуються для заповнення сигналізованої тривалості паузи
- Водоспад — Якщо основний рекламний сервер повертає «без заповнення», послідовно запитуються вторинні/третинні джерела попиту
- Підбір тривалості — Складальник блоків вибирає комбінації оголошень, які вписуються в тривалість паузи (допуск ±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 годин до базового впровадження.
Готові Трансформувати Свій Бізнес?
Давайте обговоримо, як ми можемо застосувати подібні рішення для ваших завдань.