PM Market Report — Ad Load & Compliance
11 of 17 CNC sites exceed density limits; 4 more have ad-format issues; 1 has validated headroom.
Generated 10 Jun 2026 · runs matrix-21032, matrix-21037, matrix-21048, matrix-21056, monthly-202606 · all 126 rows accounted for.
How to read this report
- Competitor data is observational — measured from the public page only; no GAM, traffic, or revenue data.
- Density = share of the main content area covered by ads (Σ clipped ad heights ÷ content height).
- Limits are the Better Ads Standards: mobile >30%, desktop >50% of main content.
- One hot page disqualifies a headroom candidate — densityMax is the worst sampled URL, not an average.
- An exact 0.0% is never trusted — it almost always means detection or consent failed; such values are excluded from medians and headroom.
Decision board
Top priorities
Opportunity
Portfolio comparison — CNC sites
One bar per CNC site — the worst measured density across all of that site's sections. The tick marks the market median of the theme the worst section belongs to.
Reduce ad load
2 sections root page desktop 75.5% vs 50% +25.5 pp
4 sections /regiony desktop 72.7% vs 50% +22.7 pp
Fix ad formats
Sites whose ad density is within Better Ads limits but that fail other standards.
2 sections Autoplay video with sound Sticky ad too large desktop + mobile
2 sections Pop-up ads Sticky ad too large desktop + mobile
Theme drill-down
Tabloid / Celebrity 3 CNC rows · 0 over limit · CNC worst 45.2% (desktop) vs market median 42.0% · 1 gap
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| competitor | 70.2% | 0.0% unverified zero | Too many ads (density over limit) | observational — no verdict for competitors | |
| CNC | 45.2% | 15.3% | Pop-up ads Sticky ad too large | Compliant load, but fails: Pop-up ads, Sticky ad too large | |
| competitor | 42.0% | 0.0% unverified zero | — | observational — no verdict for competitors | |
| CNC | 37.9% | 6.7% | Autoplay video with sound Sticky ad too large | Compliant load, but fails: Autoplay video with sound, Sticky ad too large | |
| CNC | 8.0% | 4.9% | Pop-up ads Sticky ad too large | Compliant load, but fails: Pop-up ads, Sticky ad too large | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | Autoplay video with sound | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 42.0% · mobile 6.7%
National news 2 CNC rows · 1 over limit · CNC worst 66.1% (desktop) vs market median 32.2% · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| /zpravy | CNC | 66.1% low-confidence bounds | 14.9% | Too many ads (density over limit) Autoplay video with sound Pop-up ads Sticky ad too large | Too many ads — desktop 66.1% vs 50% limit |
| competitor | 36.9% | 9.1% | — | observational — no verdict for competitors | |
| competitor | 34.6% | n/a | Sticky ad too large | observational — no verdict for competitors | |
| competitor | 33.6% | 33.8% | Sticky ad too large Too many ads (density over limit) | observational — no verdict for competitors | |
| CNC | 32.2% | 9.2% | Pop-up ads Sticky ad too large | Compliant load, but fails: Pop-up ads, Sticky ad too large | |
| competitor | 26.0% | n/a | Autoplay video with sound | observational — no verdict for competitors | |
| competitor | 14.9% | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 11.6% | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 3.1% | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | error | n/a | Too many ads (density over limit) Autoplay video with sound Pop-up ads Sticky ad too large | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 32.2% · mobile 12.1%
Sport 3 CNC rows · 3 over limit · CNC worst 63.0% (desktop) vs market median 56.5% · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| CNC | 63.0% | 5.4% | Too many ads (density over limit) Sticky ad too large | Too many ads — desktop 63.0% vs 50% limit | |
| CNC | 60.1% | 18.4% | Too many ads (density over limit) Sticky ad too large Pop-up ads | Too many ads — desktop 60.1% vs 50% limit | |
| CNC | 57.4% | 12.3% | Too many ads (density over limit) Sticky ad too large | Too many ads — desktop 57.4% vs 50% limit | |
| /sport | competitor | 56.5% | 0.0% unverified zero | Too many ads (density over limit) | observational — no verdict for competitors |
| competitor | 43.3% | 4.4% | Sticky ad too large | observational — no verdict for competitors | |
| competitor | 18.7% | 3.4% | — | observational — no verdict for competitors | |
| /sport | competitor | 17.7% low-confidence bounds | 3.1% | — | observational — no verdict for competitors |
| /sport | competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 56.5% · mobile 4.9%
Auto / Moto 3 CNC rows · 2 over limit · CNC worst 67.4% (desktop) vs market median 49.4% · 1 gap
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| CNC | 67.4% | 14.0% | Too many ads (density over limit) Sticky ad too large | Too many ads — desktop 67.4% vs 50% limit | |
| competitor | 63.1% | 1.5% | Too many ads (density over limit) Sticky ad too large | observational — no verdict for competitors | |
| competitor | 52.5% | 3.3% | Too many ads (density over limit) | observational — no verdict for competitors | |
| CNC | 46.2% | 50.3% | Too many ads (density over limit) | Too many ads — mobile 50.3% vs 30% limit | |
| competitor | 33.7% low-confidence bounds | 19.1% | — | observational — no verdict for competitors | |
| CNC | 19.6% | 9.8% | — | Room for more — mobile 9.8% vs theme median 9.8% | |
| competitor | 0.0% unverified zero | 6.0% | — | observational — no verdict for competitors | |
| competitor | n/a | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 49.4% · mobile 9.8%
Lifestyle / Magazine 3 CNC rows · 2 over limit · CNC worst 80.3% (desktop) vs market median 75.5% · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| CNC | 80.3% | 6.2% | Too many ads (density over limit) Sticky ad too large Pop-up ads | Too many ads — desktop 80.3% vs 50% limit | |
| CNC | 75.5% | 8.5% | Too many ads (density over limit) Sticky ad too large | Too many ads — desktop 75.5% vs 50% limit | |
| CNC | 32.2% | 9.1% | Sticky ad too large | Compliant load, but fails: Sticky ad too large | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 75.5% · mobile 8.5%
Women / Fashion 1 CNC row · 0 over limit · CNC worst 37.9% (desktop) vs market median 50.0% · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| competitor | 56.0% | 0.0% unverified zero | Too many ads (density over limit) | observational — no verdict for competitors | |
| competitor | 50.0% | 13.0% | Too many ads (density over limit) Autoplay video with sound | observational — no verdict for competitors | |
| CNC | 37.9% | 6.7% | Autoplay video with sound Sticky ad too large | Compliant load, but fails: Autoplay video with sound, Sticky ad too large | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 50.0% · mobile 9.8%
Business / Economy 1 CNC row · 0 over limit · CNC worst 45.1% (desktop) vs market median 19.7% · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| /ekonomika | competitor | 56.9% | n/a | Too many ads (density over limit) | observational — no verdict for competitors |
| CNC | 45.1% | 5.5% | Sticky ad too large | Compliant load, but fails: Sticky ad too large | |
| /ekonomika | competitor | 19.7% low-confidence bounds | 0.0% unverified zero | — | observational — no verdict for competitors |
| competitor | 16.9% | 5.2% | — | observational — no verdict for competitors | |
| competitor | 0.6% | 4.4% | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| /ekonomika | competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
| /byznys | competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 19.7% · mobile 5.2%
Health 1 CNC row · 1 over limit · CNC worst 68.9% (desktop) vs market median 35.4% · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| /zdravi | CNC | 68.9% low-confidence bounds | 12.7% | Too many ads (density over limit) Autoplay video with sound Sticky ad too large Pop-up ads | Too many ads — desktop 68.9% vs 50% limit |
| competitor | 1.9% | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 35.4% · mobile 12.7%
Food / Recipes 1 CNC row · 0 over limit · CNC worst 40.6% (desktop) vs market median 40.2% · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| CNC | 40.6% low-confidence bounds | 21.0% low-confidence bounds | — | Healthy ad load | |
| competitor | 39.7% low-confidence bounds | 10.7% low-confidence bounds | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | Autoplay video with sound | observational — no verdict for competitors | |
| /sekce/recepty-33 | competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 40.2% · mobile 15.8%
Travel 1 CNC row · 1 over limit · CNC worst 74.9% (desktop) vs market median 74.9% · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| CNC | 74.9% | 8.5% | Too many ads (density over limit) Sticky ad too large | Too many ads — desktop 74.9% vs 50% limit | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | n/a | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 74.9% · mobile 8.5%
Regional news 1 CNC row · 1 over limit · CNC worst 72.7% (desktop) vs market median 43.8% · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| /regiony | CNC | 72.7% low-confidence bounds | 14.0% | Too many ads (density over limit) Sticky ad too large Pop-up ads | Too many ads — desktop 72.7% vs 50% limit |
| competitor | 14.9% | 0.0% unverified zero | — | observational — no verdict for competitors | |
| /praha | competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
| /regiony | competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 43.8% · mobile 14.0%
Radio 2 CNC rows · 2 over limit · CNC worst 88.9% (desktop) vs market median 57.6% · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| CNC | 88.9% | 1.3% | Too many ads (density over limit) Sticky ad too large Autoplay video with sound | Too many ads — desktop 88.9% vs 50% limit | |
| CNC | 57.6% | 5.3% | Too many ads (density over limit) | Too many ads — desktop 57.6% vs 50% limit | |
| competitor | 36.9% | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 57.6% · mobile 3.3%
E-commerce / Classifieds 1 CNC row · 1 over limit · CNC worst 68.5% (desktop) vs market median 68.5% · 2 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| CNC | 68.5% low-confidence bounds | n/a | Too many ads (density over limit) Sticky ad too large | Too many ads — desktop 68.5% vs 50% limit | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| /inzerce | competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 68.5% · mobile n/a
Additional market benchmarks — themes with no CNC presence, observational only
Technology / IT / Gaming competitor benchmark — 2 rows measured · 6 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| competitor | 1.7% | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 1.7% · mobile n/a
TV / Video / Streaming competitor benchmark — 5 rows measured · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| competitor | 17.1% | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 9.8% | 10.6% | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 13.5% · mobile 10.6%
Kids / Family competitor benchmark — 4 rows measured · 1 gap
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| competitor | 62.9% | 8.8% | Too many ads (density over limit) | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| /onadnes/deti | competitor | n/a | 0.0% unverified zero | — | observational — no verdict for competitors |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 62.9% · mobile 8.8%
Home / Garden competitor benchmark — 4 rows measured · 2 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| competitor | n/a | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop n/a · mobile n/a
Photo / Community competitor benchmark — 1 row measured · 0 gaps
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop n/a · mobile n/a
Portal / Mail / Search competitor benchmark — 7 rows measured · 1 gap
| Domain / section | Owner | Desktop | Mobile | Failed standards | Verdict |
|---|---|---|---|---|---|
| competitor | 54.1% | n/a | Too many ads (density over limit) Sticky ad too large | observational — no verdict for competitors | |
| competitor | 53.7% | n/a | Too many ads (density over limit) | observational — no verdict for competitors | |
| competitor | 53.4% | n/a | Too many ads (density over limit) Sticky ad too large | observational — no verdict for competitors | |
| competitor | 50.3% | 7.3% | Too many ads (density over limit) Sticky ad too large | observational — no verdict for competitors | |
| competitor | 6.9% low-confidence bounds | n/a | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors | |
| competitor | 0.0% unverified zero | 0.0% unverified zero | — | observational — no verdict for competitors |
Theme median (measured rows incl. competitors): desktop 53.4% · mobile 7.3%
Appendix
Measurement gaps 14 rows not measurable · 7 CNC
| Theme | Domain | Status | Reason | Detail |
|---|---|---|---|---|
| Technology / IT / Gaming | avmania.cz | not_measurable | turnstile_bot_wall | zive.cz-family property behind the same Cloudflare bot challenge; CMP unreachable headless. CNC property — not externally observable |
| Technology / IT / Gaming | connect.cz | not_measurable | turnstile_bot_wall | Redirects to zive.cz Cloudflare Turnstile bot challenge; CMP never loads. CNC property — not externally observable |
| Technology / IT / Gaming | digiarena.cz | not_measurable | turnstile_bot_wall | Held at Cloudflare managed-challenge (digiarena.zive.cz); bot wall blocks the CMP. CNC property — not externally observable |
| Technology / IT / Gaming | doupe.cz | not_measurable | turnstile_bot_wall | Redirects to doupe.zive.cz Turnstile bot challenge; CMP never loads. CNC property — not externally observable |
| Technology / IT / Gaming | mobilmania.cz | not_measurable | turnstile_bot_wall | Redirects to mobilmania.zive.cz Turnstile bot challenge; CMP blocked. CNC property — not externally observable |
| Technology / IT / Gaming | zive.cz | not_measurable | turnstile_bot_wall | Cloudflare Turnstile "Verify you are human" wall — real content/CMP never renders headless. CNC property — not externally observable |
| Auto / Moto | cars.cz | not_measurable | turnstile_bot_wall | Cloudflare Turnstile interstitial blocks the real site; no CMP reachable. |
| E-commerce / Classifieds | hledejceny.cz | not_measurable | domain_dead | ERR_HTTP2_PROTOCOL_ERROR in Chromium and 301 loop to www with empty replies (curl exit 52) from CZ — server is broken, not geo-blocked. CNC property — not externally observable |
| E-commerce / Classifieds | heureka.cz | not_measurable | turnstile_bot_wall | Cloudflare Turnstile interstitial; real Heureka never loads. |
| Home / Garden | living.cz | not_measurable | domain_dead | Navigation timeout from BOTH US and CZ probes (TCP connects, no HTTP response). Effectively unreachable. |
| Home / Garden | magazinzahrada.cz | not_measurable | domain_dead | Navigation timeout from BOTH US and CZ probes. Effectively unreachable. |
| Kids / Family | betynka.cz | not_measurable | redirects_to_unrelated_site | Domain hosts an unrelated leisure-club organization, not the VLM kids magazine (CZ probe screenshot confirms). The print magazine appears to have no standalone site; fix the taxonomy if one is found. |
| Portal / Mail / Search | email.cz | not_measurable | login_required | Redirects to the Seznam webmail LOGIN portal — an auth gate, not a content surface. Not monitorable. |
| Tabloid / Celebrity | extralife.cz | not_measurable | domain_parked | Under-construction placeholder ("Chystáme pro vás nový web") — no content surface to measure. Re-check after relaunch. |
Coverage & runs
Generated 10 Jun 2026 from 112 measured matrix rows.
Runs: matrix-21032, matrix-21037, matrix-21048, matrix-21056, monthly-202606
Screenshots captured across runs monthly-202606, matrix-21037, matrix-21048, matrix-21032, matrix-21056 (manifest 10 Jun 2026).
Full catalog coverage: all 126 matrix rows accounted for (measured or documented gap).
Methodology & definitions
How density is measured. Ad density is the sum of each ad placement's clipped height divided by the height of the page's main content area (Σ clipped_height(ad) ÷ content_height). Each placement is counted once by physical-position dedup; headers, footers and site navigation are excluded from the content area. The reported figure is densityMax — the worst value across all sampled URLs for that row and device.
What "observational" means. Competitor rows are measured exactly like CNC rows but from the public page only: we see rendered ad slots, not ad-server configuration, fill rates, traffic or revenue. Competitor figures are context for comparison, never compliance verdicts.
Content-bounds confidence. Rows whose main-content area was detected via the heuristic or viewport-fallback chain carry a low-confidence bounds badge wherever their density is shown — treat those densities as indicative, not exact.
Verdict vocabulary.
- Too many ads — measured density above the Better Ads limit (50% desktop / 30% mobile of main content).
- Format issues — density within limits, but another standard fails (sticky / pop-up / autoplay / prestitial).
- Headroom — both devices fully pass with a trustworthy density ≤25%. One hot sampled page disqualifies the candidate.
- Healthy — no violations, but not a headroom candidate.
- Errored — measurement failed; no verdict is given.
- Partial (amber dot) — some standards errored while others measured; never shown as a clean pass.
- Unverified zero — an exact 0.0% density usually means ad detection or consent failed silently; excluded from medians and headroom.
- Observational — competitor rows get no compliance verdict.
Full method spec: Methodology.