MicrocosmWorksInovasi dan Seni Bina Kosmos Digital
TentangHubungi
MicrocosmWorksMemperbaharui dan Merangka Kosmos Digital

Menyampaikan penyelesaian IT yang penting. Kami bersemangat tentang teknologi, keselamatan, dan membantu perniagaan berkembang melalui infrastruktur IT yang boleh dipercayai dan inovatif.

[email protected]
+91 7011868196
New Delhi, India

Pusat Pertumbuhan AI

AI HubInovasi PermulaanPemecut Perusahaan

Penyelesaian

Semua PenyelesaianAplikasi Kesihatan & KecergasanPlatform Video AIPembangunan Ejen AI

Sumber

WawasanPanduan IndustriPelan Tindakan Kes PenggunaanCorak Seni BinaKajian Kes

Syarikat

Tentang KamiHubungiKerja Kami

Perkhidmatan

Perundingan DigitalInfrastruktur AwanPembangunan SaaSPembangunan AITeknologi Video
Pembangunan ERPPenyesuaian ZohoPembangunan OdooIntegrasi SalesforcePembangunan CRM Tersuai
Integrasi QuickBooksPenyelesaian IoTPembangunan Blockchain
Perundingan Keselamatan SiberSokongan IT - L3

ยฉ 2026 MicrocosmWorks. Hak cipta terpelihara.

Dasar PrivasiTerma Perkhidmatan
Kembali ke Kajian Kes
Video EncodingDiterbitkan June 19, 2026 ยท Dikemas kini May 25, 2026

Client-Side Ad Insertion (CSAI) with SCTE-35 Marker Parsing & Multi-Platform Player Integration

A video streaming platform needed to implement Client-Side Ad Insertion (CSAI) across web, mobile, and connected TV apps โ€” enabling personalized, device-level ad experiences with full ad interaction support (clickable overlays, companion banners, skip buttons) that server-side insertion cannot provide.

Bincangkan Projek Anda
client-side-ad-insertion-csai.webp
Video Encoding
Domain
15
Technologies
6
Key Results
Delivered
Status

Cabaran

The platform was previously using SSAI (server-side ad insertion) exclusively, which handled monetization well but had significant limitations for interactive ad experiences:

  • SSAI-stitched ads could not support clickable overlays, companion banners, or interactive ad units
  • No ability to track client-side ad events (quartile progress, viewability, click-through) required by premium ad buyers
  • Connected TV platforms (Roku, Fire TV, Apple TV) expected CSAI for their native ad frameworks and certification requirements
  • SCTE-35 markers in HLS/DASH manifests needed to be parsed on the client, but each player SDK handled cue events differently
  • Ad pod management (filling multi-slot ad breaks with multiple ads) required client-side orchestration
  • Ad blocker detection and fallback logic were needed to protect revenue on web platforms
  • Preloading ads without interrupting content buffer required careful player lifecycle management

Penyelesaian Kami

We built a cross-platform CSAI framework with a unified ad orchestration layer that parses SCTE-35 markers from HLS/DASH manifests, communicates with VAST/VMAP ad servers, and manages ad playback lifecycle across web (Video.js/Shaka), iOS (AVPlayer), Android (ExoPlayer), and connected TV players.

Architecture

  • Content Delivery: HLS/DASH streams with SCTE-35 markers via AWS MediaPackage + CloudFront
  • Ad Decision Server: Google Ad Manager (GAM) / SpotX with VAST 4.2 and VMAP support
  • Web Player: Video.js with custom SCTE-35 cue parser and Google IMA SDK integration
  • iOS Player: AVPlayer with AVDateRangeMetadataGroup listener and IMA iOS SDK
  • Android Player: ExoPlayer with MetadataOutput listener and IMA Android SDK
  • Connected TV: Platform-native players (Roku RAF, Fire TV IMA, Apple TV AVKit) with ad framework adapters
  • Ad Analytics: Custom event pipeline for impression, quartile, completion, click, and viewability tracking
  • Fallback: Slate/house-ad delivery when ad fill is unavailable or ad blocker is detected

SCTE-35 Client-Side Parsing

HLS Manifest Markers

SCTE-35 signals appear in HLS manifests in two formats, both parsed by the client:

EXT-X-DATERANGE (HLS v7+)
  • Player listens for #EXT-X-DATERANGE tags with SCTE35-OUT and SCTE35-IN attributes
  • Attributes include PLANNED-DURATION for ad break length and ID for event correlation
  • Preferred format for modern players (AVPlayer, ExoPlayer, Shaka)
