August 20, 2026

Linear channel analytics: reading the numbers that change next week's schedule

Anirjeeth Vempati
Anirjeeth Vempati
Software Engineer Associate

A linear channel plays on a schedule, which means somebody has to write that schedule again every cycle. The only honest input for that decision is how the last one actually performed.

Linear channel analytics are a smaller set of numbers than people expect, and that is fine. A 24/7 channel does not need a hundred metrics. It needs to answer whether people came back, whether the schedule held them, and which titles earned their slot.

This is how to read those numbers for a linear channel, which one is almost always misread, and how to get the data out of the dashboard and into next week's lineup.

TL;DR

Cloud Playout has its own analytics view, one channel at a time. You get six numbers: sessions, unique viewers, total watch time, average session duration, top locations by city, and top titles by engagement.

The one that matters most is sessions divided by unique viewers. A linear channel wins by becoming a habit, and that ratio is where repeat tune-ins show up. Distrust total watch time on its own, because a channel piles it up just by running.

Use top titles to pick the next lineup, top locations to programme to the right clock, and the compare control to check whether a change worked.

What linear channel analytics show you in cloud playout

Pick a channel, pick a time range, and FAST channel analytics give you six things. That is the whole surface, and each one answers a different question.

What you seeWhat it answers
SessionsHow many times did someone tune in?
Unique viewersHow many different people was that?
Total watch timeHow much viewing did the channel produce?
Average session durationHow long did a tune-in last?
Top locationsWhere are they, by city?
Top titles by engagementWhich media held them, by sessions and watch time?

There is also a compare control, so you can put the current period against the one before it.

If you have not set a channel up yet, a free account with $25 in credits is enough to get one running and see these numbers against your own content.

Note where this lives. Channel analytics sit under Cloud Playout, alongside Channels, Overlays and Configuration. They report on the channel itself, not on your on-demand library or your player, and they are scoped to one channel at a time.

Sessions and unique viewers: the number to read first

Divide one by the other. Sessions per viewer is the closest thing a linear channel has to a single health metric.

A channel with 4,000 sessions from 3,800 unique viewers was watched once by nearly everyone and then forgotten. A channel with 4,000 sessions from 900 unique viewers has 900 people coming back four times each. The second channel is working, and the raw session count is identical.

That matters more for linear than for on-demand, because a linear channel is not competing on catalogue. It is competing to become the thing someone puts on. Repeat tune-ins are the whole point, and the ratio is the only place they show up.

If you track one number week to week, track that one.

How to read average session duration on a channel

Channel session duration is not completion rate on a video, and treating them alike is the most common misreading. Nobody chose what was playing; they arrived at whatever the schedule was running. A short average session is a statement about the slot, not the titles in it, and the same title in a different position can produce a completely different number.

Two rules follow. Compare the same slot across periods rather than slots against each other. And when the number drops, look at what changed in the schedule at that point before concluding anything about the content.

Top titles by engagement: next week's lineup

This is the table that does the programming work. Each row gives you a media ID with its sessions, total watch time and average session duration.

Read the three together rather than sorting by any one of them:

  • High sessions, low average duration. People arrive and leave. The title is drawing tune-ins, possibly from its lead-in, but not holding them.
  • Low sessions, high average duration. Few people found it, the ones who did stayed. Worth moving to a better slot before you judge it.
  • High on both. Schedule it again, and consider building a block around it.

The second case is the one people miss, because sorting by sessions buries it. A title that holds attention in a bad slot is the cheapest programming win available, and it costs nothing to test by moving it.

Top locations: programme to the right clock

Locations look like a vanity panel and are not, for one reason: a linear channel runs against a clock, and the clock only makes sense relative to the audience.

If your sessions concentrate in a few cities in one or two timezones, build the schedule around those local hours. A channel programmed to the wrong clock puts its strongest content where its audience is asleep, and every other number looks weak as a result. Check this at launch and whenever the audience shifts, not weekly.

Comparing one period against another

The compare control is what turns the dashboard from a report into a loop. Change the schedule, wait a cycle, and put the two periods side by side.

Change one thing at a time. If you move three titles and adjust a daypart in the same week, the comparison cannot tell you which one did the work, and you will carry the wrong conclusion into the following week.

How to use channel playout data outside the dashboard

The dashboard is built for reading, not modelling. Take the data out into a spreadsheet when you need one of three things:

  • History beyond the view. Keep a record of each period so you can see a trend across a quarter rather than a week.
  • Comparing channels. Analytics are scoped to one channel at a time, so a multi-channel picture has to be assembled outside.
  • Joining to your own data. Rights windows, cost per title, promotion schedules and last-aired dates all live in your systems, not in the dashboard.

One half of that comes straight out as a file. GET /cloud-playout/channels/{channelId}/schedule/export returns what a channel plays as CSV, one row per item with media ID, duration, start and end time, for up to ten days at a time. That is the running order rather than the audience numbers, and joining it to the top-titles figures is what tells you whether a title underperformed or was simply in a bad slot.

