GA4 Cross-Domain Tracking Not Working: How to Find the Cause
Quick fix
GA4 cross-domain tracking not working usually means the linker parameter isn't reaching the other domain. Check every page uses the same G- tag ID, the domains are listed under Configure your domains, and the destination URL contains _gl after a click. If _gl is missing, look for redirects that drop query parameters, JavaScript navigation and scripts that stop click events.
- Check the same tag ID is on every domain.
- Check the domains are listed under
Configure your domains. - Click a link and check the destination URL contains _gl.
- Look for redirects or scripts that remove it.
Can't fix it yourself? Send me the details
What this error means
Cross-domain measurement keeps one visitor as one user when they move between your domains, by passing IDs in the _gl URL parameter. If it fails, each domain sees a new user and your own sites show up as referrals.
Why it happens
1Domains not configured or tag IDs differ
Every domain needs the same tag ID and a listed domain condition.
How to tell if this is you: Admin has no domains, or the G- IDs differ.
2Redirects remove the parameter
Redirects and pages rejecting parameters can strip _gl.
How to tell if this is you: _gl appears on the first page but not the destination.
3JavaScript navigation
The linker works from real click events.
How to tell if this is you: Links are opened by script.
4Scripts that stop click events
Competing scripts stopping event propagation break it.
How to tell if this is you: Only some links get _gl.
How to fix it
Fix the configuration
For: Domains not configured or tag IDs differ
- Use the same Google tag ID on all domains.
- Add the domains under Configure your domains, or accept the recommendations.
Preserve the parameter
For: Redirects remove the parameter
- Configure the site to preserve _gl in redirects.
Verify
For: JavaScript navigation, Scripts that stop click events
- Click a link and confirm the destination URL contains _gl.
- Check navigation is a direct response to a click, and no script stops propagation.
How long it takes
Google doesn't publish a timeline for this.
How to stop it happening again
- Test cross-domain links after every checkout or booking change.
- Keep one tag ID across all domains.
- Review redirects whenever domains change.
From my desk
On booking and checkout domains the culprit is almost always a redirect that drops the _gl parameter. I click through the real journey, check the URL on the destination domain, and watch for redirects in the network tab. If the parameter is there, I move on to the domain list and to scripts that interfere with link clicks.
Muhammed Abdul Kalam
When to get help
- You've worked through the checks and the status still isn't changing.
- The account has many campaigns and ad groups and you cannot tell which change caused the problem.
- Results are suffering during a launch or sale and every day costs real money.
Stuck on this? Send me the details.Tell me what the platform shows and what you've tried so far.
Send me the detailsFAQs
What does cross-domain measurement do?
It attributes activity to a single user as they cross domains.
How are IDs passed?
In the _gl URL parameter when the user clicks a link or submits a form.
How do I check it works?
Verify the destination URL contains the _gl linker parameter.
Why does _gl disappear?
Redirects or pages that do not support query parameters can remove it.
What are self-referrals?
They can appear without it and may mean traffic is attributed incorrectly.