I have spent most of my career building software for WordPress communities. Forums, membership sites, social networks, course platforms. Across all of it, one pattern kept bothering me, and it took me years to name it clearly: the people who create the most valuable content online usually have the least insight into whether it lands.

A creator records a course. They pour months into it. They upload the videos, press publish, and then the data goes dark. They can see how many people bought. They cannot see whether anyone watched. That gap is where this whole project started, and it is why I want to talk about video tracking, not as a feature, but as something I have come to believe every learning community and every LMS plugin should treat as a must-have.


The blind spot I could not unsee

Once you notice it, you cannot stop noticing it. Course creators, coaches, membership owners, training teams, all of them publishing video as the core of what they sell, and almost none of them able to answer the simplest questions. Did the student finish lesson three? Where did people drop off in the onboarding video? Which lesson is quietly losing half the cohort?

The usual answer is an unlisted YouTube link or a raw file dropped into a page. Both play fine. Both tell you nothing. A view count is not insight. It cannot distinguish the student who watched every second from the one who closed the tab in fifteen seconds. And without that distinction, every decision a creator makes about their content is a guess dressed up as a strategy.

I kept meeting talented creators who were optimizing the wrong things, rewriting lessons they personally disliked instead of the ones the data would have flagged, because they had no data. That felt like a solvable problem, and an important one, because the cost of the blind spot is not abstract. It shows up as refunds nobody can explain, as churn nobody saw coming, and as courses that never get better because their authors are editing in the dark.

You cannot improve what you cannot see. For a teacher, the most important thing to see is whether people actually learned.
You cannot improve what you cannot see, and for a teacher that means seeing whether people actually learned.

How I got here

I did not arrive at video tracking from a spreadsheet. I arrived at it from years of watching communities grow and stall on WordPress. The plugins my team and I have built over the past decade share a theme: give the people who run communities the tools that the big closed platforms keep for themselves. Membership, engagement, moderation, monetization. Each one was about handing control back to the creator.

Video was the obvious blind spot left. Communities had moved heavily into video, courses, recorded sessions, member-only workshops, but the tooling around that video on WordPress had not kept up. You could host it, you could gate it, but you could not understand it. Every other part of the community had analytics. The most expensive content to produce had none. That imbalance is what pulled me toward this.


Why WordPress, specifically

People sometimes ask why I keep building on WordPress instead of chasing the newest closed platform. The answer is the same reason this project matters to me. WordPress is the last place on the web where a creator can truly own their stack. The content, the members, the data, the player, all of it can live under one roof that you control and can move whenever you like.

The closed course platforms are convenient until the day they are not. Pricing changes, a policy shifts, an algorithm decides your audience belongs to someone else, and the analytics you depended on were never yours to begin with. I have watched too many creators discover that the dashboard they trusted was a window into a house they did not own.

Building video tracking on WordPress is a statement about that. It says the insight into your own teaching should not be a feature you rent. It should be a property you hold. WordPress makes that possible in a way nothing else does at this scale, and that is worth protecting and extending rather than abandoning for whatever is fashionable this year.


What we tried, and what we got wrong

The first instinct, years ago, was to treat protection and analytics as separate concerns. Lock the video here, measure it there, maybe with a third-party script. It never felt right, and it never worked well. Two tools meant two points of failure, two places for data to leak, and a creator stitching together a workflow that should have been one thing.

The lesson that reshaped the project was simple in hindsight. The moment you wrap a video player to protect it, you are already in the perfect position to measure it. You are inside the playback. You know who the viewer is, what they are watching, and how far they have gotten. Protection and measurement are not two jobs that happen to live near each other. They are the same job, and trying to separate them was the mistake.


What I believe about learning data

A few convictions shaped how we approached this, and they are worth stating plainly because they drove every decision we made.

Creators should own their data. If you teach on your own WordPress site, the record of how your students engage should live on your site, under your control, not inside a third-party platform that rents it back to you as a dashboard you can lose access to. Your audience, your content, your data. That is not a slogan; it is an architecture choice, and we made it deliberately.

