Know When Browsers Override Your Code
Browsers protect users by blocking heavy ads, muting auto-playing videos, and throttling resource-intensive scripts. These interventions happen silently — your users see broken features, your ads disappear, and you have no idea why.
The Problem
Your Content Is Being Blocked—And You Don't Know It
Modern browsers actively protect users from bad experiences. When an ad consumes too much CPU, Chrome removes it. When a video tries to auto-play with sound, it gets muted. When a script on a slow connection would block page rendering, it gets skipped entirely. These aren't bugs — they're interventions.
The problem? These interventions are invisible to you. Chrome's Heavy Ad Intervention removes ads that exceed resource thresholds — more than 60 seconds of CPU time, or more than 4MB of network data. The user sees "Ad removed. This ad uses too many resources." Your ad server still reports the impression as delivered. You lose revenue without any signal that something went wrong.
It's not just ads. Auto-play policies mute videos that try to play sound without user interaction. Slow
connection interventions block scripts injected via document.write(). Background timer throttling
reduces CPU usage for inactive tabs. Each intervention breaks something your code expected to work — and
traditional APM tools can't see any of it.
The numbers are stark: only 0.3% of ads trigger heavy ad intervention, but those ads account for 27% of all ad network data and 28% of ad CPU usage. And 86% of blocked heavy ads are video ads — exactly the premium inventory publishers depend on for revenue.
The Solution
Intervention Reporting: Browser Decisions, Delivered to Your Backend
The Intervention Reporting API is a WICG specification that lets browsers send intervention reports to an endpoint you control. When the browser decides to override your code — blocking an ad, muting a video, or throttling a script — it generates a report explaining exactly what happened and why.
Intervention reporting is supported by 80% of browsers worldwide — Chrome 69+, Edge 79+, and
Opera 56+. When any intervention occurs, the browser sends a report with the intervention id (like
"HeavyAdIntervention"), a human-readable message matching what appears in DevTools, and the
sourceFile, lineNumber, and columnNumber where the problem originated.
Heavy ad thresholds are clearly defined: more than 60 seconds of total CPU time, more than 15 seconds in any 30-second window, or more than 4MB of network data before user interaction. When any threshold is crossed, Chrome removes the ad and can send you a report.
Configuration requires just HTTP headers. Point your Reporting-Endpoints header at your endpoint,
and browsers start sending intervention reports automatically. No JavaScript SDK, no build process changes, no
client-side overhead.
The Challenge
But Interventions Are Just the Tip of the Iceberg
Knowing that an intervention happened is only the first step. The real challenge is understanding which ad creative, which video player, or which third-party script caused the problem—and how often it's happening across your user base.
A single heavy ad report tells you one iframe was removed. But was it a specific creative from one ad network? A misconfigured video player? A rogue analytics script? Without aggregation and source identification, you're debugging blind. And with high-traffic sites potentially generating thousands of intervention reports, finding the signal in the noise is its own engineering challenge.
Revenue impact compounds the urgency. Every blocked heavy ad is lost revenue. Every muted video reduces engagement. Every throttled script might break critical functionality. You need to identify problems fast — before they affect more users and cost more money.
Traditional monitoring tools don't help here. Your APM sees successful page loads. Your ad server reports impressions delivered. The intervention happened entirely in the browser layer, invisible to your backend infrastructure.
The Answer
The Reporting API Makes Browser Interventions Visible
Catch blocked ads, muted videos, and throttled scripts before they cost you revenue.
-
Real-Time Visibility
- Know immediately when browsers block your content. See intervention reports as they happen — heavy ads removed, videos muted, scripts throttled. Stop discovering problems from user complaints.
-
Revenue Protection
- Identify which ad creatives exceed Chrome's resource thresholds before they drain your revenue. Catch heavy ads early, optimize or replace them, and protect your ad inventory.
-
Creative Optimization
- Pinpoint exactly which ads, videos, or scripts trigger interventions. Get the source file and line number to identify problematic third-party code or misconfigured players.
-
Route to Your Stack
- Send intervention reports to AppSignal, webhooks, or Google Chat. Integrate with your existing alerting and monitoring tools — no new dashboards to check.
Ready to Monitor Interventions?
Stop losing revenue to invisible browser interventions. Know when ads are blocked, videos are muted, and scripts are throttled — before your users notice.