Everyone knows the feeling of being followed around the internet by a pair of sneakers. You look at a product once and it shadows you for three weeks, across news sites, videos, weather forecasts. What nobody can tell you, and this is the strange part, is the number. How many times, exactly, did that brand appear in front of your eyes this month? Ten? Two hundred? You are the only witness of your own screen, and even you are not counting.
I wrote this idea down years ago and forgot it, which is itself a data point about how ambient the problem is. Advertising is the only massive daily exposure in our lives that nobody measures from the receiving end. We count our steps, our calories, our screen minutes. The ad industry counts its impressions with terrifying precision, from its side.
The one ledger that does not exist is yours.
Exposed is a browser extension that keeps that ledger. It does not block anything. It counts. Every ad that renders in your browser gets tallied, by brand where identifiable, by category, by site, by hour, and everything stays on your machine. At the end of the week you get the report nobody has ever handed you: your ad diet. You were served roughly 1,400 ads this week. Here are your top ten brands. Here is the fast-food cluster that owns your evenings, and the betting brands that own your weekends.
Blockers count what they stop; nobody counts what you absorb
The adjacent tools make the gap obvious. Ad blockers proudly display how many things they blocked, a number about their work, not your exposure, and by definition they only see what they removed. Mozilla once shipped Lightbeam, a beloved little extension that visualized the trackers following you across sites; it was discontinued, and it tracked the trackers, not the ads themselves. Academic projects have tried to observe advertising at scale, and the most famous one, a university tool for studying political ads on a large social platform, got legal threats from the platform for its trouble. That tells you two things: observation is valuable, and the observed do not love it.
The gap Exposed fills is personal, not academic. It is the quantified self, applied to the one input stream everyone receives and nobody logs. Not “advertising is bad,” which is an opinion, but “you saw this brand ninety-one times this month,” which is a fact, your fact, sitting in your own browser.
Key Features
- A counter, not a blocker. Exposed changes nothing about the page. It observes, tallies, and stays out of the way, which also means it can coexist with a blocker and count whatever leaks through.
- Brand-level attribution, honestly approximate. Where the advertiser is identifiable, from ad domains, disclosure labels, landing URLs, the tally is per brand; where it is not, it counts anonymously by category. The dashboard says “estimate” and means it, because the alternative is pretending.
- Local, forever, structurally. The entire point collapses if the exposure ledger travels. Everything is computed and stored on-device; no account, no server, no telemetry. The report is yours to export, screenshot, or delete, and the code is open so that claim is checkable.
- The weekly diet report. One glanceable page: volume over time, top brands, categories, the sites that serve you the most, your personal prime time. Designed like a nutrition label, because that is what it is.
- Shareable stats, private data. A one-tap card, “1,437 ads this week, top brand for the 6th week running: same soda”, for the people who want to show the world, without a single underlying datum leaving the machine.
- Research mode, strictly opt-in. For the journalists and researchers who need aggregate exposure data, a user can choose to donate anonymized tallies. Off by default, loudly consensual, and never required for any feature.
The honest tensions
Detection is a guerrilla war and the extension is the weaker side. Ads are deliberately obfuscated, served from rotating domains, rendered in closed iframes. There is one structural consolation. Manifest V3 hobbled the blockers far more than it hobbles a counter. Observing survives where blocking was maimed, which makes a counter the more future-proof species of extension. The elegant trick is to reuse the enemy of ads as a dictionary. The same public filter lists that blockers use to remove ads, EasyList and its siblings, work just as well to recognize them. Counts will still be undercounts, some attributions will fail, and the product must wear that honestly. Exposed offers an estimate of a number nobody else will give you at all.
The second tension is the observer effect, and I have made peace with it. Show someone their ad diet and many will install a blocker the same day, at which point Exposed’s numbers drop toward zero. The tool’s success shrinks its own dataset. Fine. Exposed is a gateway drug to media literacy, and if its endgame is its own irrelevance on a given machine, it has done what a nutrition label is for.
And the third is hostility. Platforms have already shown, with legal letters, what they think of ad observation at scale. Exposed’s defenses are structural. It observes only the user’s own screen, for the user only, locally, which is about as defensible as observation gets. But an idea in this territory should know whose lawn it is standing on.
Monetization
Almost none, and on purpose. This is a civic instrument in the family of my Obscurantism Clock and Breachline, tools for seeing slow, ambient things. Free and open source as the default, a pay-what-you-want supporter model, and perhaps a modest paid tier for the research-mode tooling and long-horizon exports. A tool whose entire promise is “your data never leaves” has almost no business model compatible with that promise, and pretending otherwise would be the first crack in it.
Next Steps: How I’d Build It
The MVP is one browser, one filter-list-based detector, one local database, one weekly report page. No brand attribution yet, just volume, sites, and time, because “1,400 a week” is already the headline that has never been shown to anyone. Then the attribution layer, the diet report design, and the shareable card, which is the only growth engine a no-server product gets.
The real work is credibility: publish the methodology, publish the code, undercount rather than impress, and let the number be checkable. The first journalist who runs it for a month and writes “I counted” is the launch.
Closing
Exposed is the missing ledger of the attention economy, kept by the only party who never had one, you. It does not argue with advertising. It just counts, locally, and lets the number do what numbers do.
If you build this, tell me your weekly total. I have been guessing at mine for years, and I suspect the truth is worse than the guess, which is, come to think of it, exactly why this tool should exist.



