EXT-X-CUE-OUT / EXT-X-CUE-IN (Legacy)
  • #EXT-X-CUE-OUT:DURATION= marks ad break start
  • #EXT-X-CUE-IN marks return to content
  • Supported for backward compatibility with older players and encoders

DASH Manifest Markers

  • SCTE-35 signals appear as elements in DASH MPD with schemeIdUri="urn:scte:scte35:2013:xml"
  • elements contain presentationTime, duration, and base64-encoded SCTE-35 binary payload
  • Shaka Player and ExoPlayer parse these natively via their event listener APIs

Marker Processing Flow

  1. Detection โ€” Player metadata listener detects SCTE-35 cue event during manifest parsing
  2. Extraction โ€” Break duration, event ID, and segmentation type extracted from the marker
  3. Ad Request โ€” VAST/VMAP request fired to ad decision server with targeting parameters (content ID, genre, device type, user segment, geo)
  4. Pod Planning โ€” Ad response parsed to build an ad pod (ordered list of ad creatives filling the break duration)
  5. Preload โ€” Ad creatives preloaded during content playback to eliminate latency at ad break start
  6. Pause & Switch โ€” Content playback paused at the cue point, player switches to ad playback
  7. Ad Playback โ€” Ads played sequentially with quartile tracking, companion banner display, and click-through handling
  8. Resume โ€” After pod completion, content playback resumes from the exact frame after the cue point

Platform-Specific Implementations

Web (Video.js + IMA SDK)

  • Custom Video.js plugin intercepts #EXT-X-DATERANGE metadata via textTrack cue change events
  • Google IMA HTML5 SDK manages VAST ad requests, ad playback, and companion rendering
  • Ad container overlay positioned above the video element for click-through and skip button support
  • Ad blocker detection via canary request โ€” falls back to house ads or content-resumption on detection
  • Preroll, midroll, and postroll support via VMAP or manual cue-point scheduling

iOS (AVPlayer + IMA SDK)

  • AVPlayerItem.navigationMarkerGroups and AVDateRangeMetadataGroup used to detect SCTE-35 cues
  • AVPlayerItemMetadataOutput delegate fires on each cue event with parsed timing and payload
  • Google IMA iOS SDK handles VAST request and ad playback in a separate AVPlayer instance
  • Picture-in-Picture (PiP) paused during ad breaks per platform ad policy
  • Background audio handled โ€” ads do not play in background mode

Android (ExoPlayer + IMA SDK)

  • Player.Listener.onMetadata() with MetadataOutput captures SCTE-35 events from HLS/DASH
  • Google IMA Android SDK integrated via ExoPlayer's ImaAdsLoader extension
  • Ad playback uses a separate MediaSource to avoid polluting the content buffer
  • Handles Activity lifecycle โ€” ad state preserved across configuration changes and backgrounding
  • Android TV and mobile share the same ad logic with UI-layer adaptations

Connected TV Platforms

Roku (RAF โ€” Roku Ad Framework)
  • Roku's native RAF library parses SCTE-35 markers from HLS manifests directly
  • RAF.setAdUrl() configured with VAST endpoint; RAF handles ad request, pod building, and playback
  • Companion ad support via RAF's renderStitchedAd and renderTrackingEvent callbacks
  • Roku certification requires RAF usage โ€” custom ad players are rejected during review
Fire TV (IMA SDK)
  • Uses Android ExoPlayer + IMA SDK implementation adapted for Fire TV's Leanback UI
  • D-pad navigation for skip button and "Learn More" click-through on ad overlays
  • Fire TV Ad ID used for ad targeting in VAST requests
Apple TV (AVKit + Custom)
  • AVPlayerViewController with interstitialTimeRanges for native ad break UI indicators
  • SCTE-35 cues parsed via AVPlayerItemMetadataCollector
  • Ad playback managed in a separate AVQueuePlayer for clean content/ad separation
  • tvOS remote click handler for interactive ad elements

Ad Pod Management

  • Pod Filling โ€” Multiple VAST ads assembled to fill the signaled break duration
  • Waterfall โ€” If primary ad server returns no-fill, secondary/tertiary demand sources queried sequentially
  • Duration Fitting โ€” Pod builder selects ad combinations that fit within break duration (ยฑ0.5s tolerance)
  • Deduplication โ€” Same ad creative not shown twice in a single pod
  • Frequency Capping โ€” Per-user, per-session caps enforced client-side to avoid ad fatigue
  • Bumpering โ€” Short bumper creatives ("We'll be right back" / "Welcome back") wrap ad pods

