# Live

A live channel monetizes a linear stream or a live event. Breaks are placed on the live timeline, and players watching the stream — at the live edge or behind it in the DVR window — receive them through the channel's [Break Manifest](https://optiview.dolby.com/docs/ads/concepts/break-manifest.md).

## Set up a live channel

A channel is live by default. Choose the [timebase](https://optiview.dolby.com/docs/ads/concepts/channels.md#timebase) that matches the timing information in your stream:

* **`wallclock`** — breaks start at a UTC timestamp, matched against the stream's own wallclock timeline (`EXT-X-PROGRAM-DATE-TIME` in HLS, the segment timeline in DASH). This is the recommended timebase.
* **`pts`** — breaks start at a presentation timestamp on the encoder's timeline.

```bash
curl -X POST 'https://us.ads.optiview.dolby.com/api/v1/channels' \
  -u "$ADS_API_KEY:$ADS_API_SECRET" \
  -H 'Content-Type: application/json' \
  -H 'X-Org-ID: <org-id>' \
  -d '{
    "name": "Sports main",
    "streamType": "live",
    "timebase": "wallclock"
  }'
```

The [DVR window](https://optiview.dolby.com/docs/ads/concepts/channels.md#dvr-window), [live offset](https://optiview.dolby.com/docs/ads/concepts/channels.md#live-offset), and [ad prefetch window](https://optiview.dolby.com/docs/ads/concepts/channels.md#ad-prefetch-window) settings tune which breaks the Break Manifest contains at any moment.

## How breaks are created

On a live stream, breaks can be created in three ways, and you can combine them on one channel:

* **Scheduled** — create a break with a start time, ahead of time or on the spot. See [Scheduling](https://optiview.dolby.com/docs/ads/concepts/breaks.md#scheduling).
* **Punched** — prepare a break without a start time, and fire it when the moment comes, for example from your production control room. See [Break punching](https://optiview.dolby.com/docs/ads/concepts/breaks.md#break-punching).
* **Detected** — add your stream as an [origin](https://optiview.dolby.com/docs/ads/concepts/origins.md), and OptiView Ads turns the ad markers in the stream, such as SCTE-35 signals, into breaks. See [Break detection](https://optiview.dolby.com/docs/ads/concepts/marker-detection.md). This replaces the ad breaks already in your stream (Dynamic Ad Replacement).

[Events](https://optiview.dolby.com/docs/ads/concepts/events.md) let you prepare the breaks of a live event, such as a match or a show, upfront. [Templates](https://optiview.dolby.com/docs/ads/concepts/templates.md) store a break configuration once, so scheduling becomes a one-liner.

Besides breaks on the timeline, a live channel can carry [event-triggered breaks](https://optiview.dolby.com/docs/ads/concepts/breaks.md#event-based-triggers): a pre-roll when the viewer starts watching, a pause ad, and a post-roll.

## How players receive the breaks

The SDK polls the Break Manifest during the whole session. A break appears in the manifest shortly before it starts — within the ad prefetch window — so the SDK can prepare the ads, and it stays there while viewers in the DVR window can still reach it. Changes to a break, such as an earlier end, reach the players on the next poll.

## Choose an ad source

Each ad source has its own page with everything you need for live: the break setup, what your app needs, the supported layouts, and troubleshooting. Live channels support both delivery modes of the [hybrid platform](https://optiview.dolby.com/docs/ads/workflows.md#hybrid-ad-insertion-sgai-and-ssai):

| Ad source                                                                                    | SGAI                                                                                                   | SSAI                                                                                   |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- |
| [Static assets](https://optiview.dolby.com/docs/ads/workflows/live/static-assets.md)         | Yes                                                                                                    | No                                                                                     |
| [Your ad server (VAST)](https://optiview.dolby.com/docs/ads/workflows/live/vast.md)          | Yes                                                                                                    | No                                                                                     |
| [Google Ad Manager](https://optiview.dolby.com/docs/ads/workflows/live/google-ad-manager.md) | Yes, with [Google Pod Serving](https://optiview.dolby.com/docs/ads/integrations/google/pod-serving.md) | Yes, with [Google DAI](https://optiview.dolby.com/docs/ads/integrations/google/dai.md) |

## Related resources

| Resource                                                                            | Description                                                 |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| [Getting started](https://optiview.dolby.com/docs/ads/getting-started.md)           | Create a live channel and play your first break end to end. |
| [Channels](https://optiview.dolby.com/docs/ads/concepts/channels.md)                | Timebase, DVR window, live offset, and prefetch settings.   |
| [Breaks](https://optiview.dolby.com/docs/ads/concepts/breaks.md)                    | Scheduling, punching, layouts, and the asset model.         |
| [Break detection](https://optiview.dolby.com/docs/ads/concepts/marker-detection.md) | Turn the ad markers in your stream into breaks.             |
| [VOD](https://optiview.dolby.com/docs/ads/workflows/vod.md)                         | Monetize on-demand assets instead.                          |
