On one project, the marketing team proudly shared: “User count is up 35%! Our new channel works!”
GA4 showed a strong upward curve. They scaled. Increased budgets.
But when we checked BigQuery, things looked off: The same person had multiple cross-domain IDs. Many “users” stayed for a minute, then vanished.
Yes, there was growth — just not the kind they thought.
GA4 tracks users, but not necessarily people. It relies on:
• client_id — resets with cookie clearing, incognito mode, or browser updates
• user_id — only works if you set and sync it
• iOS, Safari, and AdBlockers often block tracking — GA can’t link sessions
• GA doesn’t “guess” it’s the same person — it logs a new user
One person on mobile, then on laptop? That’s two (or more) users. And GA4 makes it look like new traffic.
Because of this, the team:
• Scaled up based on fake “growth”
• Increased media spend with no real sales lift
• Chased a “new audience” that didn’t exist
• CRM showed flat customer count — while GA4 showed a spike
Marketing trusted the dashboard. But it was just stacking duplicates.
Now, when I hear “user growth in GA4,” I ask: “Are those actual people?”
What I do instead:
• Check user_pseudo_id in BigQuery
• Compare different client_ids tied to the same CRM user
• Watch for iOS/Safari mismatches — that’s where tracking breaks most
• Always implement user_id with login/auth flows
• Use BI tools for deduplication and real aggregation
GA4 is powerful. But counting “users” blindly is like tracking steps by sound — you’re moving, but not sure where.
Want to get all my top Linkedin content? I regularly upload it to one Notion doc.
Go here to download it for FREE.


