AW AdWeight Report 40-Week Ad Network Field Telemetry
01 / Executive Briefing

Real-User Ad Network Field Telemetry, Audited Week by Week.

AdWeight Report benchmarks 17 publisher ad networks against 40 weeks of public Google Chrome User Experience Report (CrUX) field telemetry across verified Prebid.js publisher domains.

CrUX API Notice: CRUX_API_KEY is not configured in this environment. Supply verification continues; weekly CrUX field telemetry will populate once the API key is set.
Telemetry Status

At least two networks with CrUX field telemetry are required to compute the cross-network spread for this cohort filter.

Filter: form=PHONE | media=all | arch=all | CrUX 28d rolling window: not collected yet
02 / Executive Field Guide

What Google CrUX Is, How Google Operates It, and How It Reports Page Performance

Unlike synthetic lab tests run from a single server, the Chrome User Experience Report (CrUX) is Google's official dataset of real-user field telemetry collected from opted-in Chrome browsers worldwide. Every weekly point in this report represents a rolling 28-day window evaluated at the 75th percentile (p75): 3 out of 4 real page loads experienced that level of latency or better.

Largest Contentful Paint (LCP)
≤ 2500 ms

Measures how quickly the main headline or hero visual finishes rendering. Heavy synchronous ad tags and unthrottled Prebid.js auctions can affect bandwidth and main-thread work during initial render.

Google Search Good threshold: p75 ≤ 2500 ms
Interaction to Next Paint (INP)
≤ 200 ms

Measures main-thread responsiveness across all taps, clicks, and key presses during a visitor's session. Bid adapter auction loops, real-time identity modules, and creative iframe scripts can affect INP on ad-supported sites.

Google Search Good threshold: p75 ≤ 200 ms
Cumulative Layout Shift (CLS)
≤ 0.10

Quantifies unexpected visual movement after content appears on screen. Unreserved ad slot containers, late-expanding multi-size units, and injected sticky wrappers can affect CLS.

Google Search Good threshold: p75 ≤ 0.10
experimental_ad_cpu

Ad Script CPU Time (ms)

Total main-thread CPU milliseconds attributed to ad-tagged scripts and frames at p75.

CrUX History API metric
experimental_ad_kilobytes

Ad Network Transfer (KB)

Total kilobytes downloaded by ad resources (wrappers, bidder scripts, creatives, and video assets) at p75.

CrUX History API metric
experimental_ad_count

Observed Ad Frames

Count of ad frames observed per page load at p75, enabling per-ad CPU and per-ad transfer normalization.

CrUX History API metric
experimental_ad_density

Viewport Ad Density (%)

Percentage of viewport area occupied by ad slots at p75 across real user sessions.

CrUX History API metric
03 / Interactive Network Leaderboard

Ad Network Field Rankings (Phone)

Slice 17 publisher ad networks by device form factor, on-page Prebid.js media cohort (Display, Video, or Display + Video), and page navigation architecture (Single-Page vs Multi-Page Application).

RankAd NetworkVerified LiveWith CrUX (n)Score (0-100)Ad CPU Median (p75)CPU / AdAd KB (p75)Ad CountAd DensityCWV Pass %LCP (p75)INP (p75)CLS (p75)
No networks match the selected cohort filter with sufficient verified sample size.
CrUX 28d rolling window: not collected yet Composite Score (0-100): 80% Ad Overhead (30% Ad CPU + 20% CPU/Ad + 20% Ad KB + 10% KB/Ad) + 20% Best-2-of-3 Core Web Vitals via fixed half-life exponential decay Minimum cohort sample threshold: n ≥ 5 verified CrUX-reporting domains Thresholds: LCP Good <= 2500 ms (Poor > 4000 ms) | INP Good <= 200 ms (Poor > 500 ms) | CLS Good <= 0.10 (Poor > 0.25) | CWV Pass Share Good >= 75% (Warn >= 50%) Pruned below minimum sample threshold: Concept (n=0), MonetizeMore (n=0), Pub Collective (n=0), Freestar (n=0), Playwire (n=0), Rev IQ (n=0), Raptive (n=0) Not yet sampled: Aditude, Livewrapped, PubTech, Pubnation, Snigel, Venatus, Ezoic, NitroPay, Setupad, Mediavine
04 / Head-to-Head Network Showdown

