Asiakaspuolen mainosten upotus (CSAI) SCTE-35-merkkien jäsennyksellä ja monialustaisen soittimen integroinnilla
Videoiden suoratoistoalustan piti toteuttaa Client-Side Ad Insertion (CSAI) verkko-, mobiili- ja Connected TV -sovellusten yli — mahdollistaen personoidut, laitekohtaiset mainoskokemukset täydellä mainosinteraktion tuella (klikkaavat peittokuvat, kumppanibannerit, ohituspainikkeet), joita server-side insertion ei voi tarjota.
Keskustele Projektistasi
Haaste
Alusta käytti aiemmin yksinomaan SSAI:ta (server-side ad insertion), joka hoiti kaupallistamisen hyvin, mutta siinä oli merkittäviä rajoituksia interaktiivisten mainoskokemusten osalta:
- SSAI-liitetyt mainokset eivät tukeneet klikattavia peittokuvia, kumppanibannereita tai interaktiivisia mainosyksiköitä
- Ei kykyä seurata asiakaspuolen mainostapahtumia (neljännesedistys, näkyvyys, läpiklikkaus), joita premium-mainosten ostajat vaativat
- Connected TV -alustat (Roku, Fire TV, Apple TV) odottivat CSAI:ta natiivimainoskehyksiinsä ja sertifiointivaatimuksiinsa
- SCTE-35-markkerit HLS/DASH-manifesteissä piti jäsentää asiakaspuolella, mutta jokainen player SDK käsitteli cue-tapahtumia eri tavoin
- Mainospodin hallinta (usean mainospaikan mainoskatkojen täyttäminen useilla mainoksilla) vaati asiakaspuolen orkestrointia
- Mainosestoja havainnoiva ja varautumislogiikkaa tarvittiin suojaamaan tuloja verkkoalustoilla
- Mainosten esilataus keskeyttämättä sisältöpuskuria vaati huolellista soittimen elinkaaren hallintaa
Meidän Ratkaisumme
Rakensimme alustarajat ylittävän CSAI-kehyksen yhtenäisellä mainosten orkestrointikerroksella, joka jäsentää SCTE-35-markkerit HLS/DASH-manifesteista, kommunikoi VAST/VMAP-mainospalvelimien kanssa ja hallitsee mainosten toistoelinkaarta verkossa (Video.js/Shaka), iOS:ssä (AVPlayer), Androidissa (ExoPlayer) ja Connected TV -soittimissa.
Arkkitehtuuri
- Sisällönjakelu: HLS/DASH-striimit SCTE-35-markkereilla AWS MediaPackagen + CloudFrontin kautta
- Mainospäätöspalvelin: Google Ad Manager (GAM) / SpotX VAST 4.2- ja VMAP-tuella
- Verkkosoitin: Video.js mukautetulla SCTE-35 cue -jäsentäjällä ja Google IMA SDK -integraatiolla
- iOS-soitin: AVPlayer
AVDateRangeMetadataGroup-kuuntelijalla ja IMA iOS SDK:lla - Android-soitin: ExoPlayer
MetadataOutput-kuuntelijalla ja IMA Android SDK:lla - Connected TV: Alustojen natiivisoittimet (Roku RAF, Fire TV IMA, Apple TV AVKit) mainoskehysadaptereilla
- Mainosanalytiikka: Mukautettu tapahtumaputki impression, quartile, completion, click ja viewability -seurantaan
- Varautuminen: Slate/house-ad -toimitus, kun mainostäyttöä ei ole saatavilla tai mainosesto havaittu
SCTE-35 asiakaspuolen jäsennyksen (parsing)
HLS-manifestin markkerit
SCTE-35-signaalit ilmestyvät HLS-manifesteihin kahdessa muodossa, molemmat asiakaspuolen jäsentämiä:
EXT-X-DATERANGE (HLS v7+)- Soitin kuuntelee
#EXT-X-DATERANGE-tagejaSCTE35-OUT- jaSCTE35-IN-attribuuteilla - Attribuutit sisältävät
PLANNED-DURATION-arvon mainoskatkon pituutta varten jaID-arvon tapahtumien korrelointiin - Suosittu formaatti moderneille soittimille (AVPlayer, ExoPlayer, Shaka)
#EXT-X-CUE-OUT:DURATION=merkitsee mainoskatkon alkua#EXT-X-CUE-INmerkitsee paluuta sisältöön- Tuettu taaksepäin yhteensopivuutta varten vanhempien soittimien ja enkoodereiden kanssa
DASH-manifestin markkerit
- SCTE-35-signaalit ilmestyvät
-elementteinä DASH MPD:ssä, jossa onschemeIdUri="urn:scte:scte35:2013:xml" -elementit sisältävätpresentationTime-,duration- ja base64-koodatun SCTE-35-binaarikuorman- Shaka Player ja ExoPlayer jäsentävät nämä natiivisti tapahtumakuuntelija-API-rajapintojensa kautta
Merkkien käsittelyvirta
- Tunnistus — Soittimen metatietokuuntelija havaitsee SCTE-35 cue -tapahtuman manifestin jäsennyksen aikana
- Uutto — Katkon kesto, tapahtuman ID ja segmentointityyppi uutetaan markkerista
- Mainospyyntö — VAST/VMAP-pyyntö lähetetään mainospäätöspalvelimelle kohdistusparametreilla (content ID, genre, device type, user segment, geo)
- Podin suunnittelu — Mainosvastaus jäsennetään mainospodin rakentamiseksi (järjestetty luettelo mainosmateriaaleista, jotka täyttävät katkon keston)
- Esilataus — Mainosmateriaalit esiladataan sisällön toiston aikana mainoskatkon alun viiveen poistamiseksi
- Keskeytys ja vaihto — Sisällön toisto keskeytetään cue-kohdassa, soitin vaihtaa mainosten toistoon
- Mainosten toisto — Mainokset toistetaan peräkkäin neljännesseurannan, kumppanibannerien näytön ja läpiklikkausten käsittelyn kanssa
- Jatkaminen — Podin valmistuttua sisällön toisto jatkuu tarkasta kehyksestä cue-kohdan jälkeen
Alustakohtaiset toteutukset
Web (Video.js + IMA SDK)
- Mukautettu Video.js-plugin sieppaa
#EXT-X-DATERANGE-metatiedottextTrackcue -muutostapahtumien kautta - Google IMA HTML5 SDK hallitsee VAST-mainospyyntöjä, mainosten toistoa ja kumppanien renderöintiä
- Mainoskontainerin peittokuva sijoitetaan videon elementin yläpuolelle läpiklikkauksen ja ohituspainikkeen tuen varmistamiseksi
- Mainosestojen tunnistus kanarianpyynnöllä — varautuu house-mainoksiin tai sisällön jatkamiseen tunnistuksen yhteydessä
- Preroll-, midroll- ja postroll-tuki VMAP:n tai manuaalisen cue-kohdan ajoituksen kautta
iOS (AVPlayer + IMA SDK)
AVPlayerItem.navigationMarkerGroupsjaAVDateRangeMetadataGroupkäytetään SCTE-35 cue -tunnisteiden havaitsemiseenAVPlayerItemMetadataOutput-delegaatti käynnistyy jokaisessa cue-tapahtumassa jäsennetyn ajoituksen ja kuorman kanssa- Google IMA iOS SDK hoitaa VAST-pyynnön ja mainosten toiston erillisessä
AVPlayer-instanssissa - Picture-in-Picture (PiP) keskeytetään mainoskatkojen aikana alustan mainoskäytännön mukaisesti
- Taustaääni käsitellään — mainokset eivät toistu taustatilassa
Android (ExoPlayer + IMA SDK)
Player.Listener.onMetadata()yhdessäMetadataOutputin kanssa tallentaa SCTE-35-tapahtumat HLS/DASHista- Google IMA Android SDK integroitu ExoPlayerin
ImaAdsLoader-laajennuksen kautta - Mainosten toisto käyttää erillistä
MediaSource-instanssia estääkseen sisältöpuskurin saastumisen - Käsittelee Activity-elinkaarta — mainostila säilyy kokoonpanomuutosten ja taustalle siirtymisen välillä
- Android TV ja mobiili jakavat saman mainoslogiikan käyttöliittymätason mukautusten kanssa
Connected TV -alustat
Roku (RAF — Roku Ad Framework)- Roku:n natiivi RAF-kirjasto jäsentää SCTE-35-markkerit HLS-manifesteista suoraan
RAF.setAdUrl()konfiguroitu VAST-rajapinnalla; RAF hoitaa mainospyynnöt, podien rakentamisen ja toiston- Kumppanimainostuki RAF:n
renderStitchedAd- jarenderTrackingEvent-takaisinkutsujen kautta - Roku-sertifiointi vaatii RAF-käyttöä — mukautetut mainossoittimet hylätään tarkastuksen aikana
- Käyttää Android ExoPlayer + IMA SDK -toteutusta, joka on mukautettu Fire TV:n Leanback UI:lle
- D-pad-navigointi ohituspainikkeelle ja "Lue lisää" -läpiklikkaus mainospeittokuvissa
- Fire TV Ad ID -tunnusta käytetään mainosten kohdistukseen VAST-pyynnöissä
AVPlayerViewControllerinterstitialTimeRanges-ominaisuudella natiiveja mainoskatkon käyttöliittymäindikaattoreita varten- SCTE-35 cue -tunnisteet jäsennetään
AVPlayerItemMetadataCollectorin kautta - Mainosten toistoa hallitaan erillisessä
AVQueuePlayer-instanssissa sisällön ja mainosten selkeää erottelua varten - tvOS-kaukosäätimen klikkauskäsittelijä interaktiivisille mainoselementeille
Mainospodin hallinta
- Podin täyttö — Useita VAST-mainoksia kootaan täyttämään signaalin antama katkon kesto
- Waterfall — Jos ensisijainen mainospalvelin palauttaa "no-fill", toissijaisia/kolmannen tason kysyntälähteitä kysellään peräkkäin
- Keston sovittaminen — Podin rakentaja valitsee mainosyhdistelmiä, jotka sopivat katkon kestoon (±0.5s toleranssi)
- Duplikaattien poisto — Samaa mainosmateriaalia ei näytetä kahdesti yhdessä podissa
- Toistotiheyden rajoitus — Käyttäjä- ja istuntokohtaisia rajoituksia noudatetaan asiakaspuolella mainosväsymyksen välttämiseksi
- Puskurointi — Lyhyet bumper-mainosmateriaalit ("Olemme pian takaisin" / "Tervetuloa takaisin") kietovat mainospodit
Mainostapahtumien seuranta ja analytiikka
- Standardit VAST-tapahtumat —
impression,start,firstQuartile,midpoint,thirdQuartile,complete,skip,clickThrough - Näkyvyys (Viewability) — MOAT/IAS viewability-pikselit käynnistyvät mainoksen näkymän näkyvyyden ja keston kynnysarvojen perusteella
- Mukautetut tapahtumat — Sovellustason tapahtumat (mainoskatkon alku/loppu, podin täyttöaste, esilatauksen ajoitus, varautuminen käynnistyi)
- Palvelinputki — Asiakas lähettää tapahtumia kevyelle tapahtumakerääjälle, joka jakaa ne GAM:lle, MOAT:lle ja sisäiselle analytiikkavarastolle
- Täsmäytys — Palvelinpuolen lokien täsmäytys asiakaspuolen tapahtumien kanssa eroavaisuuksien havaitsemiseksi
Mainosestojen käsittely (Web)
- Tunnistus — Kanarian VAST-pyyntö tunnettuun mainosverkkotunnukseen; aikakatkaisu tai esto osoittaa mainoseston
- Varautumisstrategia — Tarjoa house-mainoksia tai promotiivisia trailereita ensimmäisen osapuolen CDN-verkkotunnuksesta
- Sisällön rajoitus — Valinnainen pehmeä portti: kehota käyttäjää lisäämään sivusto sallittujen luetteloon ennen sisällön toistoa
- Analytiikka — Mainosestojen tunnistusastetta seurataan selaimen, maantieteellisen alueen ja sivun mukaan
Keskeiset ominaisuudet
- Monialustainen CSAI — Yhtenäinen mainosten upotus verkossa, iOS:ssä, Androidissa, Rokussa, Fire TV:ssä ja Apple TV:ssä
- SCTE-35 asiakaspuolen jäsennyksen (parsing) — HLS
EXT-X-DATERANGE,CUE-OUT/INja DASHEventStream-jäsennykset - Interaktiiviset mainokset — Klikattavat peittokuvat, kumppanibannerit ja ohituspainikkeet kaikilla alustoilla
- Mainospodin orkestrointi — Usean mainoskatkon täyttö waterfall-mekanismilla, keston sovittamisella ja duplikaattien poistolla
- Esilataus — Mainosmateriaalit esiladataan sisällön toiston aikana nollaviiveisten mainossiirtymien varmistamiseksi
- Näkyvyyden seuranta (Viewability Tracking) — MOAT/IAS-integraatio premium-mainosten ostajien viewability-vaatimuksia varten
- Connected TV -vaatimustenmukaisuus — Roku RAF-, Fire TV IMA- ja Apple TV AVKit -integraatiot täyttävät sertifiointivaatimukset
- Mainosestojen sietokyky — Havaitseminen ja varautuminen ensimmäisen osapuolen house-mainoksiin verkossa
Tulokset
Teknologiapino
caseStudyDetail.more Tapaustutkimukset
Tutustu lisää teknisiin toteutuksiimme
SCTE-35-mainosmerkkisignalointi ja mediasisältöjen trailerien lisäysputki
Suoratoistomedian yritys tarvitsi vankan, automatisoidun putken SCTE-35-mainosmerkkien lisäämiseen live- ja VOD-streameihin, sekä kyvyn lisätä mainostrailereita (pre-roll, mid-roll ja post-roll) tarkasti ajoitettuihin kohtiin – mahdollistaen kaupallistamisen FAST-kanavilla, live-tapahtumissa ja tilaussisältökirjastoissa.
AWS Media Services FAST Channel -striimaukseen SRT:n kautta
Mediakonserni tarvitsi luotettavat, matalan viiveen kontribuutiosyötteet FAST-kanavilleen käyttäen Secure Reliable Transport (SRT) -protokollaa – mikä mahdollisti korkealaatuisen sisällön sisäänvedon etästudioilta, pilvipohjaisista playout-järjestelmistä ja syndikointikumppaneilta ennakoimattomien internet-yhteyksien yli.
Usein kysytyt kysymykset
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.
Valmis Muuttamaan Liiketoimintaasi?
Keskustellaan siitä, miten voimme soveltaa vastaavia ratkaisuja haasteisiisi.