Get guides Affect Group
20.09.2025

Understanding first_visit in GA4: Sessions, Users, and Active Users

GA4 first_visit: how it’s triggered, what it records, and how to make it reliable

What it is

first_visit is an automatically collected web event in Google Analytics 4. It marks the moment GA4 recognizes a browser/device as new to your property. You don’t need to implement it manually.

When first_visit fires

On a user’s first landing page where GA4 detects no existing Client ID, GA4 creates a fresh Client ID (stored in the first-party cookie _ga) and logs first_visit. In apps, the analogous event is first_open.

Practically, this means a new browser or device, or a browser/device where cookies were cleared or blocked. It does not necessarily mean a brand-new person.

Relationship to sessions and session_start

In the initial session for a new browser/device, GA4 logs both:

  • session_start — establishes the session context and assigns ga_session_id / ga_session_number.
  • first_visit — classifies the user as new for this property.

They are generated at the very beginning of that first session (near-simultaneously). If you see more first_visit than session_start, treat it as a misconfiguration smell.

How it affects Users and Active Users

  • New users metric. A first_visit increments New users for the selected date range.
  • Active users. A user counts as active if they had an engaged session or if GA4 collected a first_visit/first_open. Thus every new user is active by definition.
  • Don’t confuse the user_engagement event with the Active users metric.
  • “First user …” dimensions. GA4 writes user-scoped acquisition dimensions at the time of the first session (e.g., First user source / medium / campaign).

Parameters & identifiers recorded with first_visit

Identifiers

  • client_id
  • ga_session_id
  • ga_session_number
  • user_id (optional if configured)

Page context

  • page_location
  • page_referrer
  • page_title

Traffic & filtering

  • traffic_type
  • ignore_referrer

Stream-level defaults

  • language
  • screen_resolution
Value limits: page_location ≤ 1000 chars; page_referrer ≤ 420; page_title ≤ 300.

What you can (and can’t) customize

  • User-ID: send user_id.
  • Consent Mode (v2): cookieless pings + modeling.
  • Cross-domain measurement: preserve continuity across domains.
  • Internal traffic rules: populate traffic_type.
  • Referrer handling: set ignore_referrer where needed.

Common pitfalls & how to fix them

1) Inflated new users

Caused by cookie deletion/blocks or misfired custom first_visit.

2) Mismatch with session_start

Caused by consent/ad-blockers or cross-domain misconfig.

3) Underreporting with Consent Mode

Cookieless pings lack IDs; fix with Advanced Consent Mode and behavioral modeling.