Direct Executive Comparison

Compare any two networks side by side across 40 weeks of Google CrUX telemetry and supply verification funnel metrics.

Contender A | Phone | All Formats | ALL p75 Median (unfiltered fallback)

Aditude: 40-Week Ad CPU Trajectory

Awaiting CrUX field history

Weekly CrUX field history has not been collected for this metric and form factor yet.

Sample n=0 sites with field data | CrUX 28d rolling window: not collected yet | sellers.json fetched 2026-10-29
Contender B | Phone | All Formats | ALL p75 Median (unfiltered fallback)

Concept: 40-Week Ad CPU Trajectory

Awaiting CrUX field history

Weekly CrUX field history has not been collected for this metric and form factor yet.

Sample n=0 sites with field data | CrUX 28d rolling window: not collected yet | sellers.json fetched 2026-10-29
Telemetry Dimension (Phone)AditudeConcept
Composite Performance Score (0-100)--
Verified Live Prebid Domains (CrUX Reporting n)0 (0 with CrUX)1 (0 with CrUX)
Ad Refresh Detected Share0 (0.0%)1 (100.0%)
Ad Script CPU Median (experimental_ad_cpu p75)--
Ad Transfer Median (experimental_ad_kilobytes p75)--
Core Web Vitals Pass Share (Reported LCP, INP, CLS Within Good)--
Largest Contentful Paint Median (LCP p75)--
Interaction to Next Paint Median (INP p75)--
Cumulative Layout Shift Median (CLS p75)--
Contender A (Phone | All Formats | ALL p75 Median (unfiltered fallback)): Sample n=0 sites with field data | CrUX 28d rolling window: not collected yet | sellers.json fetched 2026-10-29 Contender B (Phone | All Formats | ALL p75 Median (unfiltered fallback)): Sample n=0 sites with field data | CrUX 28d rolling window: not collected yet | sellers.json fetched 2026-10-29
05 / Verification Methodology

Four-Stage Supply & Telemetry Audit Pipeline

Public sellers.json files list every seat an exchange or management company declares, including confidential seats, intermediaries, and domains that may no longer run that network's tag. AdWeight Report verifies each candidate publisher domain through a four-stage pipeline before including its CrUX telemetry in a network's score.

Stage 01 / Supply Discovery

Deterministic SHA-256 Sampling

We ingest each network's public IAB Tech Lab sellers.json feed, filter for non-confidential PUBLISHER and BOTH seats, and order domains by deterministic SHA-256 hash so progressive sampling never favors alphabetical or sequential seat IDs.

Refreshed every 7 days
Stage 02 / Authorization Proof

Live Publisher ads.txt Alignment

We fetch the publisher's live ads.txt file and verify that it explicitly authorizes the network's exchange domain and matching seller_id. Stale sellers.json seats without reciprocal publisher authorization are rejected.

Reciprocal seat check
Stage 03 / On-Page Execution

Headless Chromium Prebid.js Probe

A headless Chromium browser loads the live publisher page, inspects window._pbjsGlobals, verifies active Prebid.js auction execution, classifies Display vs Video mediaTypes, and tests internal link navigation for SPA vs MPA routing.

Smart-cached for 60 days
Stage 04 / Field Telemetry

40-Week CrUX History API

For every verified domain, we query Google's official records:queryHistoryRecord endpoint across Phone and Desktop form factors, storing up to 40 weekly 28-day rolling p75 collection periods.

Refreshed every 7 days