Skip to content
Docs/SSAI/Publisher Prerequisites

Publisher Prerequisites

Technical requirements your origin and content must meet for successful SSAI integration. This checklist ensures smooth onboarding and optimal fill rates.

Quick Summary

You provide: origin manifest URL, ad break signals (SCTE-35/DATERANGE), content with keyframe-aligned segments. We handle: manifest rewriting, ad decisioning, stitching, tracking, and reporting.

What You Must Provide

RequiredOrigin Manifest URL

Your origin HLS master playlist or DASH MPD must be accessible via HTTPS.

HTTPS endpoint (no self-signed certs)
Stable URL pattern (or webhook notification for URL changes)
IP allowlisting or token-based access for our manifest fetcher

RequiredAd Break Signals

Ad break opportunities must be signaled via one of these mechanisms:

HLS Options

  • #EXT-X-DATERANGE with SCTE-35 data
  • #EXT-X-CUE-OUT / #EXT-X-CUE-IN
  • SCTE-35 in-band (ID3 timed metadata)

DASH Options

  • EventStream with SCTE-35 scheme
  • urn:scte:scte35:2013:xml
  • urn:scte:scte35:2014:xml+bin
Important: Cues with DURATION or PLANNED-DURATION improve fill rates. Without duration, we wait for the "end" cue before ad selection.

RequiredSegment Requirements

Keyframe alignment at cue points

Every ad break cue must land on an IDR frame. Encoder must insert keyframes at signaled positions.

Consistent segment duration

Segments should be 2-6 seconds. Recommended: 4s for VOD, 2s for low-latency live.

A/V muxed or aligned

Audio and video segment boundaries must align. Separate audio renditions require matching timelines.

RequiredCodec & Resolution Ladder

Ads are matched to content quality tiers. Provide your encoding ladder so we can source compatible creatives:

ParameterRecommendedNotes
Video CodecH.264 (AVC)H.265 (HEVC) supported but reduces ad inventory
Audio CodecAAC-LCAC-3/E-AC-3 for 5.1 content
Resolutions1080p, 720p, 480p, 360p4K reduces ad inventory significantly
Frame Rate24/25/30 fps60fps supported but verify ad availability

OptionalCaption Format

If your content includes captions, specify the format for proper timing adjustment:

CEA-608/708 embedded (recommended)
WebVTT sidecar files

If ApplicableDRM Requirements

If your content is DRM-protected, we need:

DRM scheme(s) used (Widevine, FairPlay, PlayReady)
Policy: Can ads be clear (unencrypted) in encrypted content? (Default: yes)
License server URL if ads must use same DRM

What We Validate Automatically

Before serving ads, our system validates:

Manifest Validation

  • HLS RFC 8216 compliance
  • DASH-IF MPD structure
  • EXTINF > 0 for all segments
  • EXT-X-TARGETDURATION accuracy
  • Discontinuity sequence consistency

Cue Validation

  • SCTE-35 parse correctness
  • Cue deduplication
  • Keyframe alignment check
  • Duration reasonability (0.5s–300s)

Format Compatibility

  • Codec string matching (avc1.*, mp4a.40.*)
  • Container format (TS vs CMAF)
  • Audio layout compatibility
  • Resolution tier matching

Origin Health

  • Manifest fetch latency
  • Segment availability (404 detection)
  • SSL certificate validity
  • Rate limit headroom

What Causes Rejects / No-Fill / Slate

These issues result in unfilled ad breaks or fallback to slate content:

Cue not at keyframe

Splice point mid-GOP causes glitches. We reject or align to nearest safe boundary.

No compatible ad creative

Content codec/resolution has no matching ad inventory. Consider H.264 1080p baseline.

Partner timeout

Demand partner didn't respond within deadline. System serves slate to avoid black screen.

Cue without duration

Forces wait for end-cue before decisioning, reducing available think time.

Origin latency spikes

Slow manifest fetch reduces time budget for ad selection.

Pre-Integration Checklist

  • Origin manifest URL accessible via HTTPS
  • Ad break cues present (SCTE-35, DATERANGE, or CUE-OUT/IN)
  • Cues include DURATION or PLANNED-DURATION
  • Encoder inserts keyframes at cue positions
  • Segments are 2-6 seconds duration
  • Audio and video segment boundaries align
  • Encoding ladder documented (codecs, resolutions, bitrates)
  • DRM requirements documented (if applicable)
  • Our manifest fetcher IPs allowlisted (or token provided)

Related Documentation