MicrocosmWorksDijital Kozmosu Yenilikçi ve Mimari Olarak Tasarlamak
Hakkındaİletişim
MicrocosmWorksDijital Kozmosu Yenilikçi ve Mimari Olarak İnşa Etmek

Önemli BT çözümleri sunuyoruz. Teknoloji, güvenlik ve işletmelerin güvenilir, yenilikçi BT altyapısı ile büyümesine yardımcı olmaktan tutkuluyuz.

[email protected]
+91 7011868196
New Delhi, India

AI Büyüme Merkezi

AI MerkeziStartup İnovasyonuKurumsal Hızlandırıcı

Çözümler

Tüm ÇözümlerSağlık ve Fitness UygulamalarıAI Video PlatformuAI Ajan Geliştirme

Kaynaklar

ÖngörülerSektör RehberleriKullanım Durumu ŞablonlarıMimari KalıplarVaka Çalışmaları

Şirket

HakkımızdaİletişimÇalışmalarımız

Hizmetler

Dijital DanışmanlıkBulut AltyapısıSaaS GeliştirmeYapay Zeka GeliştirmeVideo Teknolojisi
ERP GeliştirmeZoho ÖzelleştirmeOdoo GeliştirmeSalesforce EntegrasyonuÖzel CRM Geliştirme
QuickBooks EntegrasyonuIoT ÇözümleriBlokzincir Geliştirme
Siber Güvenlik DanışmanlığıIT Desteği - L3

© 2026 MicrocosmWorks. Tüm hakları saklıdır.

Gizlilik PolitikasıHizmet Şartları
Öngörülere Geri Dön
Media Services

Sunucu Taraflı Reklam Ekleme

SCTE-35 işaretleyicilerini ve sunucu taraflı reklam eklemeyi bir FAST kanalına bağlayarak reklamların canlı akışa sorunsuz bir şekilde dikilmesini sağlamak.

Untitled (612 x 640 px) (512 x 640 px) (512 x 600 px).webpPankaj
•
July 22, 2026
•
Güncellendi July 30, 2026
•
7 min read
ChatGPT Image Jul 23, 2026, 11_34_43 AM (1).webp
7 min read

FAST kanalları, reklam aralarından gelir elde eder. Tüm iş modeli tek bir varsayıma dayanır: kanal "reklama geç" dediğinde, dinleyen her aşağı akış sistemi — ad server, SSAI splicer, smart-TV player — bunu tam olarak aynı anda, aynı süreyle duyar. SCTE-35, bu mesajı taşıyan standart protokoldür. Sessizce yanlış yapılırsa — ki sessizlik varsayılan hata modudur — reklamlar ya yayınlanmaz, yanlış karede başlar ya da yanlış sürede devam eder. İzleyici boş bir ekran görür. Gelir elde edilmez.

Bu, mStudio'nun FAST kanallarının operatör dostu girdilerden standartlara uygun SCTE-35 işaretlerini nasıl yaydığının ve bunu neden bir yerine her reklam arası için üç işaret olarak inşa ettiğimizin mühendislik hikayesidir.

Hızlı genel bakış

YönDetay
AlanAWS MediaLive FAST kanalları için SCTE-35 reklam arası sinyali
Operatör iş akışıProgram bazında reklam arası düzenleyici — saniye cinsinden konum, saniye cinsinden süre
Her arası için yayımlanan işaretlerÜç — reklam başlangıcı TimeSignal, SpliceInsert, reklam bitişi TimeSignal
Süre kısıtlamaları10–120 saniye, veri katmanında doğrulanmış
Aşağı akış tüketicileriOyuncular, ad server'lar ve AWS MediaTailor (tasarlandı ama henüz bağlanmadı) örnektir.
DurumSCTE-35 işaret yayını üretimde; SSAI entegrasyonu tasarım aşamasında

 

İş Problemi

