Webclat / GA4 Practice
Home / Cross-Domain Tracking

Cross-Domain Tracking in GA4

By default, a visitor who crosses from your marketing site to a checkout on a different domain starts a brand-new GA4 session - and the reporting side of that gap is a different fix from the tag-deployment side.

In short

GA4 keeps one session continuous across domains only when you list every domain under Configure your domains and the browser successfully appends the _gl linker parameter to outbound links between them. Get the domains list right and this reporting page's setup is done; if links are still decorated correctly but sessions still split, the break is usually a redirect hop or a browser stripping the parameter - not the GA4 configuration itself. This is the reporting half of cross-domain tracking; the tag-deployment half, for teams running GA4 through Google Tag Manager, lives on our GTM cross-domain tracking guide.

Why Sessions Split at the Domain Boundary

01 / WHY

GA4's client ID and session are stored in a first-party cookie scoped to the domain that set it. The moment a user's browser navigates to a second domain, that cookie isn't visible - the new domain has no way to know it's "the same person, mid-visit" unless something tells it. Cross-domain measurement is that something: it appends a query parameter (_gl) containing the client and session IDs to outbound links, and the receiving domain's GA4 tag reads that parameter to pick the same session back up instead of starting fresh.

Setting It Up

02 / SETUP
StepWhereWhat it does
List every domainAdmin > Data Streams > web stream > Configure tag settings > Configure your domainsTells GA4 which domains are one continuous experience, not separate sites
Enable Enhanced Measurement outbound clicks (if used)Same tag-settings panelDetermines whether a click to a domain NOT on your list still fires an outbound_click event
Confirm the tag actually decorates linksgtag.js auto-decorates same-page links; a GTM-deployed tag needs the domains list set consistently on the Configuration tagDecoration is what attaches _gl to the outbound URL

What Still Breaks After Setup

03 / FAILURE MODES
  • Redirect chains strip the parameter. A link that bounces through a URL shortener, an SSO redirect, or a marketing-automation click tracker before landing on the second domain often drops the query string somewhere in the chain.
  • Third-party checkout isn't actually your domain. If checkout runs on a payment processor's own domain rather than a subdomain of your business, it typically isn't "cross-domain tracking" you want at all - see the referral-traffic guide for the distinction between "exclude as unwanted referral" and "add to the domains list."
  • The two configuration surfaces disagree. A domains list set in GA4's UI and a different list set on a GTM-deployed Configuration tag can silently diverge if someone edits one and not the other.
  • Consent state resets across the boundary. If consent isn't (or can't be) carried across domains, the receiving domain may not fire measurement at all until a fresh consent decision is recorded, independent of whether the linker worked.

Verifying this needs a live click, not a settings screenshot: open DevTools Network tab, click the actual cross-domain link, and confirm _gl= is present in the destination URL before it gets rewritten by the page's own routing.

Frequently Asked Questions

04 / FAQ

Do I configure cross-domain tracking in GA4 or in Google Tag Manager?

Both surfaces can set the domains list - GA4's own tag settings, or the GA4 Configuration tag's fields inside GTM if that's how the tag is deployed. They control the same underlying setting, so the practical rule is: whichever surface you use, make sure the two never disagree, and document which one is the source of truth for your setup.

Why does cross-domain tracking work on desktop but not in some mobile browsers?

Some mobile browsers and privacy-focused extensions strip query parameters more aggressively, including the _gl linker parameter, especially across a redirect. It's not a GA4-specific failure - it's the same category of parameter-stripping that breaks UTM tags in the same browsers.

Does cross-domain tracking fix referral traffic from my own domain?

Only if the referral was actually a broken cross-domain session. If the domain showing up as a referral is a payment gateway or third-party checkout you don't control as a continuous experience, that's a different setting - see our GA4 referral traffic guide for the distinction.

Sessions Splitting at a Domain Boundary?

We check the domains list, the actual link decoration, and any redirect chain in between - then fix whichever one is broken.

Get Cross-Domain Tracking Fixed
05 / CONTACT

Get Cross-Domain Tracking Fixed

Tell us which two domains are involved and what you're seeing break.