Ad Event Tracking & Analytics

  • Standard VAST Events โ€” impression, start, firstQuartile, midpoint, thirdQuartile, complete, skip, clickThrough
  • Viewability โ€” MOAT/IAS viewability pixels fired based on ad viewport visibility and duration thresholds
  • Custom Events โ€” App-level events (ad break start/end, pod fill rate, preload timing, fallback triggered)
  • Server Pipeline โ€” Client fires events to a lightweight event collector, which fans out to GAM, MOAT, and the internal analytics warehouse
  • Reconciliation โ€” Server-side log reconciliation with client-side events for discrepancy detection

Ad Blocker Handling (Web)

  • Detection โ€” Canary VAST request to a known ad domain; timeout or block indicates ad blocker
  • Fallback Strategy โ€” Serve house ads or promotional trailers from first-party CDN domain
  • Content Gating โ€” Optional soft gate: prompt user to whitelist the site before content plays
  • Analytics โ€” Ad blocker detection rate tracked per browser, geography, and page

Key Features

  1. Cross-Platform CSAI โ€” Unified ad insertion across web, iOS, Android, Roku, Fire TV, and Apple TV
  2. SCTE-35 Client Parsing โ€” HLS EXT-X-DATERANGE, CUE-OUT/IN, and DASH EventStream parsing
  3. Interactive Ads โ€” Clickable overlays, companion banners, and skip buttons on all platforms
  4. Ad Pod Orchestration โ€” Multi-ad break filling with waterfall, duration fitting, and deduplication
  5. Preloading โ€” Ad creatives preloaded during content playback for zero-latency ad transitions
  6. Viewability Tracking โ€” MOAT/IAS integration for premium ad buyer viewability requirements
  7. Connected TV Compliance โ€” Roku RAF, Fire TV IMA, and Apple TV AVKit integrations meeting certification requirements
  8. Ad Blocker Resilience โ€” Detection and fallback to first-party house ads on web

Keputusan

Interactive Revenue: CSAI enabled clickable ads, unlocking 25% higher CPMs vs. SSAI-only inventory
Fill Rate: Waterfall demand with 3 ad sources achieved 92% pod fill rate across platforms
Viewer Experience: Ad preloading reduced ad break start latency to under 200ms

Timbunan Teknologi

Video.jsGoogle IMA SDKExoPlayerAVPlayerRoku Ad Framework (RAF)AWS Elemental MediaPackageAmazon CloudFrontSCTE-35HLSDASHVAST 4.2VMAPMOATNode.js

caseStudyDetail.more Kajian Kes

Terokai lebih banyak pelaksanaan teknikal kami

Video Encoding

Penandaan Isyarat Iklan SCTE-35 & Saluran Penyisipan Treler Media

Sebuah syarikat media penstriman memerlukan saluran paip yang teguh dan automatik untuk menyuntik penanda iklan SCTE-35 ke dalam strim langsung dan VOD, bersama dengan keupayaan untuk menyisipkan treler promosi (pra-tayang, tengah-tayang, dan pasca-tayang) pada kedudukan masa yang tepat โ€” membolehkan pengewangan merentasi saluran FAST, acara langsung, dan perpustakaan kandungan atas permintaan.

Baca Kajian Kes
Video Encoding

Perkhidmatan Media AWS untuk Penstriman Saluran FAST melalui SRT

Sebuah syarikat media memerlukan untuk mewujudkan suapan sumbangan yang boleh dipercayai dan latensi rendah untuk saluran FAST mereka menggunakan protokol Secure Reliable Transport (SRT) โ€” membolehkan pengambilan kandungan berkualiti tinggi dari studio jauh, sistem playout awan, dan rakan kongsi sindikasi melalui sambungan internet yang tidak menentu.

Soalan Lazim

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.

Bersedia untuk Mentransformasi Perniagaan Anda?

Mari bincangkan bagaimana kami boleh mengaplikasikan penyelesaian serupa untuk cabaran anda.

Hubungi KamicaseStudyDetail.viewAllCaseStudies
Platform Coverage: Unified CSAI deployed across 6 platforms with a shared ad orchestration core
Compliance: Passed Roku, Fire TV, and Apple TV ad framework certification on first submission
Viewability: 85%+ measured viewability rate, meeting premium advertiser thresholds
Google Ad Manager
Baca Kajian Kes
Video Encoding

Perkhidmatan Media AWS untuk Penstriman Saluran FAST melalui HLS

Sebuah syarikat media perlu melancarkan saluran Free Ad-Supported Streaming Television (FAST) โ€” aliran linear 24/7 kandungan video terpilih yang dihantar melalui HLS ke TV pintar, set-top box, dan pemain web/mudah alih, yang dimonetisasi melalui penyisipan iklan programatik.

Baca Kajian Kes