İstemci Tarafında Reklam Ekleme (CSAI), SCTE-35 İşaretleyici Ayrıştırma ve Çok Platformlu Oynatıcı Entegrasyonu ile
Bir video akış platformu, sunucu tarafı reklam eklemenin sağlayamadığı tam reklam etkileşimi desteğiyle (tıklanabilir katmanlar, yardımcı banner'lar, atlama düğmeleri) kişiselleştirilmiş, cihaz düzeyinde reklam deneyimleri sunarak web, mobil ve akıllı TV uygulamaları genelinde Client-Side Ad Insertion (CSAI) uygulamasına ihtiyaç duyuyordu.
Projenizi Tartışın
Zorluk
Platform daha önce yalnızca SSAI (server-side ad insertion) kullanıyordu, bu da para kazanmayı iyi yönetiyordu ancak etkileşimli reklam deneyimleri için önemli sınırlamalara sahipti:
- SSAI ile birleştirilmiş reklamlar, tıklanabilir katmanları, yardımcı banner'ları veya etkileşimli reklam birimlerini destekleyemiyordu
- Premium reklam alıcıları tarafından istenen istemci tarafı reklam olaylarını (çeyrek ilerlemesi, görüntülenebilirlik, tıklama oranı) izleme yeteneği yoktu
- Akıllı TV platformları (Roku, Fire TV, Apple TV), kendi yerel reklam çerçeveleri ve sertifikasyon gereksinimleri için CSAI bekliyordu
- HLS/DASH manifest'lerindeki SCTE-35 işaretleyicilerinin istemci tarafında ayrıştırılması gerekiyordu, ancak her player SDK ipucu olaylarını farklı şekilde ele alıyordu
- Reklam pod yönetimi (birden fazla reklamla çoklu slotlu reklam aralarını doldurma) istemci tarafı orkestrasyonu gerektiriyordu
- Web platformlarında geliri korumak için reklam engelleyici tespiti ve yedekleme mantığı gerekiyordu
- İçerik arabelleğini kesintiye uğratmadan reklamları önceden yüklemek, dikkatli oynatıcı yaşam döngüsü yönetimi gerektiriyordu
Çözümümüz
HLS/DASH manifest'lerinden SCTE-35 işaretleyicilerini ayrıştıran, VAST/VMAP reklam sunucularıyla iletişim kuran ve web (Video.js/Shaka), iOS (AVPlayer), Android (ExoPlayer) ve akıllı TV oynatıcıları genelinde reklam oynatma yaşam döngüsünü yöneten bir çapraz platform CSAI çerçevesi oluşturduk.
Mimari
- İçerik Dağıtımı: AWS MediaPackage + CloudFront aracılığıyla SCTE-35 işaretleyicili HLS/DASH akışları
- Reklam Karar Sunucusu: VAST 4.2 ve VMAP destekli Google Ad Manager (GAM) / SpotX
- Web Oynatıcı: Özel SCTE-35 ipucu ayrıştırıcısı ve Google IMA SDK entegrasyonuna sahip Video.js
- iOS Oynatıcı: AVPlayer with
AVDateRangeMetadataGrouplistener and IMA iOS SDK - Android Oynatıcı: ExoPlayer with
MetadataOutputlistener and IMA Android SDK - Akıllı TV: Reklam çerçevesi adaptörlerine sahip platforma özel oynatıcılar (Roku RAF, Fire TV IMA, Apple TV AVKit)
- Reklam Analizi: Gösterim, çeyrek, tamamlanma, tıklama ve görüntülenebilirlik takibi için özel olay işlem hattı
- Yedekleme: Reklam dolumu mevcut olmadığında veya reklam engelleyici tespit edildiğinde slate/dahili reklam sunumu
SCTE-35 İstemci Tarafı Ayrıştırma
HLS Manifest İşaretleyicileri
SCTE-35 sinyalleri HLS manifest'lerinde, ikisi de istemci tarafından ayrıştırılan iki formatta görünür:
EXT-X-DATERANGE (HLS v7+)- Oynatıcı,
SCTE35-OUTveSCTE35-INniteliklerine sahip#EXT-X-DATERANGEetiketlerini dinler - Nitelikler, reklam arası uzunluğu için
PLANNED-DURATIONve olay korelasyonu içinIDiçerir - Modern oynatıcılar (AVPlayer, ExoPlayer, Shaka) için tercih edilen format
#EXT-X-CUE-OUT:DURATION=reklam arası başlangıcını işaretler#EXT-X-CUE-INiçeriğe dönüşü işaretler- Eski oynatıcılar ve kodlayıcılarla geriye dönük uyumluluk için desteklenir
DASH Manifest İşaretleyicileri
- SCTE-35 sinyalleri, DASH MPD'de
schemeIdUri="urn:scte:scte35:2013:xml"ileöğeleri olarak görünür öğeleripresentationTime,durationve base64 kodlu SCTE-35 ikili yükünü içerir- Shaka Player ve ExoPlayer bunları olay dinleyici API'leri aracılığıyla yerel olarak ayrıştırır
İşaretleyici İşleme Akışı
- Algılama — Oynatıcı metadata dinleyicisi, manifest ayrıştırma sırasında SCTE-35 ipucu olayını algılar
- Çıkarma — İşaretleyiciden ara süresi, olay ID'si ve segmentasyon tipi çıkarılır
- Reklam İsteği — Hedefleme parametreleri (içerik ID'si, tür, cihaz tipi, kullanıcı segmenti, coğrafi konum) ile reklam karar sunucusuna VAST/VMAP isteği gönderilir
- Pod Planlama — Bir reklam pod'u (ara süresini dolduran sıralı reklam yaratıcıları listesi) oluşturmak için reklam yanıtı ayrıştırılır
- Ön Yükleme — Reklam arası başlangıcındaki gecikmeyi ortadan kaldırmak için içerik oynatma sırasında reklam yaratıcıları önceden yüklenir
- Duraklatma ve Geçiş — İçerik oynatma ipucu noktasında duraklatılır, oynatıcı reklam oynatmaya geçer
- Reklam Oynatma — Reklamlar çeyrek takibi, yardımcı banner gösterimi ve tıklama yönetimi ile sırayla oynatılır
- Devam Etme — Pod tamamlandıktan sonra, içerik oynatma ipucu noktasından sonraki tam kareden devam eder
Platforma Özel Uygulamalar
Web (Video.js + IMA SDK)
- Özel Video.js eklentisi,
textTrackipucu değişiklik olayları aracılığıyla#EXT-X-DATERANGEmetadata'sını yakalar - Google IMA HTML5 SDK, VAST reklam isteklerini, reklam oynatmayı ve yardımcı gösterimini yönetir
- Tıklama ve atlama düğmesi desteği için video öğesinin üzerine reklam kapsayıcı katmanı yerleştirilir
- Kanarya isteği aracılığıyla reklam engelleyici tespiti — tespit edildiğinde dahili reklamlara veya içeriğe devam etmeye geri döner
- VMAP veya manuel ipucu noktası zamanlaması aracılığıyla preroll, midroll ve postroll desteği
iOS (AVPlayer + IMA SDK)
- SCTE-35 ipuçlarını tespit etmek için
AVPlayerItem.navigationMarkerGroupsveAVDateRangeMetadataGroupkullanılır AVPlayerItemMetadataOutputdelegesi, ayrıştırılmış zamanlama ve yük ile her ipucu olayında tetiklenir- Google IMA iOS SDK, VAST isteğini ve reklam oynatmayı ayrı bir
AVPlayerörneğinde ele alır - Platform reklam politikasına göre reklam araları sırasında Picture-in-Picture (PiP) duraklatılır
- Arka plan sesi yönetilir — reklamlar arka plan modunda oynatılmaz
Android (ExoPlayer + IMA SDK)
MetadataOutputilePlayer.Listener.onMetadata(), HLS/DASH'ten SCTE-35 olaylarını yakalar- Google IMA Android SDK, ExoPlayer'ın
ImaAdsLoaderuzantısı aracılığıyla entegre edilmiştir - Reklam oynatma, içerik arabelleğini kirletmemek için ayrı bir
MediaSourcekullanır - Activity yaşam döngüsünü yönetir — reklam durumu yapılandırma değişiklikleri ve arka planda çalışma sırasında korunur
- Android TV ve mobil, UI katmanı adaptasyonları ile aynı reklam mantığını paylaşır
Akıllı TV Platformları
Roku (RAF — Roku Ad Framework)- Roku'nun yerel RAF kütüphanesi, HLS manifest'lerinden SCTE-35 işaretleyicilerini doğrudan ayrıştırır
- VAST uç noktası ile yapılandırılmış
RAF.setAdUrl(); RAF, reklam isteğini, pod oluşturmayı ve oynatmayı yönetir - RAF'ın
renderStitchedAdverenderTrackingEventgeri çağırmaları aracılığıyla yardımcı reklam desteği - Roku sertifikasyonu RAF kullanımını gerektirir — özel reklam oynatıcıları inceleme sırasında reddedilir
- Fire TV'nin Leanback UI'sine uyarlanmış Android ExoPlayer + IMA SDK uygulamasını kullanır
- Reklam katmanlarında atlama düğmesi ve "Daha Fazla Bilgi Edinin" tıklaması için D-pad navigasyonu
- VAST isteklerinde reklam hedeflemesi için Fire TV Ad ID kullanılır
- Yerel reklam arası UI göstergeleri için
interstitialTimeRangesileAVPlayerViewController AVPlayerItemMetadataCollectoraracılığıyla ayrıştırılmış SCTE-35 ipuçları- Temiz içerik/reklam ayrımı için ayrı bir
AVQueuePlayeriçinde yönetilen reklam oynatma - Etkileşimli reklam öğeleri için tvOS uzaktan kumanda tıklama işleyicisi
Reklam Pod Yönetimi
- Pod Doldurma — Sinyal verilen ara süresini doldurmak için birden fazla VAST reklamı bir araya getirilir
- Şelale — Birincil reklam sunucusu doldurma yapmazsa, ikincil/üçüncül talep kaynakları sırayla sorgulanır
- Süreye Uydurma — Pod oluşturucu, ara süresine (±0.5s tolerans) uyan reklam kombinasyonlarını seçer
- Tekrarlama Önleme — Aynı reklam yaratıcısı tek bir pod'da iki kez gösterilmez
- Sıklık Sınırlaması — Reklam yorgunluğunu önlemek için istemci tarafında kullanıcı başına, oturum başına sınırlar uygulanır
- Bumper Kullanımı — Kısa bumper reklam yaratıcıları ("Hemen geri döneceğiz" / "Tekrar hoş geldiniz") reklam pod'larını çevreler
Reklam Olayı Takibi ve Analizi
- Standart VAST Olayları —
impression,start,firstQuartile,midpoint,thirdQuartile,complete,skip,clickThrough - Görüntülenebilirlik — Reklam görüntü alanının görünürlüğü ve süre eşikleri temel alınarak MOAT/IAS görüntülenebilirlik pikselleri tetiklenir
- Özel Olaylar — Uygulama düzeyinde olaylar (reklam arası başlangıcı/bitişi, pod doluluk oranı, ön yükleme zamanlaması, yedekleme tetiklendi)
- Sunucu İşlem Hattı — İstemci, olayları hafif bir olay toplayıcıya gönderir, bu da GAM, MOAT ve dahili analiz deposuna dağıtır
- Mutabakat — Tutarsızlık tespiti için sunucu tarafı günlük mutabakatı, istemci tarafı olaylarla yapılır
Reklam Engelleyici Yönetimi (Web)
- Algılama — Bilinen bir reklam alanına kanarya VAST isteği; zaman aşımı veya engelleme reklam engelleyiciyi gösterir
- Yedekleme Stratejisi — Birinci taraf CDN alanından dahili reklamlar veya tanıtım fragmanları sunulur
- İçerik Kısıtlama — İsteğe bağlı soft gate: içerik oynatılmadan önce kullanıcıdan siteyi beyaz listeye eklemesi istenir
- Analiz — Reklam engelleyici tespit oranı tarayıcı, coğrafya ve sayfa başına izlenir
Temel Özellikler
- Çapraz Platform CSAI — Web, iOS, Android, Roku, Fire TV ve Apple TV genelinde birleşik reklam ekleme
- SCTE-35 İstemci Ayrıştırma — HLS
EXT-X-DATERANGE,CUE-OUT/INve DASHEventStreamayrıştırma - Etkileşimli Reklamlar — Tüm platformlarda tıklanabilir katmanlar, yardımcı banner'lar ve atlama düğmeleri
- Reklam Pod Orkestrasyonu — Şelale, süreye uydurma ve tekrarlama önleme ile çoklu reklam aralarının doldurulması
- Ön Yükleme — Sıfır gecikmeli reklam geçişleri için içerik oynatma sırasında reklam yaratıcıları önceden yüklenir
- Görüntülenebilirlik Takibi — Premium reklam alıcısı görüntülenebilirlik gereksinimleri için MOAT/IAS entegrasyonu
- Akıllı TV Uyumluluğu — Sertifikasyon gereksinimlerini karşılayan Roku RAF, Fire TV IMA ve Apple TV AVKit entegrasyonları
- Reklam Engelleyiciye Direnç — Web'de algılama ve birinci taraf dahili reklamlara yedekleme
Sonuçlar
Teknoloji Yığını
caseStudyDetail.more Vaka Çalışmaları
Daha fazla teknik uygulamamızı keşfedin
SCTE-35 Reklam İşaretleyicisi Sinyalleşmesi ve Medya Fragman Ekleme Hattı
Bir akış medya şirketinin, canlı ve VOD yayınlarına SCTE-35 reklam işaretleyicileri eklemek için sağlam, otomatik bir hattına ihtiyacı vardı. Ayrıca, tanıtım fragmanlarını (pre-roll, mid-roll ve post-roll) hassas zamanlanmış konumlara ekleyebilme yeteneği de isteniyordu — bu sayede FAST kanalları, canlı etkinlikler ve isteğe bağlı içerik kütüphaneleri genelinde para kazanma (monetization) sağlanacaktı.
AWS Media Hizmetleri ile SRT Üzerinden FAST Kanal Akışı
Bir medya şirketi, FAST kanalları için Secure Reliable Transport (SRT) protokolünü kullanarak güvenilir, düşük gecikmeli katkı akışları oluşturmaya ihtiyaç duyuyordu. Bu sayede, uzak stüdyolardan, bulut yayın sistemlerinden ve sendikasyon ortaklarından öngörülemeyen internet bağlantıları üzerinden yüksek kaliteli içerik alımı mümkün hale geldi.
Sıkça Sorulan Sorular
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.
İşletmenizi Dönüştürmeye Hazır mısınız?
Zorluklarınıza benzer çözümler uygulamamızın yollarını konuşalım.