Ad Density

Kevin K. Lee
Kevin K. Lee

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:

$$ \text{Ad Density} = \text{Average}\left(\frac{\text{Total bounding box area of visible ads}}{\text{Total viewport area}}\right) $$
Ad Densite calculation

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:

$$ \frac{(50\% \text{ of the viewport showing ads} \times 5\text{ sec}) + (0\% \text{ of the viewport showing ads} \times 5\text{ sec})}{10\text{ total seconds}} = 25\% $$
Ad Density example calculation

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.