Skip to main content
Version: v2

Channels

A channel represents one live stream in OptiView Ads. It is the place where you decide how ads behave for that stream: how break start times are interpreted, which breaks are announced to players and when, and whether ad markers in the stream are detected automatically.

Everything else in OptiView Ads hangs off a channel. Origins, marker rules, breaks, events, templates, and integrations are all created for — or looked up through — a channel.

Channels are scoped to an organization. In the OptiView Unified Dashboard, open Ads → Channels to create and manage them.

Channel identity

Every channel has a customer-facing id. Together with the organization, it forms the unique identity of the channel:

organizationId + channelId

Use stable channel IDs that match your operational names, such as sports-main or news-east. If you omit id on creation, one is generated for you.

A channel is the parent or lookup point for the rest of the OptiView Ads model:

ResourceRelationship
OriginsManifest URLs monitored for ad markers. A channel can have multiple origins.
Marker rulesRules that turn detected markers into breaks.
Detection historyAudit records for marker detection decisions on the channel.
BreaksScheduled or detected ad opportunities for the channel.
EventsTime windows that group related breaks.
TemplatesReusable break presets that can be scheduled on the channel.
IntegrationsChannel-level delivery integrations, such as SSAI DAI cue fan-out.

In the Dashboard, opening a channel gives you access to each of these areas:

AreaUse it for
OverviewView channel settings and player/origin quick actions.
BreaksSchedule, inspect, and delete breaks for the channel.
EventsManage event windows and event-scoped breaks.
OriginsAdd, enable, disable, and prioritize manifest origins.
Break DetectionConfigure marker rules and review detection history.
Break IntegrationManage channel-level delivery integrations.

Timing and delivery settings

These channel settings determine how break start times are interpreted and how breaks are delivered to players through the Break Manifest.

Timebase

The timebase determines which timeline break start times are expressed on:

  • wallclock — breaks are scheduled with UTC wallclock timestamps (startWallclock). Use this when the stream carries wallclock timing, typically from HLS EXT-X-PROGRAM-DATE-TIME tags.
  • pts — breaks are scheduled against the encoder's presentation timestamp timeline (startPts). The player needs to retrieve the PTS value from the media segments to know where it is on that timeline. Use this when your workflow schedules breaks against encoder PTS values rather than wallclock time.

Choose the timebase when creating the channel; all breaks on the channel use the same timebase.

DVR window

dvrWindowMs describes how far behind live a viewer can be while watching the channel — the time-shifted (DVR) window of the stream.

It directly impacts the Break Manifest: a break is included in the manifest as long as it is still relevant for a viewer anywhere inside the DVR window. With a larger DVR window, breaks remain in the manifest for longer so that time-shifted viewers still receive them; with a small window, only breaks near the live edge are returned to the player.

Live offset

liveOffsetMs describes how far the player's playhead is behind live. Players never play exactly at the live edge — they buffer a few seconds behind it.

OptiView Ads uses this offset when evaluating wallclock break start times: instead of comparing against raw server time, break timing is evaluated against the position viewers are actually watching, so breaks activate when the playhead reaches them.

Polling intervals

The Break Manifest response tells players how often to poll for updates. Two channel settings control this cadence:

  • pollingIdleSeconds — the polling interval advertised when no break is active. A slower cadence keeps request load low while nothing is happening.
  • pollingActiveSeconds — the polling interval advertised while a break is active (also used for active manifest caching). A faster cadence lets players catch break transitions quickly.

Ad prefetch window

adPrefetchMs defines how far ahead of a break's start time the break is announced to the player through the Break Manifest.

With the default of 10000 (10 seconds), a break whose start time is within the next 10 seconds is included in the manifest. This lead time gives players room to prepare and prefetch the ad content before the break actually starts.

customAssetKey connects the channel to Google Ad Manager for server-guided pod serving. It is the Google DAI custom asset key that identifies this live stream in Google Ad Manager, and it must be unique within your organization.

Set it when the channel uses Google DAI pod serving; leave it unset otherwise. See the Google vendor guide for the full Google Ad Manager setup.

Marker detection

A channel can automatically detect ad markers (such as SCTE-35 cues or EXT-X-DATERANGE tags) in its origin manifests and turn them into breaks.

Detection is controlled per channel with the read-only detectionEnabled state and dedicated enable/disable actions (in the Dashboard under Break Detection). When detection is enabled, the enabled origins of the channel are polled in priority order and the first online origin is used for marker evaluation. Marker rules decide whether a detected marker creates a break, and detection history records every decision.

Configuration reference

FieldTypeDefaultDescription
timebasewallclock or ptsRequiredTimeline used for break start times. See Timebase.
dvrWindowMsinteger300000Time-shifted viewing window. Determines which breaks the Break Manifest returns. See DVR window.
liveOffsetMsinteger0How far the player playhead is behind live. See Live offset.
pollingIdleSecondsinteger10Break Manifest polling interval when no break is active.
pollingActiveSecondsinteger1Break Manifest polling interval during an active break.
adPrefetchMsinteger10000Lead time for announcing upcoming breaks to players. See Ad prefetch window.
customAssetKeystringnoneGoogle DAI custom asset key for pod serving. Unique within the organization.
detectionEnabledbooleanfalseRead-only state showing whether automatic marker detection is enabled.

For creating, updating, listing, and deleting channels programmatically, see the Ads API reference.