Google Analytics cross-domain guide

GA4 cross-domain attribution

Set up GA4 cross-domain measurement properly so separate checkout, booking, or cart domains do not break the same user journey into messy attribution fragments.

This is the page for teams whose traffic still lands, but the journey splits when the user moves between domains. The job is not just adding a setting. The job is making sure the configured domains, the tag, and the real route all carry the same story.

Cross-domain measurement exists to preserve one journey across domains.

Use it when multiple owned domains belong to the same user experience.

The _gl linker handoff is part of live QA.

Google explicitly recommends verifying that the destination URL contains the linker parameter and still loads correctly.

Self-referrals are often a signal, not the whole diagnosis.

They can point to missing cross-domain setup, broken tagging, or a route that strips the handoff.

What cross-domain measurement in GA4 actually does

Google’s cross-domain measurement help page says it allows activity to be accurately attributed to a single user as they cross domains. It also notes that outbound clicks to domains included in the cross-domain setup are ignored as outbound clicks.

Core concept

It is about the same journey across domains

Use it when a user moves between domains that should still count as one connected experience.

It is not just a technical nice-to-have

Without it, session attribution and referral handling can fragment around checkout, booking, or cart handoffs.

It depends on the tag and route behaving cleanly

Bad redirects, broken forms, or stripped query parameters can still ruin the handoff even when the setting exists in GA4.

How the cross-domain handoff works

Google’s tag configuration guidance explains that cross-domain measurement works by appending the linker parameter _gl to links or forms between configured domains, and Google recommends verifying that the destination page loads correctly with that parameter present.

Mechanics
1

List the domains that are part of one real user journey

Examples include a marketing site and a separate cart, booking engine, or checkout domain.

Do not add random domains just because they appear in referral reports.
2

Configure the domains in your Google tag / GA4 setup

If the same Google tag is used across domains, Google can recommend domains automatically, but you can also add them manually.

Use the domains that should share the journey, not every vendor in the stack.
3

Test the live handoff

Google says to verify that the destination URL contains _gl and that the page still loads correctly. If the handoff fails, fix the route before you trust the reports.

Broken downloads, form posts, or route rules can still break the journey.

Cross-domain setup and self-referrals are connected

Google’s Identify unwanted referrals documentation defines a self-referral as referral traffic that can originate from pages within your own domains. Google also warns in the cross-domain docs that self-referrals may mean traffic is being attributed incorrectly.

Self-referral link

When cross-domain setup is missing

The cart or booking domain can appear as a referrer and break the journey into a new session or muddy the source logic.

When the domains are configured but the route still fails

The _gl handoff may be missing, stripped, or broken in a redirect or form. That is why live route testing matters as much as the GA4 admin setting.

Companion route: if the main symptom is referral pollution rather than domain-handoff architecture, use GA4 direct / unassigned and the Google referral docs above before you blame the campaign setup itself.

Safe workflow for GA4 cross-domain attribution

The clean diagnosis order is domain list, tag configuration, live route, and only then reporting.

Workflow

1. Define the real journey

Use whenThe same user should move between domains without starting a fake new attribution story.
Avoid whenThe other domain is just a vendor, embed, or referral you do not actually want to treat as the same owned journey.

2. Validate the live handoff

CheckDo links or forms carry _gl? Does the destination load correctly? Do redirects preserve the handoff?
Use withRedirect checker when route layers sit between the domains.
Fast rule: do not treat cross-domain measurement as “done” until a real click or form handoff survives the whole path with the linker parameter intact.

Primary docs and next routes

This page is grounded in official Google Analytics and Google tag documentation.

If the team is blaming server-side or client-side architecture for a split journey, use server-side vs client-side tracking to reset the collection boundary before rebuilding tags that are not the real problem.

Sources and next steps

Questions teams ask about this setup

Short answers to the points that usually create scope confusion, not just tracking mistakes.

FAQ
Does GA4 cross-domain measurement only matter for subdomains?

No. Google documents it for domains in general and specifically notes cases like a site and a separate shopping-cart domain.

What should we look for in a live test?

Google recommends checking that the destination URL contains the _gl linker parameter and that the page still loads correctly after the handoff.

Why do self-referrals still matter here?

Because they often signal that the journey is being split or attributed incorrectly between domains that should have behaved as one connected experience.

Can redirects break cross-domain attribution even if GA4 is configured?

Yes. Redirects, form posts, and broken route logic can still strip or break the handoff, so live route testing is essential.

What should we do before looking at reports?

Define the domains, confirm the tag configuration, test the live handoff, and only then interpret the attribution outcome.