Bir FAST kanalındaki her reklam arası bir gelir etkinliğidir. Kanal, "buraya bir reklam gelecek, 30 saniye sürecek, lütfen hazırlanın." diyen bir işaretleyici yayınlar. Aşağı akış sistemleri — Google Ad Manager, AWS MediaTailor, bölgesel ad server'lar, smart-TV player SDK'ları — bu işaretleyiciyi okur ve neyin ekleneceğine karar verir.

İşaretleyici doğru olduğunda, reklam arası sorunsuz çalışır, gösterim sayılır ve operatör ödeme alır. İşaretleyici yanlış olduğunda — yanlış süre, yanlış biçim, yanlış format — reklam sistemi bunu ya reddeder (reklam sunulmaz) ya da yanlış kabul eder (yanlış uzunlukta reklam veya bir sonraki programa taşan bir reklam). Her iki sonuç da gerçek paraya mal olur ve her ikisi de sessizce başarısız olur. Kanal akışa devam eder. İzleyici boş bir ekran veya garip bir kesinti görür. Gelir elde etme hattı sadece daha düşük sayılar üretir ve kovalanacak bir hata mesajı olmaz.

Mühendislik hedefi "reklamları desteklemek" değildir. Şudur: operatörün tanımladığı her reklam arası, operatörün seçtiği tam karede, her zaman standartlara uygun bir SCTE-35 sinyali olarak her aşağı akış tüketicisine ulaşmalıdır.

SCTE-35 Gerçekte Nedir (90 Saniyelik Versiyonu)

SCTE-35, bir video akışına işaret mesajları eklemek için bir standarttır. İşaretler reklam içeriği taşımaz; sinyaller taşır — "reklam arası burada başlar," "reklam arası burada biter," "bu segment N saniye uzunluğundadır." Aşağı akış sistemi bu sinyalleri okur ve bunlara göre hareket eder: bir SSAI katmanı gerçek bir reklam yaratıcılığını HLS manifestine ekler, bir smart-TV player bir bindirme tetikler, bir ad server bir reklam alanı fırsatını kaydeder.

Kullanım durumumuz için iki işaret şekli önemlidir:

  • SpliceInsert — orijinal SCTE-35 işareti. Bir SpliceEventId, saniye cinsinden bir süre ve bir "ağ dışı" bayrağı taşır. Çoğu klasik ad server bunu okur.
  • TimeSignal — daha yeni, daha açıklayıcı işaret. Bir SegmentationDescriptor ile birlikte bir SegmentationTypeId (52 = Sağlayıcı Reklam Başlangıcı, 53 = Sağlayıcı Reklam Bitişi) ve 90.000-tik birimlerinde bir SegmentationDuration taşır. SSAI sistemleri ve modern oynatıcılar bu şekli tercih eder çünkü başlangıç ve bitiş arasında temiz bir şekilde eşleşir.

Her iki şekil de doğru SCTE-35'tir. Farklı aşağı akış tüketicileri farklı olanları tercih eder. Yalnızca bir şekil yayınlamak, kazanabileceğiniz geliri masada bırakır.

Neden önemli. Basit bir uygulama, her reklam arası için bir SpliceInsert yayınlar ve işi bitmiş sayar. Reklam arası eski oynatıcılarda çalışır ancak SSAI'de sessizce bozulur. Reklam envanterinizin yarısı gelir getirir; yarısı getirmez. Hangisinin hangisi olduğunu, gelir rakamlarınız düşük gelene kadar bilemezsiniz.

Basit Yaklaşımlar Neden Başarısız Olur