Insight should be private by default. Tracking how members learn is a responsibility, not a license. The right model is to measure logged-in members, be transparent about what you collect and why, and make export and erasure trivial. Respect is not a tax on insight. It is the foundation of trust that makes insight acceptable in the first place. A creator who cannot honor a deletion request should not be collecting the data at all.

The free version should tell the truth. I felt strongly that a creator should not have to pay before they are allowed to know whether their teaching works. So the core analytics, who watched and how far, live in the free plugin. Paying unlocks depth, not honesty. That distinction mattered to me more than any pricing model.


The principles, turned into product

Beliefs are cheap unless they survive contact with real decisions. Here is how these turned into the product itself.

Because creators should own their data, MediaShield stores engagement on your own WordPress database, not a remote service. Because insight should be private, it tracks members rather than anonymous visitors and ships with the privacy export and erase hooks built in. Because the free version should tell the truth, completion and per-member progress are free, while heatmaps and automation are the paid depth. And because protection and measurement are one job, a single player gives you the watermark, the access control, and the analytics together, instead of three plugins fighting over the same video.

None of that is glamorous. But it is the kind of foundation that decides whether a tool is something you trust with your livelihood or just another dashboard you stop opening after a week.


What we will not build

It feels just as important to say what this is not, because the easy version of an analytics product is the one I refuse to ship. We will not build a system that tracks anonymous strangers across the web to fatten a profile. We will not quietly sell or pool your students’ behavior into some shared data product. And we will not lock your own numbers behind an export paywall so you cannot leave.

Those are not technical limitations. They are choices, and they are the choices that make me comfortable asking a teacher to put their life’s work into our hands. An analytics tool has real power over the people it measures. The only responsible way to wield that power is to point it at improving the learning and nothing else, and to keep the person being measured in control of their own record.

If we ever have to choose between a feature that grows a number and a principle that protects a learner, the principle wins. I would rather build a smaller, trusted tool than a larger one nobody should trust.


What we are building with MediaShield

MediaShield is our answer, and I want to describe it less as a spec sheet and more as the idea behind it. It is one consistent video player for WordPress that works across self-hosted files, YouTube, Vimeo, Wistia, and Bunny, so a creator stops juggling embeds and starts treating video as one managed thing on their site. The videos still stream from wherever they live. What changes is that the player now belongs to you, and so does everything it can tell you.

Out of that single decision, a lot follows naturally. Because the player is yours, it can carry a dynamic watermark with the viewer’s identity, so a leaked recording points back to its source. Because the player is yours, it can require a login, respect roles, and cap concurrent streams. And because the player is yours, it can record watch time, completion, and milestones for every member, then show you who watched and how far they got. That is the free foundation, and it is enough to end the blind spot on day one.

Where it goes deeper

For people running this seriously, MediaShield Pro adds the depth that turns measurement into a practice: per-second playback heatmaps that show the exact minute attention breaks, a realtime view of who is watching now, a completion funnel, and a device breakdown. It auto-completes lessons in LearnDash, Tutor LMS, and LifterLMS when a learner actually finishes the video, captures emails before playback and pushes them to a CRM, and exports the whole picture as CSV or a scheduled PDF. For higher-value libraries it adds DRM encryption and suspicious-activity detection. Pro extends the free plugin instead of replacing it, because nobody should have to rebuild to grow.


Why this is a must-have for any LMS

I do not say must-have lightly. But think about what an LMS actually promises: structured learning with progress you can trust. Now look at how most LMS setups track a lesson as complete. A button click. The learner clicks next, the lesson is marked done, the certificate eventually prints. Whether they watched the video inside that lesson is anyone’s guess.

That is a hollow kind of completion, and everyone in the LMS world quietly knows it. Video tracking closes the hole. When a lesson only completes after the learner genuinely watches the video to the threshold you set, your completion data becomes honest, your certificates mean something, and your drip schedules reflect reality. Here is the difference, plainly:

QuestionLMS click-to-completeWith video tracking
Was the lesson marked done?YesYes
Did they watch the video?UnknownYes, to your threshold
Where did they lose interest?UnknownExact timestamp
Can you prove engagement?NoYes, per member

