A client sent me three GA4 screenshots:
• One said the source was Google
• Another said Facebook
• The third showed (not set)
All referred to the same user.
How is this possible? Where’s the consistency?
Well, it wasn’t a bug. It’s just how GA4 stores and displays traffic sources.
GA4 doesn’t use a single “source of truth.” Instead, there are multiple layers:
• First User Source — the first source ever recorded
• Session Source — the source for that session
• Source (literally) — tied to specific event context
GA4 won’t flag when the source changes — so the same user can show up under different sources across reports.
Because of this:
• The client misjudged performance.
• Meta campaigns looked “ineffective” — barely visible in summaries.
• Budgets were cut on high-performing ads.
GA4 didn’t lie — but the team didn’t know what level they were looking at.
Now, I always start by asking: “Which source are we talking about?”
Then I follow these rules:
• Use Session Source to measure last click ad campaigns
• Use First User Uource for LTV and cohort analysis
• Validate in BigQuery — only there can you fully compare users, sessions, and events
If you don’t understand the structure, it’s easy to credit the wrong winner.
Want all my posts in one place? I put 350+ articles on GA4, BigQuery, attribution, and metrics into one searchable library.
Go here to explore it for FREE.