Kestirme yollar cazip gelir çünkü hepsi neredeyse çalışır.

  • "Kodlama anında, orijinal videoya reklamları ekle." Esneklik alanı yok. Operatör yerleşimi A/B-test edemez, dağıtım sonrası reklamları değiştiremez, bölgesel veya hedef kitleye yönelik reklamlar yayınlayamaz. FAST kanallarının var olmasının tüm nedeni, aynı içeriği birden fazla yolla paraya çevirmektir — kodlama anında reklamları yakmak bu olanağı ortadan kaldırır.
  • "İstemci taraflı reklam eklemeyi kullan." Reklam engelleme basittir. Cihaz başına farklı kod yolu. Sunucu taraflı kişiselleştirme yok. Ve SSAI'yi tamamen atlar, bu da daha düşük CPM'ler anlamına gelir.
  • "Her arası için yalnızca bir SpliceInsert yayınla." En yaygın üretim hatası. Bazı oynatıcılarda çalışır, başlangıç/bitiş eşleştirmesi için TimeSignal işaretleri isteyen SSAI sistemleri tarafından sessizce göz ardı edilir. Araştırılacak bir hata olmadan kısmi gelir elde etme.
  • "Her şeyi 90 kHz tik olarak ifade et çünkü spesifikasyonda bahsediliyor." Spesifikasyon bundan daha can sıkıcıdır. SpliceInsert.Duration saniye cinsindendir. SegmentationDuration 90 kHz tik cinsindendir. Bunları karıştırmak, şema doğrulamadan geçen ve gönderilen, ancak oynatıcıda bozuk süreler olarak başarısız olan işaretler üretir. Kodlayıcı bunu yakalayamaz. Oynatıcı sadece arayı atlar.
  • "MediaLive'ın onaylamasına izin ver." Onaylamaz. MediaLive, çakışan araları, sıfır süreli araları ve imkansız segmentasyon sürelerini şikayet etmeden kabul eder. Onayın, MediaLive eylemi görmeden önce var olması gerekir.

Sahip olduğumuz kaldıraç, operatör kullanıcı arayüzü — reklam aralarının sadece {position, duration} çiftleri olduğu yer — ve her işaretin mükemmel olması gereken MediaLive zaman çizelgesi arasındaki sınırdı.

Çözümümüz

Reklam arasını uçtan uca birinci sınıf bir veri nesnesi olarak ele alın. Operatör bunu mümkün olan en basit terimlerle tanımlar. Arka uç, şema katmanında bir kez doğrular. Lambda, dağıtım anında bunu üç işaretlik bir yığına çevirir, her işaret kendi spesifikasyonunun gerektirdiği zaman tabanında ifade edilir. Yığındaki başka hiçbir şeyin SCTE-35 hakkında bilgi sahibi olmasına gerek yoktur — çeviri, diğer tüm zamanlama eylemlerine sahip aynı Lambda'da, tek bir fonksiyonda yer alır.

Diyagram 1 · Uçtan Uca Reklam İşaretleyicisi Hattı

Operator UI Validation Flow-2026-07-22-054745.webp


 

Mimari

  • Ön uç reklam arası düzenleyici — operatörler, program başına reklam aralarını bir konum ofseti (program başlangıcından saniye cinsinden) ve bir süre (saniye cinsinden) belirterek ekler. Ara reklam slotları, veri modelinin bir parçasıdır ve oynatma katmanı için hazırdır.
  • AdMarker koleksiyonu (MongoDB) — reklam araları içeren program başına bir belge, videoya referans verir. adBreaks[] dizisi, Mongoose'un kaydetme anında 10 ≤ duration ≤ 120 değerini uyguladığı {position, duration} öğelerini saklar. Ara reklamlar, aşağı akış eşleştirmesi için bir adBreakId referansı taşır.
  • NestJS arka ucu (schedule.service.ts) — dağıtım anında, her zamanlamayı kendi AdMarker'ına birleştirir ve alanları Lambda'nın sözleşmesine göre yeniden adlandırır (position → offsetSeconds, duration → durationSeconds). Tek toplu çekim, N+1 yok.
  • Lambda orkestratörü (fastChannel-lambda-fun/index.js) — SCTE-35 çevirisine sahiptir. Her reklam arası için, giriş anahtarlarını ve filigranları taşıyan aynı BatchUpdateScheduleCommand'a üç işaretli yığını yayınlar. Eylem adları programa göre sürümleştirilmiştir, böylece kısmi bir dağıtımdan sonra yetim süpürme bunları eşleştirebilir.
  • AWS MediaLive — eylemleri alır, operatörün seçtiği saniyede HLS manifestine #EXT-SCTE35 işaretleyicileri yayınlar.


 

