Why does this metric feel straightforward?

Active users. Count the distinct ones. Done. I thought so too when I first built a DAU report from GA4 BigQuery. It looked reasonable. Stakeholders were happy. I moved on.

What's actually being counted?

user_pseudo_id identifies a device, not a person. One person using your app on phone and laptop generates two IDs. COUNT(DISTINCT user_pseudo_id) counts both as separate active users. In mobile-heavy products, this inflates DAU by 20-40% with no warning whatsoever.

How should you handle it?

If your product has a login system:

  • Use user_id for deduplication instead of user_pseudo_id
  • Where user_id is NULL, fall back to user_pseudo_id
  • Document which sessions are device-only

If there's no login system, you're stuck with device-based counting. That's fine — just name it honestly. "Device-active users" is not the same as "users" and your stakeholders should know the difference.

Why does this matter for decisions?

I've seen teams celebrate DAU milestones that were largely device inflation. When the methodology got corrected, the number dropped and the celebration turned into a difficult conversation. Better to have that conversation upfront than with a corrected report later.

Want all my best GA4-BQ queries in one place? I turned them into a Chrome extension — top SQL queries you can search and copy in seconds.

Go here to install it for FREE.

Prefer the web version? It’s here.