Google Analytics 4
Platform Summary
GA4 user-provided data and event contract requirements.
Scope
Primary execution surface: hybrid.
Developer Source Map
| Source | Reason |
|---|---|
| developers.google.com/analytics/devguides/collection/ga4/uid-data | User Data Contracts |
| developers.google.com/analytics/devguides/collection/protocol/ga4/reference | Event Contracts; events, payload, transport |
| developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events | Event Contracts |
RudderStack Cross-Check
RudderStack is used here only as secondary engineering evidence for discovery and cross-check.
| Destination | Type | Link |
|---|---|---|
ga4 | Discovery lead | source |
ga4_v2 | Discovery lead | source |
Verified Contracts
Event Contracts
| Object / Event | Field | Applies To | Type | Requirement | Exact Format | Normalization | Hashing | Examples | Caveat | Primary Source | Status | Confidence |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
event | events[] | server | array | Required | Array of event objects; up to 25 events per request. | Not clearly specified | Not clearly specified | - | Measurement Protocol request body requires events array. | developers.google.com/analytics/devguides/collection/protocol/ga4/reference | Verified | High |
event | events[].name | hybrid | string | Required | Event name. | Not clearly specified | Not clearly specified | - | Required for each event item. | developers.google.com/analytics/devguides/collection/protocol/ga4/reference | Verified | High |
event | events[].params | hybrid | object | Optional | Event parameters object. | Not clearly specified | Not clearly specified | - | Suggested parameters depend on selected event. | developers.google.com/analytics/devguides/collection/protocol/ga4/reference | Verified | High |
event | events[].params.currency | hybrid | string | Conditional | 3-letter ISO 4217 currency code. | Not clearly specified | Not clearly specified | USD | Currency is required when value is set. | developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events | Verified | High |
event | events[].params.transaction_id | hybrid | string | Optional | Transaction ID for purchase events. | Not clearly specified | Not clearly specified | ord-12345 | Google states transaction_id helps avoid duplicate purchase events. | developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events | Verified | High |
event | events[].params.value | hybrid | number | Conditional | Monetary value of the event. | Not clearly specified | Not clearly specified | - | If value is set, currency must also be provided. | developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events | Verified | High |
User Data Contracts
| Object / Event | Field | Applies To | Type | Requirement | Exact Format | Normalization | Hashing | Examples | Caveat | Primary Source | Status | Confidence |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
default | sha256_email_address | hybrid | string | Conditional | Lowercase email, trim spaces, remove dots for gmail/googlemail, then SHA-256 hash. | lowercase; trim whitespace; remove dots | SHA-256 | <sha256(alice@example.com)> | Google says email normalization includes lowercase, whitespace trimming, and gmail/googlemail dot removal. | developers.google.com/analytics/devguides/collection/ga4/uid-data | Verified | High |
default | sha256_first_name | hybrid | string | Conditional | Lowercase first name, trim spaces, then SHA-256 hash. | lowercase; trim whitespace | SHA-256 | <sha256(alice)> | Google says first and last names are hashed after lowercasing and trimming. | developers.google.com/analytics/devguides/collection/ga4/uid-data | Verified | High |
default | sha256_last_name | hybrid | string | Conditional | Lowercase last name, trim spaces, then SHA-256 hash. | lowercase; trim whitespace | SHA-256 | <sha256(smith)> | Google says first and last names are hashed after lowercasing and trimming. | developers.google.com/analytics/devguides/collection/ga4/uid-data | Verified | High |
default | sha256_phone_number | hybrid | string | Conditional | Normalize to digits only with + prefix, then SHA-256 hash. | digits only | SHA-256 | <sha256(16505551234)> | Google says phone numbers are normalized to E.164 before hashing. | developers.google.com/analytics/devguides/collection/ga4/uid-data | Verified | High |
default | user_id | server | string | Conditional | Unique identifier for a user. | Not clearly specified | Not clearly specified | - | Measurement Protocol requires user_id whenever user_data is provided. | developers.google.com/analytics/devguides/collection/ga4/uid-data | Verified | High |
Candidate / Needs Review Items
No candidate rows currently tracked.
Excluded Items
No excluded rows in this revision.
Last Reviewed
2026-03-30