First Visit
Also known as: first_visit, New User Event, First Session Marker, New Visitor
First Visit is the GA4 first_visit event, collected automatically the first time a browser or app instance loads the measurement tag with analytics storage available, and it marks the acquisition moment that starts a user's lifecycle on the digital property. It is deliberately narrower than session_start, which fires at the beginning of every session including the first: first_visit fires once in the lifetime of a client identifier, which is why New Users, New vs Returning User and First Touch Channel Grouping are built on it rather than on session counts.
Event Serialization
once per user
Business Use Case
1️⃣ The Acquisition Marketing manager reviews first_visit volume split by first-touch source/medium, campaign and landing page in the Monday channel stand-up, and shifts paid budget toward the channels that actually deliver new users instead of re-engaging the existing base. 2️⃣ The Lifecycle/CRM team anchors acquisition cohorts on the first-visit date to track time to first purchase and cohort value by entry channel, and uses that to set the send date and offer strength of the welcome programme. 3️⃣ The Merchandising team builds a first-visit audience to serve new-visitor landing experiences and first-order incentives, then compares its conversion against returning visitors before rolling the treatment sitewide. 4️⃣ Marketing Operations monitors the first_visit to session_start ratio daily; a spike in first_visit without a matching session_start movement triggers a tagging review for duplicate configuration tags, cookie churn or a consent-banner change before the numbers reach the executive dashboard.
Business Criticality
High
Journey / Navigation Area
Onboarding
Owning Function
Marketing
Calculation Notes
1️⃣ Firing condition — the event is emitted by the GA4 tag itself, not by page code: on web it accompanies the first page_view of the first session when no analytics cookie is present for the property; on app streams it fires on the first open after install. It always co-occurs with a session_start carrying ga_session_number = 1, and it must never be pushed manually alongside the automatic one. 2️⃣ Serialization and dedupe — once per client identifier (web cookie or app instance id), enforced on the device rather than by a server-side check. Report it as distinct identifiers carrying the event, never as an event count, so a duplicated GA4 configuration tag or a double-loaded container cannot inflate New Users. 3️⃣ Identity caveat — because the gate is the client identifier, cookie clearing, private browsing, ITP/ETP storage capping and any browser or device switch all mint a second first_visit for the same human. Treat it as a per-browser acquisition marker; a person-level "new customer" requires stitching to user_id or the CRM customer record and must be labelled as such in every report. 4️⃣ Required versus optional parameters — nothing is required of the implementation team beyond correct tag placement; the value sits in the automatic context (ga_session_id, ga_session_number, page_location, page_referrer and the resolved source/medium/campaign) that freezes first-touch attribution. Never overwrite those traffic-source values on later events and never add custom parameters that restate them. 5️⃣ Consent and PII — under Consent Mode v2 with analytics_storage denied no identifier is written, so the visit arrives cookieless and first_visit is suppressed or behaviourally modelled; New Users in consent-restricted markets is therefore a modelled floor, not a count. No email, hashed email, order id or other personal field belongs on this event, and it must not be reconstructed server-side from a PII-derived key. 6️⃣ Common instrumentation mistakes — renaming or hand-firing first_visit, mapping it to account creation (that is sign_up), or firing it on every new session (that is session_start); each breaks the once-per-user contract and corrupts every cohort built on it. 7️⃣ Timing and exclusions — apply the property's internal-traffic and developer-traffic filters before publishing counts, exclude known bot and synthetic-monitoring identifiers, and anchor cohorts on the user's first-touch timestamp rather than the event date, since queued app events and offline sessions can land the hit a day or more after the visit actually happened.
Platform Events
| Platform | Event |
|---|---|
| Google Analytics 4 | first_visit |
| Adobe | s.t() first page view beacon of the visitor's first hit (new visitor is derived server-side from the Experience Cloud ID cookie; no custom link is sent) |
Data Mappings
W3 Data Layer
{
"digitalData": {
"pageInstanceID": "prod-web-home",
"page": {
"pageInfo": {
"pageID": "home",
"pageName": "Home | Example Shop",
"destinationURL": "https://www.example-shop.com/",
"referringURL": "https://www.google.com/",
"sysEnv": "mobile",
"language": "en-us",
"issueDate": "2026-08-02"
},
"category": {
"primaryCategory": "Acquisition",
"subCategory1": "Top-of-Funnel & Marketing Acquisition",
"pageType": "home"
},
"attributes": {
"sessionID": "1785688867",
"sessionNumber": 1,
"entryPage": "/",
"visitorStatus": "new"
}
},
"user": [
{
"profile": [
{
"profileInfo": {
"profileID": "a1c9f0e2-7b64-4f31-9a2d-5e0c8d13b7aa",
"returningStatus": "new",
"firstVisitTimestamp": "2026-08-02T16:41:07.000Z",
"language": "en-us"
}
}
]
}
],
"event": [
{
"eventInfo": {
"eventName": "First Visit",
"eventAction": "first_visit",
"type": "user",
"timeStamp": "2026-08-02T16:41:07.000Z",
"effect": "user lifecycle started"
},
"category": {
"primaryCategory": "Acquisition"
},
"attributes": {
"sessionID": "1785688867",
"sessionNumber": 1,
"source": "google",
"medium": "organic",
"campaign": "(organic)",
"landingPage": "/",
"referrer": "https://www.google.com/",
"consentState": "granted"
}
}
]
}
}GA4 Data Layer
{
"event": "first_visit",
"ga_session_id": "1785688867",
"ga_session_number": 1,
"engagement_time_msec": 0,
"page_location": "https://www.example-shop.com/",
"page_referrer": "https://www.google.com/",
"page_title": "Home | Example Shop",
"source": "google",
"medium": "organic",
"campaign": "(organic)",
"language": "en-us",
"consent_state": "granted"
}Adobe Client Data Layer
{
"event": "web.webpagedetails.pageViews",
"eventInfo": {
"path": "page",
"eventType": "first page view of a new visitor",
"timestamp": "2026-08-02T16:41:07.000Z"
},
"web": {
"webPageDetails": {
"name": "Home | Example Shop",
"URL": "https://www.example-shop.com/",
"siteSection": "home",
"server": "www.example-shop.com",
"isHomePage": true,
"pageViews": {
"value": 1
}
},
"webReferrer": {
"URL": "https://www.google.com/",
"type": "external"
}
},
"environment": {
"type": "browser",
"browserDetails": {
"name": "Chrome",
"acceptLanguage": "en-us",
"viewportWidth": 390,
"viewportHeight": 844
}
},
"placeContext": {
"localTime": "2026-08-02T11:41:07-05:00"
},
"visit": {
"visitNumber": 1,
"visitStart": true,
"entryPage": "/"
},
"visitor": {
"isFirstVisit": true,
"returningStatus": "new",
"firstVisitTimestamp": "2026-08-02T16:41:07.000Z"
}
}XDM Mapping
{
"eventType": "web.webpagedetails.pageViews",
"timestamp": "2026-08-02T16:41:07.000Z",
"identityMap": {
"ECID": [
{
"id": "79876066103567143511267739748305347425",
"primary": true,
"authenticatedState": "ambiguous"
}
]
},
"channel": {
"_id": "https://ns.adobe.com/xdm/channels/web",
"_type": "https://ns.adobe.com/xdm/channel-types/web",
"typeAtSource": "web"
},
"web": {
"webPageDetails": {
"name": "Home | Example Shop",
"URL": "https://www.example-shop.com/",
"siteSection": "home",
"server": "www.example-shop.com",
"isHomePage": true,
"pageViews": {
"value": 1
}
},
"webReferrer": {
"URL": "https://www.google.com/",
"type": "external"
}
},
"environment": {
"type": "browser",
"browserDetails": {
"name": "Chrome",
"acceptLanguage": "en-us",
"viewportWidth": 390,
"viewportHeight": 844
}
},
"placeContext": {
"localTime": "2026-08-02T11:41:07-05:00",
"geo": {
"countryCode": "US",
"stateProvince": "US-TX"
}
},
"_experience": {
"analytics": {
"endUser": {
"isFirstVisit": true,
"firstTimestamp": "2026-08-02T16:41:07.000Z",
"firstWeb": {
"webPageDetails": {
"name": "Home"
},
"webReferrer": {
"URL": "https://www.google.com/"
}
}
},
"session": {
"num": 1,
"depth": 1,
"timeSpent": 0
},
"customDimensions": {
"eVars": {
"eVar1": "(organic)",
"eVar2": "google | organic",
"eVar3": "/"
}
}
}
}
}Source Data
Digital Analytics (GA4)
Dependencies
Prerequisite: List the dependencies required for this Event
Events:
Report Attributes
First Touch Channel Grouping Default Channel Grouping Campaign Name Landing Page Device Category Country/Region
Segment Eligibility
true
Governance
Dimensions
Derived Dimensions
Derived Entities
Derived Metrics
Governance & Metadata
GitHub
catalog/events/first-visit.yml