Why Your Screen Recordings Need View Analytics

# opensource# webdev# productivity# video
Why Your Screen Recordings Need View AnalyticsAlex Neamtu

You hit record, share the link, and then... nothing. Did anyone watch it? Did the whole team see it,...

You hit record, share the link, and then... nothing. Did anyone watch it? Did the whole team see it, or just one person? Was it useful enough that people came back to it?

Most screen recording tools treat videos like files. You upload, you share, you move on. But async video isn't just file sharing — it's communication. And communication without feedback is guessing.

The "did they watch it?" problem

If you've used async video for team updates, onboarding, or bug reports, you've felt this. You record a five-minute walkthrough explaining a complex feature, share it in Slack, and hear nothing back. Three days later, someone asks a question that the video already answered.

Did they not watch it? Did they watch it but forget? Did they skip to the middle and miss the context? You have no idea.

Email solved this decades ago with read receipts. Chat apps show "seen" indicators. But screen recordings? You're flying blind.

What we built

SendRec now shows per-video analytics for every recording you own. Click "Analytics" from your library, and you see:

A daily views chart — a bar chart showing how many times your video was viewed each day. At a glance, you can see when people actually watched your recording. Did views spike right after you shared it and then drop off? Or did views trickle in over a week as people found it in a thread?

Summary cards with the numbers that matter:

  • Total Views — how many times the video was loaded
  • Unique Views — how many distinct viewers watched (based on IP and user agent)
  • Average Daily Views — the steady-state interest level
  • Peak Day — when the video got the most attention

A time range picker — toggle between the last 7 days, 30 days, or all time. The default is 7 days, which is the most useful window for recent recordings. Switch to 30 days for training videos or documentation that people reference over time. All time shows the complete history.

Why these metrics, and not others

We deliberately kept the analytics simple. No watch-through rates, no heatmaps, no engagement scores. Here's why.

Total vs. unique views tells you reach. If a video has 20 total views but only 3 unique viewers, one or two people rewatched it multiple times. That's a sign the content is being used as reference material. If it has 20 total views and 18 unique viewers, lots of people watched once — probably a team announcement.

Average daily views tells you longevity. A bug report video should spike on day one and flatline. A training video should have steady views over weeks. If your onboarding video gets zero views after the first day, it's probably not discoverable enough — maybe it needs a better title or a more prominent link.

Peak day tells you timing. Share a video on Friday afternoon and the peak day is Monday morning? Your team doesn't watch async video on Fridays. Good to know.

We skipped watch-through rates because they require client-side tracking (JavaScript pinging a server at intervals during playback), which adds complexity and raises privacy questions. We skipped heatmaps for the same reason. The server-side view count gives you 80% of the insight with zero client-side tracking code.

Views are recorded when the page loads

A view is counted when someone opens the watch page. Not when they press play. Not after they've watched 30 seconds. The moment the page renders, we record it.

This is a conscious trade-off. It slightly overcounts (someone might open the link and immediately close it), but it means the analytics work for every video, on every device, without any JavaScript tracking. It also means password-protected videos only count views after the viewer enters the correct password — the view is recorded after authentication, not before.

Each view records a hash of the viewer's IP address and user agent. This lets us distinguish unique viewers without storing personally identifiable information. We don't track who specifically watched — just how many distinct people did.

How it fits the workflow

Analytics live behind a single click in your video library. Every video card has an "Analytics" link right next to "View" and the share controls. No separate dashboard, no navigation maze.

The analytics page shows a back link to your library at the top. Check the numbers, go back to your videos. The whole interaction takes seconds.

This matters because analytics shouldn't be a destination — they should be a quick check. "Did the team watch my update?" shouldn't require navigating through settings menus or a separate analytics product.

What's next

This is version one. The foundation is there: every view is tracked, the data is queryable, the UI is live. Future iterations could add:

  • Account-level analytics — aggregate views across all your videos
  • View notifications — get notified when someone watches your video
  • Viewer identification — optionally show who watched (for authenticated team workspaces)

But even in its current form, per-video analytics change the dynamic of async communication. You're no longer sending recordings into the void. You can see if your message landed.

Try it

SendRec is open source (AGPL-3.0) and self-hostable. Per-video analytics are live at app.sendrec.eu. Record a video, share it, and check your analytics to see who's watching.