Audience statistics
Updated 12 Oct 2026The Audience page shows who watches your channels, for how long and from where — for each channel and each output. Every channel also has its own Audience tab.
Available from Castreon 1.5.0. The basics are in all plans; the advanced statistics are in Pro and Enterprise (and in the free trial).
| All plans | Pro and Enterprise | |
|---|---|---|
| Viewers now, by channel and output | ✓ | ✓ |
| Chart: average and peak over 24 hours, 7 days, 30 days, 12 months | ✓ | ✓ |
| Channel ranking | ✓ | ✓ |
| Unique viewers per day and per month | ✓ | |
| Watch hours, sessions, average session | ✓ | |
| Countries, apps and devices, outputs | ✓ | |
| Session list with IP and CSV export | ✓ |
How viewers are counted
A viewer is a session: one channel, one output, one IP address and one app.
- HTTP-TS — the session is the connection; it is counted exactly, with the traffic sent.
- HLS, LL-HLS, DASH, the web player, the archive — players request pieces every few seconds; the session lasts as long as requests keep coming and ends after 60 seconds without any.
- WebRTC — sessions come straight from the WebRTC server.
Archive viewers (catch-up, timeshift) are counted separately, under the Archive output, not as live viewers.
CDN: viewers who come through a CDN never reach the server, so they do not appear in the statistics — the CDN counts them. Castreon only sees the CDN that pulls the stream.
The Audience page
- Now, Peak, Average, Unique today — the main figures for the chosen interval.
- The chart — the average of concurrent viewers (the area) and the peak (the dashed line), over 24 hours (every 5 minutes), 7 days (per hour), 30 days or 12 months (per day / month). Hover over the chart for the exact figures.
- Now by channel — refreshes every 10 seconds, with the viewers on each output.
- Ranking — channels by watch hours and peak.
Details (Pro and Enterprise)
Choose Today, 7 days, 30 days or 90 days:
- Sessions, watch hours, average session (how long a viewer stays), concurrent peak;
- the days, with the unique viewers of each day;
- Countries — by IP address;
- Apps and devices — recognised by the player identification (User-Agent);
- Outputs — HLS, LL-HLS, DASH, web player, archive, HTTP-TS, WebRTC.
Sessions (only for operators and administrators) shows every finished session: the start, the duration, the channel, the output, the IP, the country, the app and the traffic. You can filter by IP, and CSV export downloads all sessions in the interval.
Unique viewers are counted by IP and app, per day and per month. Castreon does not keep the IP addresses for this: it keeps only fingerprints made with a key that changes every month, and deletes them at the end of the day or the month respectively.
What is kept and for how long
| Data | Contains IP? | How long |
|---|---|---|
| Viewers per minute | no | 48 hours |
| Viewers per hour and per day, unique viewers, watch hours, countries, apps, outputs | no | 2 years |
| Sessions with IP (Pro and Enterprise) | yes | as long as you choose: 30 days (default), 7, 90 or none |
Session retention is chosen in Settings → Statistics. When you shorten the period, older sessions are deleted right away; with None, no session with IP is kept any more, only the figures.
IP addresses are personal data. As the operator, you decide whether and how long to keep them, and you are responsible for the legal basis and for informing viewers (for example in your service's privacy policy). Castreon only applies your choice on the server; the data goes nowhere.
Countries
The country comes from the free DB-IP IP to Country Lite database, included in every Castreon release and updated with it. The database stays on the server — addresses are never sent anywhere for a lookup. Without the database, the country shows as Unknown; the rest of the statistics work the same.
If you want a newer database than the one in the release, put the dbip-country-lite.mmdb file in the data folder, under geo/, and restart the service.
IP Geolocation by DB-IP (CC BY 4.0 licence).
Prometheus and Grafana
The castreon_channel_viewers{channel, slug, output} metric gives the current viewers by channel and output, at the /metrics address (see Metrics and Grafana).