You check GA4 and see 10,000 users. Your CRM shows 4,000 customers. Cross-device fragmentation is usually the culprit. GA4 counts a person on their phone, laptop, and tablet as three separate users unless you stitch them together with User-ID. This guide explains why user counts are inflated and the specific steps to fix it.
Why GA4 Over-Counts Users
GA4 assigns a client_id to each browser/device via a first-party cookie. Without User-ID, GA4’s identity resolution falls back to device-based tracking only.
Implement User-ID in GA4
gtag('config', 'G-XXXXXXXXXX', {'user_id': 'hashed_user_id'});
dataLayer.push({'event': 'user_login', 'userId': sha256(userEmail)});
Enable Reporting Identity
Go to Admin → Reporting Identity → Blended. This uses User-ID first, then Google Signals, then Device ID. Switching from Device-based to Blended typically reduces user counts by 15-40%.
Google Signals Limits
- Only works for users signed into Google with ad personalization on
- Causes data thresholding — segments below ~50 users get suppressed
- GDPR consent required for EU users
- Consider disabling if thresholding causes report gaps

BigQuery Cross-Device Analysis
SELECT user_id, COUNTIF(device.category = 'mobile') as mobile_sessions, COUNTIF(device.category = 'desktop') as desktop_sessions, COUNTIF(event_name = 'purchase') as purchases FROM `project.dataset.events_*` WHERE user_id IS NOT NULL AND _TABLE_SUFFIX BETWEEN '20260101' AND '20260430' GROUP BY 1 HAVING mobile_sessions > 0 AND desktop_sessions > 0;
Server-Side Tracking for Cross-Device Identity
GTM Server-Side lets you pass a persistent user identifier regardless of device. Set a first-party cookie server-side on login, read it in GTM SS, and send user_id to GA4 via Measurement Protocol — no browser cookies needed.
Checklist
- ☐ Implement User-ID on all authenticated pages
- ☐ Hash identifiers before sending to GA4
- ☐ Set Reporting Identity to Blended
- ☐ Evaluate Google Signals impact on your data
- ☐ Verify user_id in DebugView after login
Related: GA4 User Explorer, GTM Server-Side Preview.
