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
GA4 Cross-Device Tracking: Why User Counts Are Wrong and How to Fix Them

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.

Guide

Leave a Comment