Published: September 15, 2026
The Ad Density metric describes a typical user's balance of content and advertising visibility.
How Chrome calculates Ad Density
Ad Density is measured using viewport sampling throughout the duration of the page visit. Each second, Chrome samples the viewport and calculates the ratio of the visible ad area to the total viewport area.
The average Ad Density for a session is computed by taking the average across all 1-second viewport samples:
Ad Density is reported as an integer percentage (for example, 50 represents 50%). This is formatted as a string in the CrUX API.
As an example, if:
- A page loads with 50% of the viewport showing ads and the user reads that for 5 seconds
- The user then scrolls down and no ads show in the viewport and the user reads that for 5 seconds
Then, the reported Ad Density for that session for that page will be 25 which is calculated with:
The Chrome User Experience Report (CrUX) aggregates data across all eligible Chrome users, and provides a 75th percentile number across those page views. Only pages with ads are considered for the CrUX ad metrics. Pages and origins without at least one authorized seller defined in ads.txt file won't have ad metrics data in CrUX. This data is available at the URL and origin-level, subject to the CrUX eligibility criteria.
Collecting Ad Density through JavaScript
There are challenges reporting across cross-origin iframes which most ads are delivered through. Therefore, there is no JavaScript API to allow similar detection for Real User Monitoring (RUM) tooling.
Tooling
Ad Density is available in the CrUX API, CrUX History API, and the DevTools Ad panel. To learn more about using these tools, see the CrUX ad metrics tooling guide.
We are working on adding the ad metrics to the CrUX dataset on BigQuery to enable users to query and analyze the ad metrics using SQL.
Feedback
If you have any questions or feedback regarding ad metrics, reach out to us at the Chrome UX Report Google Group.