Temel Mühendislik Kararları

1. Reklam arası başına üç işaret, bir değil

Her reklam arası, programdaki aynı mantıksal ana karşı üç ayrı eylem yayınlar.

Diyagram 2 · Tek Reklam Arası Yaşam Döngüsü

Program Ad Splice Insertion-2026-07-22-054554.webp


Başlangıç ve bitiş TimeSignal işaretleri bir SegmentationUpid paylaşır, böylece aşağı akış sistemleri bunları deterministik olarak eşleştirebilir. SpliceInsert, oynatıcı düzeyinde tekilleştirme için benzersiz bir SpliceEventId taşır. Farklı tüketiciler farklı işaretler okur. Üçünü de yayınlamak, bugün önemsediğimiz her sözleşmeyi ve yarınki her olası sözleşmeyi kapsar.

Yaygın üretim hatası. Bir SpliceInsert yayınlayıp ekosistemin geri kalanının çözeceğini varsaymak. SSAI sistemleri, eşleşen TimeSignal işaretleri olmayan araları sessizce bırakır; klasik ad server'lar yalnızca TimeSignal sinyallerini göz ardı eder. Üçü olmadan, her reklam arası aşağı akış yığınızın bazıları tarafından gelir elde edilir ve geri kalanlar tarafından kaçırılır — ve bunu günlüklerden değil, gelir raporundan öğrenirsiniz.

2. İki zaman tabanı, tek bir fonksiyonda uzlaştırıldı

SpliceInsert.Duration saniye cinsindendir. Bir TimeSignal tanımlayıcısındaki SegmentationDuration 90.000-tik birimindedir. Aynı mantıksal süre, iki kodlama — ve sahadaki en yaygın SCTE-35 hatası bunları karıştırmaktır.

Diyagram 3 · Zaman Dönüştürme Mantığı

3 Diagram.webp

 

Dönüşüm buildProgramActions içinde ve sadece orada yer alır. Bir işaret süresi yanlış çıktığında bakılacak tek bir standart yer ve spesifikasyon gelişirse değiştirilecek tek bir yer vardır.

Bilerek yaptığımız takas. Her iki zaman tabanını da AdMarker belgesinde saklayabilir ve Lambda'nın bunları kopyalamasına izin verebilirdik. Bilerek yapmadık: yalnızca saniye değerini saklamak, bir operatörün ayarlaması gereken, doğrulaması gereken ve yanlış olabilecek tek bir sayı olduğu anlamına gelir. 90 kHz değeri türetilmiştir, asla saklanmaz. Türetilmiş veriler sapamaz.

3. Konum görecelidir, tetikleme zamanı mutlaktır

Operatör "programın 720. saniyesinde reklam arası" der. Lambda, gerçek UTC tetikleme zamanını programStartTime + offsetSeconds × 1000 olarak hesaplar ve bunu eyleme damgalar. Diğer tüm zamanlama eylemleri — giriş anahtarı, filigran açma, program sonu — aynı ofsetten zaman damgasına boru hattını kullanır. Reklam işaretleri, diğer her şeyle aynı kare sınırlarına iner, zaman çizelgesine hangi saatin sahip olduğu konusunda belirsizlik olmaz.

4. Doğrulama veri katmanında, kabloda değil

AdMarker şeması, Mongoose kaydetme anında duration ∈ [10, 120] saniye aralığını uygular. Aralık dışı bir ara, Lambda'ya asla ulaşmaz. Program sonunu aşacak reklam araları reddedilmek yerine derleme zamanında kırpılır — operatörler tek bir kötü ara yüzünden çalışmalarını kaybetmezler. Meydana gelemeyecek hata sınıfları, meydana gelebileceklerden daha ilginçtir.

5. İşaret yayını SSAI'den ayrıldı

