Consent · 28 September 2026
Analytics Without Consent: What EU Sites Can Still Count After Reject
“Analytics without consent” is the search people type when a banner Reject emptied their GA4 chart and they still need to know whether /pricing loaded. This note is for EU WordPress and Shopify shops that want an observed pageview after decline — not a modeled fill, and not a second After Reject essay. For observed hits vs Consent Mode gaps, read /blog/google-analytics-alternatives-after-reject. We will not invent a recovery percentage. A published dual-run GA4 vs Cookie Free Analytics percentage table does not exist — say that aloud before you sell a lift number.
What “analytics without consent” usually means (and what it does not)
Usually it means: count the HTML that ran when someone clicked Reject or never saw a grant. A cookieless script that does not set a cookie, localStorage id, or lasting fingerprint can record that load. It does not mean “skip the banner while Google Ads and Meta still fire.” Those tags are a different conversation. Your counsel owns the final call.
It also does not mean an ads suite, session replay, or Mixpanel-depth product analytics. Cookie Free Analytics answers pageviews, sources, campaigns (five UTM tags), and a named goal if you fire cfa('signup'). Keep GA4 when you need audiences.
Cookie banner Reject vs cookieless pageviews — two different questions
Reject is a consent answer. A cookieless pageview is a measurement of whether the page ran. Mixing them invents a story: “we recovered X% of Reject.” That X is not a Cookie Free Analytics product number. Point to /blog/google-analytics-alternatives-after-reject for the observed-vs-modeled checklist. Do not duplicate a recovery % here — there is none to duplicate.
When Reject and list blockers remove googletagmanager.com hits, GA4 page_view falls. The shop page still rendered. A ~1 KB cookieless beacon can still record the landing. Those are two instruments, not one percentage.
Dual-run checklist beside GA4 (Explore page_view + GSC clicks + /cf.js — no invented recovery %)
Leave GA4 where it is. In Explore, take event_count for eventName = page_view over seven days in the shop timezone. Optionally pull Search Console clicks for the same window as a third column — GSC is not a GA replacement.
Add Cookie Free Analytics: create the site, paste /cf.js (WordPress plugin, Shopify theme settings, or Custom HTML in GTM — /docs/gtm). Wait seven days. Compare pageviews to pageviews. If ours is higher, the usual causes are Reject, blockers, and Safari. If GA is higher, check a missing snippet on a template. We will not publish a dual-run percentage table for you. Your two totals, same week, are the case study. Invite yourself to /blog/leave-ga-on-for-a-week or /blog/run-next-to-ga4-for-a-week before ripping anything out.
What Cookie Free Analytics measures (script ~1504 raw / 926 gzip; not Ads, replay, Mixpanel depth)
On 28 Sep 2026, /cf.js measured about 1504 B raw and ~926 B gzip. We measure pageviews, sources, campaigns, named goals, and — on Starter and Growth — Watch on a hostname you already added. Growth adds funnels. Live is the last path in five minutes.
Beacons hit Frankfurt; pageviews sit in Ireland Postgres. Vercel is still a US company — we disclose that on /europe. We will not build Google Ads audiences, session replay, heatmaps, or Mixpanel-depth product analytics. Many sites run both: GA4 for ads, us for the unblocked count.
Pricing + keep GA4 when you need audiences — Hobby / Starter €4 / Growth €8 → CTA /pricing + /docs/gtm
Hobby is free with a Cookie Free Analytics badge — 3 sites, 90 days. Starter from €4 at 10k pageviews. Growth from €8. Events are not billed. Operator: Prestons Creek Capital. Support: hello@cookiefreeanalytics.com. Full tiers on /pricing.
Keep GA4 when you need audiences, remarketing, or BigQuery joins. Add Cookie Free Analytics when you wanted to know whether the page loaded after Reject. Install via /cf.js, the WordPress plugin, Shopify theme settings, or /docs/gtm. Soft path for the hole itself: /consent-gap.