Ad Break Timing and Cue Points: SCTE-35 for FAST Operators

Created by Andrew Baritz, Modified on Wed, 7 Jan at 12:08 PM by Andrew Baritz

Ad Break Timing and Cue Points: SCTE-35 for FAST Operators

At a glance
If your stream does not signal breaks correctly, SSAI cannot safely insert ads, and platforms may ignore or reject your breaks. Most “we have demand but no revenue” incidents trace back to bad break signaling or break timing.

Who this is for

  • FAST operators defining ad load and break placement
  • Playout/encoding teams inserting cue markers
  • Ad ops teams troubleshooting low fill or zero impressions

What operators should know (non-technical)

  • An “ad break” is not just a creative decision. It must be machine-readable.
  • SCTE-35 is the standard way to mark “break starts now” and “break ends now.”
  • Consistency matters: if your breaks wander (e.g., 78 seconds instead of 90), you get mismatch errors and lost fill.

Key terms

  • SCTE-35: A cueing message standard used to signal splice points for ad insertion and program control.
  • Cue-in: Marker indicating the start of a break.
  • Cue-out: Marker indicating the end of a break (or a duration declared in the cue-in).
  • Splice point: The exact frame/segment boundary where a break begins or ends.

Responsibility boundaries

TaskYou (operator / engineering)SSAI / platform
Insert SCTE-35 markersYesNo
Detect markers and create ad opportunitiesConfig + validationYes (SSAI behavior)
Enforce device/platform break rulesAlign your break policyYes (policy enforcement varies)

Walkthrough: From cue marker to monetized pod

  1. Playout emits SCTE-35 at a clean segment boundary (HLS/DASH segment alignment matters).
  2. SSAI reads cue-in and opens an ad pod for a declared duration (or waits for cue-out).
  3. SSAI requests ads sized to the pod duration (e.g., 90s pod → three 30s ads or other combinations).
  4. SSAI stitches ads and returns a modified manifest (per viewer, in most SSAI systems).
  5. Player downloads segments and playback proceeds without client-side ad calls.

Operational rules that keep you out of trouble

1) Standardize pod durations

  • Pick a small set of pod durations and stick to them.
  • Ensure your schedule, SCTE markers, and SSAI “pod config” all match the same policy.

2) Always close the break cleanly

  • If your workflow uses cue-out, missing cue-out is a top reason pods “never close” and the stream drifts.
  • If your workflow declares duration in cue-in, validate that the declared duration matches actual playout.

3) Align SCTE timing with segment boundaries

  • Bad boundary alignment can create manifest discontinuities and device playback failures.
  • This is where encoder settings (GOP, segment duration) and cue insertion must match.

Real-world break maps (examples)

Example 1: Episodic channel (30-min show)

00:00:00  Program start (no ads for first 120s)
00:10:30  Break 1 (90s)  [cue-in] ... [cue-out]
00:20:45  Break 2 (90s)  [cue-in] ... [cue-out]
00:29:30  Between-episode break (60s) [cue-in] ... [cue-out]

Example 2: News loop / talk block (continuous)

Break cadence: every 8–10 minutes
Pod length: 60s
Rule: never break during lower-third graphics transitions (platform QA failure risk)

Examples you can paste into tickets

Example: “SCTE-35 issue” information to request from engineering

Channel ID:
Time window (UTC):
Playback URL used:
Expected break time(s):
Observed behavior (no ads / wrong length / glitch):
Encoder settings (segment duration, GOP size):
SCTE-35 output sample (base64/hex if available):
SSAI logs around cue detection:

Example: Break policy (for programming + ad ops alignment)

Program typeBreak cadencePod lengthMax single ad
MoviesEvery ~12 minutes120 seconds30 seconds
Episodic2–4 breaks per episode90 seconds30 seconds
Short-form blocksBetween items only60 seconds15–30 seconds

Example: “SCTE sanity checklist” for QA

  • Every cue-in has a matching cue-out (or a declared duration that matches reality).
  • No overlapping breaks.
  • No breaks inside restricted zones (platform-specific).
  • Break start/end aligned to segment boundaries.

Troubleshooting

ProblemWhat to checkQuick fix
Ads never appearAre SCTE markers present? Is SSAI configured to listen for them?Verify cue insertion; confirm SSAI cue ingestion; inspect SSAI logs for “cue detected” events
Ads appear but break lengths are wrongDeclared duration vs actual playoutStandardize pod length; enforce creative duration; add validation on stitch output
Playback glitches at breaksDiscontinuities, segment/GOP alignment, codec changesAlign encoding ladder; keep ad creative specs compatible with content ladder

Sources

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article