Once the numbers are in a sheet, the loop is small: sort last period's top titles, drop the ones that lost people, promote the ones that held them, and rebuild the lineup. The scheduling guide covers how the lineup gets built once you have decided what belongs in it.

What this dashboard does not cover

These numbers cover audience and engagement for the channel: who tuned in, for how long, from where, and to what. They do not cover playback quality. Startup time, rebuffering and error rates are a different concern with a different tool, and confusing the two leads to blaming the programming for what is really a delivery problem.

So if a channel's numbers fall off a cliff with no schedule change behind it, look at delivery before the lineup.

How ad breaks work in a linear channel

Ad breaks live on the same channel and get read by the same dashboard, so they belong here.

In Cloud Playout an ad break is a bumper: a short video you have already uploaded, placed before or after an item. Making one is POST /cloud-playout/fillers with a name, the bumper type and the media ID of a clip that has reached ready status, or Cloud Playout, Configuration, Add Bumper from the dashboard.

Placing it is a second call, POST /cloud-playout/channels/{channelId}/programs/{programId}/bumper, with the bumper ID, the ID of the item it sits against, and a bumperType of preroll or postroll. The bumper becomes an item in the program in its own right, so it counts towards the channel's running time, and on a channel already on air it cannot be placed against an item due to play in the next few minutes.

Slates use the same filler endpoint with the slate type. They play when a live input fails, and a channel using a live input must have one before it can go active. Overlays put a logo, Aston or L-band graphic on top of the stream.

SCTE-35 ad breaks are signalled rather than baked in. The channel emits markers in its HLS and DASH output at your break positions, covering pre-roll, mid-roll and post-roll. Be clear about what a marker is: it signals where a break starts and how long it runs, not what plays in it. A downstream server-side ad insertion service reads the marker and stitches in the creative using your campaign rules and separation policy.

Where to start

Read sessions against unique viewers for the last period before touching anything else. That single ratio tells you whether you have a programming problem or an audience problem, and they need completely different responses.

Then take one week of top titles, find a row with strong average session duration and weak sessions, and move it into a better slot. Compare the two periods afterwards. That is the smallest useful version of the whole loop, and it costs one scheduling change.

If you are setting a channel up rather than tuning one, a free account with $25 in credits covers the library work, and a walkthrough is the faster route to a channel running against real content.

Frequently Asked Questions (FAQs)

What are linear channel analytics?

Linear channel analytics measure how a scheduled 24/7 channel performs: how many sessions started, how many distinct people watched, how long they stayed, and which titles held their attention. Unlike on-demand analytics, viewers do not choose the video on a linear channel, so weak performance can reflect the schedule rather than the title itself.

What does the Cloud Playout analytics dashboard show?

For each channel and time range, the Cloud Playout analytics dashboard shows sessions, unique viewers, total watch time, average session duration, top viewer locations by city, and top titles by engagement. Top-title reporting includes each media ID, its sessions, total watch time, and average session duration.

What is the difference between sessions and unique viewers?

A session is one tune-in, while a unique viewer represents one person regardless of how many times they tuned in. Dividing sessions by unique viewers gives you sessions per viewer, which is a useful measure of how frequently viewers return to the channel.

How do you measure the performance of a 24/7 channel?

Use sessions per viewer to measure viewing habits, average session duration to understand whether the schedule holds attention, and top titles by engagement to identify which programs earned their slots. Total watch time alone can be misleading because a continuously running channel naturally accumulates watch time.

Why does average session duration drop on a linear channel?

It is often caused by what was scheduled when viewers arrived rather than by the channel overall. Because viewers do not choose the program on a linear channel, a short session can indicate that a particular time slot is not holding attention. Compare the same slot across multiple periods before changing the schedule.

How do ad breaks work in a linear channel?

In FastPix Cloud Playout, an ad break can be represented by a bumper, which is a short uploaded video placed before, between, or after scheduled content. The channel emits SCTE-35 markers in its HLS and DASH output at those points, allowing a downstream server-side ad insertion service to identify where the actual advertisements should be inserted.

What is SCTE-35 used for?

SCTE-35 is a standard for signaling ad break opportunities inside a video stream. The markers indicate where a break starts and how long it runs, allowing an ad server or server-side ad insertion (SSAI) system to determine where advertisements can be inserted. The markers carry timing information, not the advertisements themselves.

Should channel analytics change the schedule automatically?

Reordering or demoting content can be automated because these changes are generally reversible within a programming slot. Keep human oversight for decisions that permanently remove content or change sensitive programming, particularly news, because analytics cannot account for every editorial or legal consideration.

What should you not optimise a channel for?

Do not optimize a linear channel for total watch time alone. A continuously running channel accumulates watch time regardless of whether its programming is effective, and optimizing only for watch time can favor longer content over better content. Evaluate it alongside sessions per viewer and average session duration.

Share

Stay Ahead of Video
Streaming Trends

Start shipping video today.