Cross-Domain Tracking in GA4: Setup, Validation, and Common Failures
When a user journey spans two or more domains, a main marketing site and a separate checkout, a subdomain hosted on a different platform, or a booking tool on a third party domain, GA4 breaks that journey into separate sessions unless cross domain tracking is configured correctly.
How GA4 Cross-Domain Tracking Works
GA4 handles cross domain tracking by appending a _gl query parameter to outbound links when a user navigates from a listed domain to another listed domain.
This parameter carries an encoded version of the user's client ID and session information, allowing the destination domain to pick it up and continue the same session rather than starting a new one.
The critical requirement is that both domains are listed in the "Configure your domains" section under Data Streams in GA4, and the GA4 tag must be present on both domains.
If only one side is configured, the parameter is either not appended or not read, and every cross domain navigation results in a new session attributed to referral traffic from the originating domain.
This is one of the most common causes of checkout abandonment appearing in GA4 reports when real checkout completion rates are much higher.
Common Configuration Failures
The most frequent failure is an incomplete domain list. Teams configure the linked domains for their main site and checkout but forget subdomain variants, regional domains, or campaign specific landing page domains that are part of the same user journey.
A second common failure is relying on automatic link decoration but using a single page application or JavaScript router that does not trigger the GA4 link decoration logic correctly, in these cases, the _gl parameter is never appended because GA4 never sees a traditional link click.
A third failure occurs when the receiving domain has a tag manager setup that strips query parameters before GA4 can read the _gl value, typically through aggressive URL canonicalisation or security motivated parameter stripping.
Each of these failures results in silent session breaks that inflate your direct and referral traffic counts and make your funnel analysis unreliable.
How to Validate Your Cross-Domain Setup
Validation requires checking both sides of the cross domain journey.
First, inspect outbound links from the originating domain using browser developer tools, when you hover over or click a link to the destination domain, the URL should contain a _gl parameter.
If it does not, the domain is either not listed or link decoration is failing.
Second, on the destination domain, use GA4 DebugView immediately after arriving from the source domain, you should see the session continuing with the same client ID rather than a new one being assigned.
Third, check your referral exclusion list in GA4 and confirm both domains are present.
Without mutual exclusion, the receiving domain will count the originating domain as a referral source, generating a false self referral that splits sessions.
Running this validation with a fresh incognito browser session ensures you are seeing the real production behaviour rather than a cached or cookie influenced result.
Ready to audit your GA4 property?
Run a full GA4 audit in under 10 minutes. Free to start.
Start Free Audit