If you work with GA4 BigQuery exports, one of the biggest sources of confusion is this: “Where did cookies go and how do they map to users and sessions?”
The answer is simple but critical: GA4 does NOT export cookies into BigQuery. Instead, it converts browser cookies into stable analytics identifiers.
This guide breaks down exactly what each identifier means and how they connect in BigQuery.
GA4 uses first-party cookies set by Google Analytics, and the raw event data is exported into Google BigQuery.
Before diving into individual fields, here’s the mental model:
_ga
_gid
_ga<container-id>
User identity stitching
Session grouping
Event enrichment
user_pseudo_id
ga_session_id
event_params
GA4 Cookie → BigQuery Identity Mapping
_ga | Identifies returning browser/device | user_pseudo_id | GA1.2.123456789.1712345678 → 1876543210.1712345678 | Primary anonymous user identifier |
_gid | Short-term user differentiation | Not used | _gid=GA1.2.987654321.1712345678 | Legacy cookie with little analytical value |
_ga_<container-id> | Property/session continuity | ga_session_id, ga_session_number | _ga_ABC123XYZ | Session logic becomes event-based |
user_pseudo_id | User identity in GA4 export | Native BigQuery field | 1876543210.1712345678 | Main identifier for user analysis |
ga_session_id | Groups events into sessions | Stored in event_params | 1748123456 | Usually derived from session start timestamp |
ga_session_number | Counts user sessions | Stored in event_params | 3 | Indicates the user’s 3rd session |
Quick Browser → BigQuery Translation
| Browser Cookie | Transformed Into in BigQuery |
|---|---|
_ga | user_pseudo_id |
_ga_<container-id> | ga_session_id + ga_session_number |
_gid | Usually ignored in GA4 analysis |