What does GA4 measure when cookies are rejected?
When a user rejects cookies (with Consent Mode V2 Advanced mode active), GA4 sends a cookieless ping — an anonymised hit with no persistent identifier, no session stitching, and no user-level data. From these pings, GA4 and Google Ads can model aggregate behaviour (how many non-consenting users converted, roughly how they were acquired) but cannot identify individual sessions, stitch multi-page journeys, or attribute conversions at the user level. Without Consent Mode (or with Basic mode), GA4 receives nothing at all from non-consenting users. With Advanced mode, the cookieless pings provide the signal needed for modelling, recovering approximately 50–80% of "lost" conversions as modelled estimates.
What breaks with cookie rejection
What GA4 loses entirely (no recovery):
Session-level data for non-consenting users:
- Individual sessions are not recorded
- Page-by-page navigation within a visit is not tracked
- Engagement time is not measured
- Events fired during non-consented sessions are not counted in GA4 reports
User-level data:
- Non-consenting users are not counted in
Usersmetric - They do not appear in User Explorer
- They are not added to GA4 Audiences
- Returning user status cannot be determined (no cookie = no recognition on return visit)
Attribution:
- Non-consenting sessions are not attributed to channels
- Traffic from paid campaigns where users reject consent is not linked to those campaigns
- Cross-session attribution paths are broken (first touch in session 1 cannot be linked to conversion in session 3 if any session lacked consent)
What GA4 partially recovers (via modelling):
Aggregate conversion counts (Consent Mode Advanced + Google Ads):
Google models how many total conversions occurred across consented + non-consenting users. These appear as modelled conversions in Google Ads reports and fold into GA4 conversion totals.
Channel-level traffic estimates:
Google uses aggregated signals (cohort patterns, campaign data, page-level traffic) to estimate which channels drove non-consenting traffic. These estimates are less granular than actual attribution.
What modelling cannot do:
- Provide individual user journeys
- Tell you which specific page a non-consenting user abandoned on
- Populate GA4 Audience lists with non-consenting users
- Recover data for properties using Basic mode (no cookieless pings = no modelling signal)
Need to validate whether consent timing is distorting your GA4 data?
Which GA4 reports are most affected
Heavily affected by consent rejection:
User counts: Significantly understated. Non-consenting users are invisible. For a UK property with 40% consent rejection, Users in GA4 underrepresents true visitors by approximately 40%.
Session counts: Same problem. Sessions from non-consenting users are not recorded.
Engagement metrics: Engagement rate, average engagement time, pages per session — all calculated only from consented sessions. Non-consenting users may behave differently (different device, demographic, intent profile) so the metrics may also be qualitatively different from what the full population would show.
Funnel analysis (Explorations): Funnel completion rates are calculated from consented users only. If non-consenting users have lower purchase intent (or higher — there's no way to know from non-consenting data alone), funnel conversion rates may be skewed.
Audience lists: GA4 audiences built in Admin only add consented users. Remarketing list sizes are therefore underrepresented in markets with high consent rejection.
Less affected by consent rejection:
Google Ads conversion reporting (with Consent Mode V2 Advanced): Modelled conversions fill much of the gap. Total attributed conversions are more accurate than session counts because modelling is specifically calibrated for conversion estimation.
Revenue reporting (with Smart Bidding): Smart Bidding's automated bidding algorithms incorporate modelled conversion data, so bid optimisation is less affected than raw GA4 reports suggest.
Search Console data: GSC is independent of GA4 consent — it reports server-side from Google's crawl and indexing data, not from client-side tracking. Organic search performance data is unaffected by consent rejection.
The data quality floor by market
Based on average CMP accept rates + Advanced mode modelling recovery, the effective data quality floor — what percentage of true traffic and conversions you can measure or model — in each market:
| Market | Avg accept rate | With Advanced mode | Without Consent Mode |
|---|---|---|---|
| US (CCPA notice) | 75–90% | ~90–95% (little gap to model) | ~75–90% |
| UK | 45–65% | ~70–80% | ~45–65% |
| France | 35–55% | ~60–75% | ~35–55% |
| Germany | 25–40% | ~50–65% | ~25–40% |
| Netherlands | 40–60% | ~65–78% | ~40–60% |
The "With Advanced mode" column shows the estimated total signal (consented + modelled) as a percentage of true traffic. This is the number to communicate to stakeholders: "Our GA4 data represents approximately 70–80% of actual UK traffic, with the remainder estimated via modelling."
Communicating data quality to stakeholders
This framing helps stakeholders understand GA4 numbers in consent-restricted markets without losing confidence in the data:
This framing is accurate, professionally sound, and prevents the common stakeholder mistake of treating GA4 numbers as perfect census data.
FAQ: GA4 Without Cookies: What Consent Rejection Actually Breaks
Can ga4 without cookies: what consent rejection actually breaks be caused by consent timing instead of a tag bug?
Should I test this only in GA4 reports?
What is the fastest way to prevent this from happening again?
Related guides for GA4 Without Cookies: What Consent Rejection Actually Breaks
How to Test Consent Mode V2 in 5 Minutes: A DevTools Walkthrough (2026)
Open Chrome DevTools → Network tab → filter for collect → reject all on the cookie banner → confirm GA4 hits still fire with gcs=G100 (denied) and ad_user_data=denied. Then accept all → confirm gcs=G111 (granted). If hits don't fire at all in either state, Consent Mode is misconfigured. If gcs is missing entirely…
GCS Parameter Decoded: What G100, G110, G111 Mean in GA4 Hits
The gcs parameter in GA4 network requests encodes the user's consent state for two of the four Consent Mode signals. Format: G1xy where G1 is constant, x is ad_storage (0=denied, 1=granted), y is analytics_storage (0=denied, 1=granted)…
Validate GA4 Without Cookies: What Consent Rejection Actually Breaks before it becomes a compliance and reporting problem
Run a free audit to check consent timing, browser behavior, and downstream GA4 impact in one workflow.