Updated: December 18, 2025
If you’ve looked at your GA4 reports and wondered why the New Users and Returning Users numbers don’t seem to add up the way you’d expect — you’re not alone. This is one of the most common questions I see, and the answer comes down to how GA4 actually determines each metric.
How GA4 Counts New Users
In GA4, a New User is determined by the first_visit event (web) or first_open event (app).
first_visit fires automatically when GA4 detects a new Client ID. In the first GA4 request, you’ll see _fv in the payload — that stands for first_visit.
Here’s the catch: if first_visit or first_open is missing for any reason, GA4 won’t count that user as a New User. Even if they’re genuinely a first-time visitor.
For example, if a new visitor lands on your site but the first_visit event never fires due to an ad blocker or a tracking issue, they simply disappear from your New User count.
How GA4 Counts Returning Users
Returning Users are users who have visited before and come back during your reporting period. In GA4, these are users with a session count greater than 1.
The session count (sct) is stored in the _ga_<container-id> cookie.

Every request sent to GA4 includes this parameter.

If you want to dig deeper, I’ve covered how GA4 tracks sessions and the full breakdown of cookie values in separate guides.
Why They Don’t Add Up to Total Users
This is the part that trips most people up. New Users and Returning Users are calculated independently, not as two halves of a whole. A single user can appear in both counts if your reporting period spans multiple sessions across different days.
Here’s a concrete example: someone visits your site for the first time in the morning (New User = 1). They come back in the afternoon, more than 30 minutes later (that’s a new session). On that same day, they’ll count as both a New User (1) and a Returning User (1).
| Metric | Count Basis | Source |
|---|---|---|
| New Users | first_visit / first_open | Fired automatically by GA4 |
| Returning Users | Session count > 1 | Stored in_ga_<container-id> cookie |
So if your New Users + Returning Users doesn’t equal your Total Users, that’s completely normal.
Final Words
Understanding this distinction matters more than you’d think. If your first_visit events are missing due to blockers or implementation issues, you’re undercounting new users and the whole acquisition picture gets skewed. Worth checking in DebugView to make sure everything’s firing correctly.