Why a hand-off splits a visit
GA4 identifies a visitor with first-party cookies set on the domain they are visiting. When they move to a second domain, that domain sets its own cookies unless it is told otherwise, so Google notes that one person on one device is counted as two users and two sessions. The second visit then appears to arrive from the first domain, which is why the checkout or booking domain can show up as a referral, and why the original campaign is lost.
Cross-domain measurement fixes this by passing the identifiers in a URL parameter called _gl when a user follows a link or submits a form to a configured domain. The destination reads it and continues the same user and session.
- Both domains need the same GA4 tag ID from the same web data stream.
- Outbound-click events from enhanced measurement are skipped for domains in your list.
Configure it, then prove it with Google's five-step check
In the property, open the web data stream, choose Configure tag settings, then Configure your domains, and add a condition for each domain. Conditions combine with OR. You need the Editor role. Google also shows a manual route using gtag for custom set-ups.
Google's own check is practical. Open a page with a link or form to a configured domain, click or submit, confirm the destination loads, confirm its address contains _gl, and, if the site offers downloads, confirm a download still starts from a page that carries the parameter. The last step matters because appended parameters can occasionally cause server errors or failed downloads.
- Repeat the check for every distinct link or form hand-off.
- Do the check with a fresh browser session so no old cookies help.
Why _gl goes missing
Google lists the reasons. The configured domain may not match the domain the link points to. The destination may redirect or reject arbitrary parameters and strip _gl, in which case the redirect must be configured to keep it. The navigation may be triggered by JavaScript rather than a direct user action. Or another script may stop the click event reaching the page's listener. Each is fixed in a different place, and some belong to the checkout provider.
Payment gateways and third-party checkouts can also cause a return trip that looks like a new referral. Google's unwanted referrals list tells GA4 to ignore a referrer from a named domain, up to 50 entries per stream. Google's own example shows a session attributed to a domain before it was added to the list staying attributed to it, so treat the list as applying from the day it is added.
- Fix a stripped _gl at the redirect, not by removing the domain.
- Use the unwanted referrals list for domains that are part of your own flow only.
What does not fit, and how the paid outcome is accepted
This does not repair past sessions or change a payment provider's pages. More than two domains or several unrelated hand-offs need a quoted scope.
The fixed outcome Fix cross-domain hand-off is quoted at £345 as an untested proposal, with payment only after sign-off. Acceptance: following Google's check, the hand-off address contains _gl, the page loads and any download starts; in DebugView, where the checkout side can be put into debug mode, the page views on both domains carry the same ga_session_id; and once Google has processed the data a separate test journey, made without debug mode because Google's developer-traffic filter removes debug-mode activity, that began on an address with a unique test campaign value is listed under that campaign and not with the checkout domain as its source. Send the two domains and the hand-off type; no logins.
Sources and limits
- Google Analytics Help: Set up cross-domain measurement Checked 2026-10-11.
- Every domain must use the same G- tag ID from the same web data stream, and domains are added under Configure your domains in the stream's tag settings.
- Without cross-domain measurement one person on one device is counted as two users and two sessions.
- With it, identifiers travel in the _gl URL parameter when a user follows a link or submits a form to another domain.
- The _gl parameter may be missing if the domain does not match, a redirect strips parameters, JavaScript triggers the navigation, or another script stops event propagation.
- Appending parameters can occasionally cause server errors or failed downloads.
- Google Analytics Help: Identify unwanted referrals Checked 2026-10-11.
- Domains in the unwanted referrals list get ignore_referrer=true; up to 50 entries per data stream.
- Google's example shows sessions already attributed to a domain before it was added to the list staying attributed to it.
- Self-referrals, including cross-domain traffic carrying _gl, are already handled automatically.
- Google Analytics Help: Automatically collected events Checked 2026-10-11.
- A session ID and session number are generated automatically with each session and associated with each event in the session; ga_session_id is listed as a parameter of session_start.
- Google Analytics Help: Data freshness Checked 2026-10-11.
- Many reports and explorations can take 24 to 48 hours to process data.
- Google Analytics Help: Data filters Checked 2026-10-11.
- A developer-traffic data filter filters out activity from developers who use debug mode, and data excluded by a filter is never processed.
- Fix cross-domain hand-off: scope and test Checked 2026-10-11.