Penyisipan Iklan Sisi Klien (CSAI) dengan Penguraian Penanda SCTE-35 & Integrasi Pemutar Multi-Platform
Sebuah platform streaming video perlu mengimplementasikan Client-Side Ad Insertion (CSAI) di seluruh aplikasi web, seluler, dan TV terhubung โ memungkinkan pengalaman iklan yang dipersonalisasi di tingkat perangkat dengan dukungan interaksi iklan penuh (overlay yang dapat diklik, banner pendamping, tombol lewati) yang tidak dapat disediakan oleh penyisipan sisi server.
Diskusikan Proyek Anda
Tantangan
Platform tersebut sebelumnya hanya menggunakan SSAI (server-side ad insertion), yang menangani monetisasi dengan baik tetapi memiliki keterbatasan signifikan untuk pengalaman iklan interaktif:
- Iklan yang disatukan SSAI tidak dapat mendukung overlay yang dapat diklik, banner pendamping, atau unit iklan interaktif
- Tidak ada kemampuan untuk melacak peristiwa iklan sisi klien (kemajuan kuartil, viewability, click-through) yang dibutuhkan oleh pembeli iklan premium
- Platform TV terhubung (Roku, Fire TV, Apple TV) mengharapkan CSAI untuk kerangka kerja iklan native dan persyaratan sertifikasi mereka
- Penanda SCTE-35 dalam manifest HLS/DASH perlu diurai di sisi klien, tetapi setiap SDK pemutar menangani peristiwa isyarat secara berbeda
- Manajemen pod iklan (mengisi jeda iklan multi-slot dengan beberapa iklan) membutuhkan orkestrasi sisi klien
- Deteksi pemblokir iklan dan logika fallback diperlukan untuk melindungi pendapatan di platform web
- Pemuatan awal iklan tanpa mengganggu buffer konten memerlukan manajemen siklus hidup pemutar yang cermat
Solusi Kami
Kami membangun sebuah kerangka kerja CSAI lintas platform dengan lapisan orkestrasi iklan terpadu yang mengurai penanda SCTE-35 dari manifest HLS/DASH, berkomunikasi dengan server iklan VAST/VMAP, dan mengelola siklus hidup pemutaran iklan di seluruh pemutar web (Video.js/Shaka), iOS (AVPlayer), Android (ExoPlayer), dan TV terhubung.
Arsitektur
- Pengiriman Konten: Stream HLS/DASH dengan penanda SCTE-35 melalui AWS MediaPackage + CloudFront
- Server Keputusan Iklan: Google Ad Manager (GAM) / SpotX dengan dukungan VAST 4.2 dan VMAP
- Pemutar Web: Video.js dengan pengurai isyarat SCTE-35 kustom dan Google IMA SDK integrasi
- Pemutar iOS: AVPlayer dengan pendengar
AVDateRangeMetadataGroupdan IMA iOS SDK - Pemutar Android: ExoPlayer dengan pendengar
MetadataOutputdan IMA Android SDK - TV Terhubung: Pemutar native platform (Roku RAF, Fire TV IMA, Apple TV AVKit) dengan adapter kerangka kerja iklan
- Analitik Iklan: Pipeline peristiwa kustom untuk pelacakan tayangan, kuartil, penyelesaian, klik, dan viewability
- Fallback: Pengiriman slate/house-ad ketika pengisian iklan tidak tersedia atau pemblokir iklan terdeteksi
Penguraian SCTE-35 Sisi Klien
Penanda Manifest HLS
Sinyal SCTE-35 muncul dalam manifest HLS dalam dua format, keduanya diurai oleh klien:
EXT-X-DATERANGE (HLS v7+)- Pemutar mendengarkan tag
#EXT-X-DATERANGEdengan atributSCTE35-OUTdanSCTE35-IN - Atribut termasuk
PLANNED-DURATIONuntuk durasi jeda iklan danIDuntuk korelasi peristiwa - Format yang disukai untuk pemutar modern (AVPlayer, ExoPlayer, Shaka)
#EXT-X-CUE-OUT:DURATION=<seconds>menandai awal jeda iklan#EXT-X-CUE-INmenandai kembali ke konten- Didukung untuk kompatibilitas mundur dengan pemutar dan encoder lama
Penanda Manifest DASH
- SCTE-35 signals appear as
<EventStream>elements in DASH MPD withschemeIdUri="urn:scte:scte35:2013:xml" <Event>elements containpresentationTime,duration, dan base64-encoded SCTE-35 binary payload- Shaka Player dan ExoPlayer mengurai ini secara native via their event listener APIs
Alur Pemrosesan Penanda
- Deteksi โ Pendengar metadata pemutar mendeteksi peristiwa isyarat SCTE-35 selama penguraian manifest
- Ekstraksi โ Durasi jeda, ID peristiwa, dan jenis segmentasi diekstraksi dari penanda
- Permintaan Iklan โ Permintaan VAST/VMAP dikirim ke server keputusan iklan dengan parameter penargetan (ID konten, genre, jenis perangkat, segmen pengguna, geo)
- Perencanaan Pod โ Respons iklan diurai untuk membangun pod iklan (daftar kreatif iklan yang terurut yang mengisi durasi jeda)
- Pemuatan Awal โ Kreatif iklan dimuat awal selama pemutaran konten untuk menghilangkan latensi saat jeda iklan dimulai
- Jeda & Beralih โ Pemutaran konten dijeda pada titik isyarat, pemutar beralih ke pemutaran iklan
- Pemutaran Iklan โ Iklan diputar secara berurutan dengan pelacakan kuartil, tampilan banner pendamping, dan penanganan click-through
- Lanjutkan โ Setelah pod selesai, pemutaran konten dilanjutkan dari bingkai yang tepat setelah titik isyarat
Implementasi Khusus Platform
Web (Video.js + IMA SDK)
- Plugin Video.js kustom menyadap metadata
#EXT-X-DATERANGEmelalui peristiwa perubahan isyarattextTrack - Google IMA HTML5 SDK mengelola permintaan iklan VAST, pemutaran iklan, dan rendering pendamping
- Overlay kontainer iklan diposisikan di atas elemen video untuk dukungan click-through dan tombol lewati
- Deteksi pemblokir iklan via permintaan canary โ beralih ke iklan internal atau melanjutkan konten saat terdeteksi
- Dukungan preroll, midroll, dan postroll melalui VMAP atau penjadwalan titik isyarat manual
iOS (AVPlayer + IMA SDK)
AVPlayerItem.navigationMarkerGroupsdanAVDateRangeMetadataGroupdigunakan untuk mendeteksi isyarat SCTE-35- Delegasi
AVPlayerItemMetadataOutputdipicu pada setiap peristiwa isyarat dengan waktu dan payload yang diurai - Google IMA iOS SDK menangani permintaan VAST dan pemutaran iklan dalam instans
AVPlayeryang terpisah - Picture-in-Picture (PiP) dijeda selama jeda iklan sesuai kebijakan iklan platform
- Audio latar belakang ditangani โ iklan tidak diputar dalam mode latar belakang
Android (ExoPlayer + IMA SDK)
Player.Listener.onMetadata()denganMetadataOutputmenangkap peristiwa SCTE-35 dari HLS/DASH- Google IMA Android SDK diintegrasikan melalui ekstensi
ImaAdsLoaderExoPlayer - Pemutaran iklan menggunakan
MediaSourceterpisah untuk menghindari pencemaran buffer konten - Menangani siklus hidup Activity โ status iklan dipertahankan di seluruh perubahan konfigurasi dan latar belakang
- Android TV dan seluler berbagi logika iklan yang sama dengan adaptasi lapisan UI
Platform TV Terhubung
Roku (RAF โ Roku Ad Framework)- Pustaka RAF native Roku mengurai penanda SCTE-35 dari manifest HLS secara langsung
RAF.setAdUrl()dikonfigurasi dengan endpoint VAST; RAF menangani permintaan iklan, pembangunan pod, dan pemutaran- Dukungan iklan pendamping melalui callback
renderStitchedAddanrenderTrackingEventRAF - Sertifikasi Roku memerlukan penggunaan RAF โ pemutar iklan kustom ditolak selama peninjauan
- Menggunakan implementasi Android ExoPlayer + IMA SDK yang diadaptasi untuk UI Leanback Fire TV
- Navigasi D-pad untuk tombol lewati dan click-through "Pelajari Lebih Lanjut" pada overlay iklan
- Fire TV Ad ID digunakan untuk penargetan iklan dalam permintaan VAST
AVPlayerViewControllerdenganinterstitialTimeRangesuntuk indikator UI jeda iklan native- Isyarat SCTE-35 diurai melalui
AVPlayerItemMetadataCollector - Pemutaran iklan dikelola dalam
AVQueuePlayerterpisah untuk pemisahan konten/iklan yang bersih - Penangan klik jarak jauh tvOS untuk elemen iklan interaktif
Manajemen Pod Iklan
- Pengisian Pod โ Beberapa iklan VAST dirakit untuk mengisi durasi jeda yang disinyalkan
- Waterfall โ Jika server iklan utama mengembalikan tanpa pengisian, sumber permintaan sekunder/tersier ditanyakan secara berurutan
- Penyesuaian Durasi โ Pembangun pod memilih kombinasi iklan yang sesuai dengan durasi jeda (toleransi ยฑ0.5 detik)
- Deduplikasi โ Kreatif iklan yang sama tidak ditampilkan dua kali dalam satu pod
- Pembatasan Frekuensi โ Batasan per-pengguna, per-sesi diterapkan di sisi klien untuk menghindari kelelahan iklan
- Bumpering โ Kreatif bumper singkat ("Kami akan segera kembali" / "Selamat datang kembali") membungkus pod iklan
Pelacakan & Analitik Peristiwa Iklan
- Peristiwa VAST Standar โ
impression,start,firstQuartile,midpoint,thirdQuartile,complete,skip,clickThrough - Viewability โ Piksel viewability MOAT/IAS dipicu berdasarkan visibilitas viewport iklan dan ambang durasi
- Peristiwa Kustom โ Peristiwa tingkat aplikasi (mulai/akhir jeda iklan, tingkat pengisian pod, waktu pemuatan awal, fallback dipicu)
- Pipeline Server โ Klien mengirimkan peristiwa ke pengumpul peristiwa ringan, yang menyebar ke GAM, MOAT, dan gudang analitik internal
- Rekonsiliasi โ Rekonsiliasi log sisi server dengan peristiwa sisi klien untuk deteksi perbedaan
Penanganan Pemblokir Iklan (Web)
- Deteksi โ Permintaan VAST canary ke domain iklan yang dikenal; batas waktu atau pemblokiran menunjukkan pemblokir iklan
- Strategi Fallback โ Menayangkan iklan internal atau trailer promosi dari domain CDN pihak pertama
- Pembatasan Konten โ Gerbang lunak opsional: meminta pengguna untuk memasukkan situs ke daftar putih sebelum konten diputar
- Analitik โ Tingkat deteksi pemblokir iklan dilacak per browser, geografi, dan halaman
Fitur Utama
- CSAI Lintas Platform โ Penyisipan iklan terpadu di seluruh web, iOS, Android, Roku, Fire TV, dan Apple TV
- Penguraian Klien SCTE-35 โ Penguraian HLS
EXT-X-DATERANGE,CUE-OUT/IN, dan DASHEventStream - Iklan Interaktif โ Overlay yang dapat diklik, banner pendamping, dan tombol lewati di semua platform
- Orkestrasi Pod Iklan โ Pengisian jeda multi-iklan dengan waterfall, penyesuaian durasi, dan deduplikasi
- Pemuatan Awal โ Kreatif iklan dimuat awal selama pemutaran konten untuk transisi iklan tanpa latensi
- Pelacakan Viewability โ Integrasi MOAT/IAS untuk persyaratan viewability pembeli iklan premium
- Kepatuhan TV Terhubung โ Integrasi Roku RAF, Fire TV IMA, dan Apple TV AVKit memenuhi persyaratan sertifikasi
- Ketahanan Pemblokir Iklan โ Deteksi dan fallback ke iklan internal pihak pertama di web
Hasil
Tumpukan Teknologi
caseStudyDetail.more Studi Kasus
Jelajahi lebih banyak implementasi teknis kami
Pipeline Pemberian Sinyal Penanda Iklan SCTE-35 & Penyisipan Trailer Media
Sebuah perusahaan media streaming membutuhkan pipeline yang tangguh dan otomatis untuk menyuntikkan penanda iklan SCTE-35 ke dalam siaran langsung dan VOD, bersama dengan kemampuan untuk menyisipkan trailer promosi (pre-roll, mid-roll, dan post-roll) pada posisi yang waktunya tepat โ memungkinkan monetisasi di seluruh saluran FAST, acara langsung, dan pustaka konten sesuai permintaan.
Layanan Media AWS untuk Streaming Saluran FAST melalui SRT
Sebuah perusahaan media membutuhkan untuk membangun feed kontribusi yang andal dan latensi rendah untuk saluran FAST mereka menggunakan protokol Secure Reliable Transport (SRT) โ memungkinkan penyerapan konten berkualitas tinggi dari studio jarak jauh, sistem playout cloud, dan mitra sindikasi melalui koneksi internet yang tidak dapat diprediksi.
Pertanyaan yang Sering Diajukan
MicrocosmWorks implemented a manifest parser that extracts EXT-X-DATERANGE tags containing base64-encoded SCTE-35 splice_info_section data, decodes the splice commands, and triggers the ad decision request to the VAST/VMAP ad server with the appropriate break duration. The parser handles both time_signal and splice_insert command types across live and VOD manifests.
MicrocosmWorks built a shared ad playback SDK with platform-specific adapters for AVPlayer on iOS, ExoPlayer on Android, hls.js on web, and native players on Roku and Fire TV. The SDK normalizes ad lifecycle events like impression, quartile tracking, and completion across all platforms, ensuring unified reporting regardless of the playback device.
MicrocosmWorks implemented a timeout and fallback strategy where the player waits a maximum of 3 seconds for an ad server response before playing a default slate or skipping to the next content segment. The SDK also pre-fetches upcoming ad break VAST responses during content playback to minimize latency at the actual break point.
MicrocosmWorks integrated Open Measurement SDK (OM SDK) for viewability verification compatible with MOAT, IAS, and DoubleVerify, and the tracking implementation follows IAB VAST 4.2 specifications for impression counting and quartile events. The system also supports IAB's Video Ad Serving Template measurement guidelines for accurate ad completion rate reporting.
MicrocosmWorks delivers ad technology implementations at rates of $30-$50/hr, with a full CSAI system including SCTE-35 parsing, VAST/VMAP integration, and multi-platform player SDKs for iOS, Android, web, and CTV typically requiring 600-900 development hours. Each additional platform adapter adds approximately 80-120 hours to the base implementation.
Siap Mentransformasi Bisnis Anda?
Mari diskusikan bagaimana kami dapat menerapkan solusi serupa untuk tantangan Anda.