Bugün gönderdiğimiz şey sinyal katmanıdır. AWS MediaTailor aracılığıyla sunucu taraflı reklam ekleme — bu işaretleri gerçek reklam yaratıcılıklarını HLS manifestine eklemek için kullanacak olan — tamamen tasarlandı ancak henüz entegre edilmedi. Bilinçli sıralama: SSAI'yi açmadan önce işaret katmanını üretimde, gerçek kanallar tarafından kullanılarak önce doğru hale getirmek. Entegrasyon devreye girdiğinde, işaretler zaten orada olacaktır. Aşağı akış sistemi, ilk günden itibaren tüketmek için temiz bir sözleşme alır.

Bu sıralama neden önemli. İşaretleriniz yanlış olduğunda SSAI hata ayıklaması zordur, çünkü işaretler hatalı olsa bile her hata bir SSAI hatası gibi görünür. İşaret katmanını önce ayrı olarak göndererek ve gerçek oynatıcılar ve ad server'lar üzerinde doğrulayarak, entegrasyon karışıklığının tüm bir kategorisini oluşmadan önce ortadan kaldırdık.

Sonuçlar

  • Bir operatörün tanımladığı her reklam arası, kanalın HLS manifestinde standartlara uygun üç işaretli bir SCTE-35 yığını yayınlar — doğru saniyede, doğru zaman tabanına göre.
  • Çeviri katmanı tek bir fonksiyonda yer alır. Spesifikasyon değişiklikleri veya yeni aşağı akış tüketicileri, kod tabanında bir av değil, tek bir dosya değişikliğidir.
  • Süre doğrulaması, herhangi bir işaret kodlayıcıya ulaşmadan önce veri katmanında çalışır. Operatör hataları, yayın anında sessizce değil, kullanıcı arayüzünde ortaya çıkar — hatalı işaretler MediaLive'a ulaşamaz.
  • İşaret üretimi deterministiktir: aynı operatör girişi, aynı SCTE-35 eylemlerini üretir, böylece aynı ara, her dağıtımda ve her kanalda aynı şekilde davranır.
  • Sinyalizasyon katmanı gönderildi ve yayında. SSAI tüketicisi (MediaTailor) tasarlandı ve entegre edilmeye hazır — ve entegre edildiğinde, mevcut her kanalın işaretleri zaten onu bekliyor olacaktır.

Teknoloji Yığını: AWS MediaLive · AWS Lambda · NestJS · MongoDB · TypeScript · Node 18 · SCTE-35 (Scte35TimeSignalSettings, Scte35SpliceInsertSettings) · AWS SDK v3

SSAISCTE-35Ad InsertionMediaTailor
Untitled (612 x 640 px) (512 x 640 px) (512 x 600 px).webp

Yazar Hakkında

Pankaj

AI & Cloud Solutions Expert at MicrocosmWorks

Building innovative AI-powered solutions and helping businesses transform through cutting-edge technology.

Daha fazla bilgi edinmek ister misiniz?

Bu çözümleri işletmeniz için nasıl uygulayabileceğimizi tartışmak için bizimle iletişime geçin.

İletişime Geçin

Sıkça Sorulan Sorular

SCTE-35 is the industry standard for signaling ad breaks in video streams. It enables ad servers, SSAI platforms, and players to insert commercials accurately, ensuring reliable monetization of FAST channels.

Using an ad-start TimeSignal, SpliceInsert, and ad-end TimeSignal ensures compatibility with both legacy ad servers and modern SSAI platforms, maximizing ad delivery and monetization.

AWS MediaLive inserts SCTE-35 markers into the HLS stream based on scheduled actions, allowing downstream systems such as SSAI platforms and video players to recognize and process ad breaks.

Validating ad-break duration and timing before deployment prevents malformed SCTE-35 cues from reaching MediaLive, reducing playback issues and protecting advertising revenue.

Accurate SCTE-35 markers ensure ad breaks occur at the correct time and duration, allowing ad servers and SSAI platforms to deliver ads reliably, improve fill rates, and maximize advertising revenue..

Comments (0)

Share your thoughts and join the conversation

Leave a Comment

Your email will not be published

No comments yet

Be the first to share your thoughts!