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.