Published: September 22, 2025, Last updated: January 7, 2026
For users, few things are more frustrating than a web page that suddenly slows to a crawl, drains their battery, or eats up their monthly data allowance. Sometimes, the culprit isn't the content they came to see, but an advertisement running in the background.
To protect the user experience, Chrome enforces limits on the resources an ad can use. When an ad exceeds these limits—becoming a heavy ad—Chrome unloads it to free up the device's resources.
This documentation explains how this intervention works, the specific thresholds involved, and some best practices you can use to ensure ads perform smoothly.
What is the heavy ad intervention?
The heavy ad intervention is a mechanism in Chrome that monitors the resource usage of ad frames. If an ad consumes a disproportionate amount of bandwidth or CPU processing power, Chrome will unload that specific ad frame.
Instead of the ad, the user will see a gray box with a message stating Ad removed usually accompanied by a Details link explaining that the ad used too many resources.
When is an ad considered heavy?
Chrome determines an ad is heavy based on three specific thresholds. If an ad hasn't been interacted with by the user and it meets any of the following criteria, it will be unloaded:
- Network usage: The ad uses more than four megabytes of network bandwidth.
- Peak CPU usage: The ad uses the main thread for more than 15 seconds in any 30-second window.
- Total CPU usage: The ad uses the main thread for more than 60 seconds total. All resources used by any descendant iframes of the ad frame count against the limits for the intervention on that ad.
What are some common triggers for this intervention?
Certain types of ad behaviors are more likely to trigger these interventions than others. Common culprits include:
- Uncompressed media: Loading extremely large, poorly compressed images.
- Heavy Javascript: Performing extensive operations, such as decoding video files using JavaScript.
- Heavy calculations: Performing complex calculations in the background.
- Video content without gestures: Loading large video files before a user interacts with an ad.
What happens when an ad is removed?
When Chrome detects that an ad has exceeded the heavy ad thresholds, it takes immediate action to protect the user's device resources.
The user experience
From the user's perspective, the ad is immediately unloaded. In its place, Chrome displays a gray box with a message: Ad removed. If the user clicks the Details within the container, they will see a specific explanation.
The developer experience
Chrome also generates an intervention report with the Reporting API to let you know exactly what happened. Previously, these reports were only sent to the ad frame itself and its descendant frames. However, publishers often had no way of knowing that ads on their own pages were being removed. To address this, Chrome has expanded the reporting mechanism. Intervention reports are now sent to the embedding frame (the parent of the root ad frame) in addition to the ad frame itself. Reports sent to the embedding frame include the child frame's ID and the ad frame URL.
To configure the page for HTTP reports, the response should include the Report-To header:
Reporting-Endpoints: default="https://example.com/reports"
The post request triggered will include a report like this: