A real site for testing cookie consent

This site runs the Calm Consent runtime the way a customer would install it, with real Google Analytics, YouTube, and Google Maps behind it. Nothing optional loads until you choose, and withdrawing your choice stops it again.

Analytics

Google Analytics 4 on every page, with Google Consent Mode v2 signalled before the tag runs.

Marketing

YouTube videos behind a placeholder that requests nothing from YouTube, not even a thumbnail, before you allow it.

Preferences

A Google Maps embed, and the theme switch in the header, which remembers your theme only when you allow preferences.

What each page tests

Page What it tests
Every page The banner, GA4 and Consent Mode in <head>, the settings link in the footer, and the test panel
Videos Blocked YouTube embeds, a site-hosted thumbnail, and a video added after the page has loaded
Map A plain gated iframe (no adapter), permitted by preferences
Strict CSP A nonce-based Content Security Policy with 'strict-dynamic': the runtime and every service must still work without inline-script exceptions
Dansk A Danish page: the banner follows <html lang="da">
Privacy The privacy policy the banner links to, with a link that reopens the settings

How to test

Use a private window for each run, keep the browser's developer tools open on the Network and Application panels, and watch the test panel below. To start over without a new window, use Reset to a fresh visitor.

  1. Fresh visit. The banner shows. The test panel lists no other hosts than our CDN, and no cookies.
  2. Reject. Choose reject, reload, and open a second page. No request reaches Google, and the only cookie is cc_consent.
  3. Accept. Reset, then accept all. GA4 loads once per page; the Consent Mode row shows consent default with nothing granted, then consent update. On the Videos page the players load directly.
  4. Customize. Reset, then allow analytics only: GA4 loads, the videos and the map stay blocked.
  5. Withdraw. Open Cookie settings, turn everything off, and save. The page reloads, the _ga cookies and the stored theme are gone, and no further requests reach Google.

Receipts go to api.calmconsent.com, which does not exist yet. The runtime retries a few times and reports the failure in the console; the choice still applies.