When working with GA4 and BigQuery, one of the most misunderstood topics is:
“What actually happens to
_ga,user_pseudo_id, and session IDs when a user accepts or denies cookie consent?”
The answer is critical because consent decisions directly affect:
- user identity
- session stitching
- attribution accuracy
- BigQuery data completeness
This guide explains exactly how GA4 identifiers behave under consent accepted vs consent denied scenarios.
GA4 Consent Changes the Data Pipeline
GA4 does NOT simply “turn off tracking” when consent is denied. Instead, it changes how identifiers are:
- generated
- stored
- persisted
- and modeled in BigQuery
GA4 Identity Flow With Consent Context
↓
Consistent user_pseudo_id
↓
Reliable session stitching
↓
Strong attribution
↓
Complete BigQuery data
↓
Frequent identity resets
↓
Partial / fragmented sessions
↓
Weakened attribution
↓
Modeled / limited identity
This identity behavior is directly based on how GA4 cookies like _ga and _gid are generated in the browser. Learn how GA4 cookies map into BigQuery fields →
Scenario 1: Consent ACCEPTED (Full Tracking Enabled)
When the user accepts cookies (analytics_storage = granted):
_gacookie is created and persists_gidcookie is set (short-term)_ga_<container-id>is enabled
- GA4 Generates stable client identity, Maintains session continuity, Fully stitches user journeys and uses cookies + device signals
You get full-resolution identity data in BigQuery because of whichc full user journey reconstruction is possible.
| Field | Behavior |
|---|---|
user_pseudo_id | Stable and consistent |
ga_session_id | Fully populated |
ga_session_number | Incrementing correctly |
| event_params | Complete session context |
Scenario 2: Consent DENIED (No cookies allowed)
When analytics_storage = denied:
_gacookie is NOT stored or is immediately invalidated_gidis NOT used- ga4 cannot reliably persist
_ga, persistent identity is restricted
GA4 switches to cookieless modeling behavior. It can still send lightweight anonymous event signals often referred to as:
Cookieless pings = event activity sent without persistent analytics cookies or stable user identity.
GA4 uses temporary identifiers and relies on session-only signals.
What Cookieless Pings Can Still Collect
- Page views
- Event timestamps
- Basic engagement events
But they often lack reliable:
_gapersistenceuser_pseudo_idcontinuity- Cross-session identity stitching
BigQuery Impact
Because persistent identity weakens:
- Users may appear fragmented
- Returning visitors may look like new users
- Attribution becomes less reliable
- Session continuity may weaken
| Field | Behavior |
|---|---|
user_pseudo_id | May be unstable or frequently changing |
ga_session_id | Still generated but session stitching weaker |
ga_session_number | Less reliable |
| user journey | Fragmented |
What Happens to Each GA4 Identifier
| GA4 Identifier | Consent Accepted | Consent Denied |
|---|---|---|
| _ga cookie | Created + persistent | Not stored or immediately cleared |
| _gid cookie | Short-term tracking enabled | Not used |
| _ga_<container-id> | Stable property/session tracking | Disabled |
| user_pseudo_id | Stable + reliable | May reset more frequently |
| ga_session_id | Strong session continuity | Sessions exist but stitching weaker |
Leave a Reply