Any LMS plugin, and any community built around courses, becomes more trustworthy the moment real watch data sits underneath it. That is why I think of this as foundational, not optional. A certificate that certifies a click is a liability. A certificate backed by genuine watch-through is an asset.


The bigger picture: communities that learn about themselves

I build for communities, so I cannot help seeing this in community terms. A learning community is not just a content library with a login. It is a living thing, and like anything alive, it gets healthier when it can sense itself. Video tracking is one of those senses. It tells the community’s stewards which lessons resonate, which members are drifting, and where the energy is.

Used well, that sense changes behavior for the better. Creators spend their editing time where it matters. Community managers reach the student who stalled with a specific, kind nudge instead of a generic blast. The whole system gets a feedback loop, and feedback loops are how things improve over time. Used carelessly it could become surveillance, which is exactly why the privacy convictions above are not an afterthought. The goal is a community that understands itself, not one that watches its members.


What a healthy learning community looks like

If I imagine the communities I most want this to serve, they share a few traits, and tracking quietly supports each one.

  • They improve in public. Lessons get sharper over months because the creator can see what is working and says so to members.
  • They notice people, not just numbers. A stalled learner is a person to help, and per-member progress makes that person visible before they cancel.
  • They earn trust with honesty. Completion that means completion, certificates that mean something, and a clear privacy posture.
  • They compound. Small weekly improvements stack into a library that gets measurably better, instead of a pile of videos that ages in place.

None of that requires a data team. It requires a tool that surfaces the right two or three signals and gets out of the way.


For the creator who feels behind

If you are reading this and quietly worrying that you should have been tracking all along, let me put that to rest. Almost nobody is doing this well yet. The bar in most online courses is still a play button and a hope. Starting now does not put you behind; it puts you ahead of the version of you from last month and ahead of most of your peers.

You also do not need to be technical or analytical to benefit. The whole point of designing this carefully was to spare you a spreadsheet habit. Two numbers, completion and per-member progress, will tell you more than you have ever known about your course, and they read like plain language, not a data science report. You watch them, you notice the lesson that lags, you fix it, you move on.

The creators who win over the long run are not the ones with the flashiest production. They are the ones who keep tightening the loop between what they teach and what their students actually absorb. Tracking is simply how you see that loop. Once you can see it, improving becomes the easy, obvious thing to do, and that compounding is what separates a course that fades from one that keeps selling for years.


Where this goes next

I think of MediaShield as the start of a longer arc, not a finished destination. The direction I care about is making the insight more actionable without making it more complicated. Clearer signals about which lesson to fix next. Tighter loops between what a member does and what happens for them automatically. Deeper, honest LMS integration so that progress always reflects real learning. And throughout, holding the line on the principles: your data on your site, private by default, the truth available for free.

The next version is always shaped by what real teachers run into, which is why I would rather ship, listen, and improve than guess at a grand roadmap in a vacuum. If you build learning communities, your friction is my backlog.


A simple way to start

If any of this resonates, the on-ramp is intentionally gentle. You do not rebuild your course or migrate your videos. You install the plugin, embed your existing lessons with a block or shortcode, and watch two numbers for a week: completion rate and per-member progress.

  • Week one: just observe. Let the data accumulate before you judge anything.
  • Week two: open the lowest-completion lesson and find its drop-off point.
  • Week three: ship one fix and watch the number move.
  • From there: one small improvement a week, compounding into a course that keeps getting better.

That rhythm, more than any single feature, is what I hope MediaShield gives people. Not a dashboard to admire, but a habit that quietly raises the quality of what gets taught.


An invitation

We built MediaShield because I wanted the creators I admire to stop flying blind, to own their data, and to protect work they poured themselves into. It is live now, the core is free, and the deeper analytics are there when you are ready for them. If you run a course, a membership, or any kind of learning community on WordPress, I would genuinely love for you to try it and tell me what you find, because the next version is always shaped by what real teachers actually need.

You can read more of what I write about building for communities on the blog, or learn more about what I work on. When you are ready to see what your students actually watch, start with MediaShield, browse the free plugin, and step up to Pro when you want the full picture. The documentation lives here.