Understanding Cross-Domain Tracking in Google Analytics 4

Written by
Yulia Deda
Reviewed by
Ivanna Vashyst
Jun 06, 2024
15 min read

Let’s say you have multiple websites or use third-party services like payment processors and want to track users and sessions across various domains. 

The problem is that GA4 doesn’t automatically track your users as they move from site A to site B. You must configure cross-domain tracking to see the full customer journey across each of your sites.

This guide explains what GA4 cross-domain tracking is, how it can prove vital to your business, the problems it can cause, and how to set it up effectively (both manually and through the GA4 interface itself).

Key takeaways

Cross-domain tracking is the process of monitoring users’ session data as they navigate from one domain to another. GA4 doesn’t collect this data by default, so you must configure this tracking type on your own. 

Conveniently enough, you don’t need to set up cross-domain tracking for subdomains. GA4 automatically collects this information.

If you don’t have cross-domain tracking enabled, GA4 will see users on each of your websites (domains) as completely different people. This is because cookies used to track user activity cannot be automatically shared between domains. Cross-domain tracking helps GA4 pass cookies between domains, thereby allowing it to recognize the same user across each domain.

It’s recommended to set up GA4 cross-domain tracking when you want the tool to treat several sessions across different domains as a single session. E-commerce websites and affiliate marketing campaigns are two prime examples that demonstrate why configuring this type of tracking is essential.

Tracking users across different domains allows you to gain a complete picture of their brand journey, enhance user experience, and optimize marketing spending for better results.

You can set up GA4 cross-domain tracking either through the service’s interface or manually.

To test if GA4 collects customer data over a list of domains, you can either examine the second destination’s URL for the _gl parameter or use DebugView from within GA4.

The most common problems associated with cross-domain tracking in GA4 are the following: incorrect configuration, URL redirects, conflicting scripts, multiple properties involved, and user privacy extensions blocking cookies.

What is cross-domain tracking in Google Analytics 4?

Cross-domain tracking in GA4 is the process of measuring and collecting data on user activity across several domains. For instance, maybe a user browses clothes on your main website (domain A) and then clicks a link to checkout on a separate shopping cart domain (domain B). Even though the user switched domains, cross-domain tracking would still allow you to see this as a single-user journey.

Why and when do you need cross-domain tracking in Google Analytics 4?

The short answer is that you need to set up cross-domain tracking whenever you want GA4 to treat several sessions across different domains as a single session. Here are a few common scenarios:

1. E-commerce websites. 

Do you have separate domains for product pages, shopping cart, and payment gateways? This is a common e-commerce SEO technique. Cross-domain tracking allows you to track user activity across these domains as if it were one session.

Note: For e-commerce websites, it’s recommended to gather data on purchases, e-commerce site searches, domain traffic sources, conversion paths, audience demographics, bounce rate, and more. Check out our comprehensive guide on GA4 e-commerce tracking to learn all about this process.

2. Affiliate marketing campaigns.

Cross-domain tracking ensures accurate attribution of conversions and user behavior across domains as visitors move between your main site and affiliate sites.

Suppose an affiliate sends traffic to a landing page on a separate domain that captures leads. The lead visits the main online store later and makes a purchase. Without cross-domain tracking, the affiliate wouldn’t get credit for the sale. Cross-domain tracking makes sure that the affiliate gets their rightful commission.

Now, let’s explore why tracking user activities across multiple domains is so important:

  • It gives you a holistic understanding of your users’ full interaction cycle with your brand. This is essential for user behavior analysis and SEO forecasting. More specifically, it helps you determine the type of content people engage with the most, how they move between different touchpoints (e.g., main website, blog, e-commerce platform), where they drop off, and how this process leads to conversions and sales. 
  • Cross-domain tracking helps you determine which marketing efforts drive traffic and conversions across various domains. This results in the ability to make data-backed decisions to optimize your marketing budget.
  • Cross-domain tracking configuration assists you in improving the overall user experience. How? For example, based on collected data, you can enhance navigation and personalize experiences according to user interactions.
  • Cross-domain tracking also reduces data discrepancies that arise from incomplete user journeys. All interactions are attributed to the correct user and session, greatly improving the overall accuracy and reliability of analytics data.

To sum up, cross-domain tracking bridges the gap between isolated domains, but you can further enrich your analysis by incorporating GA4 custom dimensions. These dimensions allow you to capture user attributes or event details specific to each domain, which is essential for gaining a more comprehensive view of user journeys across multiple domains.

How does cross-domain tracking work in Google Analytics 4?

You might be wondering why can’t GA4 track users across different domains by default.

To answer this question, we’ll need to explore the process of how GA4 tracks user interactions in detail.

GA4 relies on first-party cookies to identify users. When someone visits your site, a cookie with a unique identifier is stored on their browser. This identifier lets GA4 recognize them as they navigate your pages.

The catch? These cookies are restricted to a single domain. So, if a user moves from one site (domain A) to another (domain B), GA4 loses sight of that identifier. It treats them as two separate users across multiple websites.

This also disrupts your traffic reports. When a user transitions from domain A to B, GA4 might record them as a “self-referral,” skewing your acquisition data.

The best solution for addressing this problem lies in setting up cross-domain tracking. This enables GA4 to pass cookies between your two sites and provide an accurate view of the user journey. 

Do you need cross-domain tracking for subdomains?

Imagine you have the following subdomains:

  • www.example.com
  • blog.example.com
  • support.example.com

Would you need to set up cross-domain tracking for them?

Well, here’s the good news.

GA4 simplifies things by automatically identifying subdomains of the same main domain as a unified whole. This means visits to different subdomains (e.g., blog.example.com and www.example.com) will be attributed to the same user journey.

In other words, you DON’T need cross-domain tracking for subdomains.

Note: While GA4 simplifies tracking for subdomains under the same primary domain, search engines like Google still crawl, index, and rank each subdomain separately. This means you’ll need to do SEO for subdomains individually.

For your convenience, you can use an SEO platform like SE Ranking to comprehensively track the SEO progress of both subdomains and domains in one place. 

To create your project, choose one of the following options depending on your goals: 

  • Track your subdomains along with your main domain
  • Track domains separately

To monitor subdomains with the main domain, choose the *.domain/* domain type.

Tracking domains with subdomains in SE Ranking

The system will then look at the URLs of all your subdomains.

To monitor each subdomain separately, you’ll need to create a separate project for each subdomain. Enter the subdomain address into the Website URL field and choose the domain/* domain type to track this subdomain only:

Tracking subdomains in SE Ranking

Besides tracking rankings, monitoring backlinks, performing website audits, forecasting organic traffic, and other essential SEO tasks, SE Ranking allows you to integrate data from GA4. This gives you a comprehensive view of your GA4 and SEO insights, allowing you to monitor how well your SEO efforts translate into actual website visits and user engagement.

Just connect your GA4 and/or GSC accounts when creating a new SE Ranking project by clicking the corresponding buttons and following further instructions.

SE Ranking integration with GA4 and GSC

You can also do this later in the Analytics & Traffic block.

Analytics and Traffic section

This gives you access beyond core SEO metrics by providing statistics about your domain/subdomain directly from the analytics tool within the account. It displays how visitors from different traffic sources interact with your website, shows where they come from, provides page analytics data (e.g., number of views, time that users spend navigating your website, average session duration, engagement rate, etc) and gives you an impression of various conversion events that trigger users the most.

Website traffic analysis with SE Ranking

And that’s about it. Let’s move on to the GA4 cross-domain tracking configuration process.

How to set up cross-domain tracking in Google Analytics 4

Now that you know everything about cross-domain tracking, let’s look at the steps required to set it up in GA4.

There are two ways to configure this type of tracking. We’ll go into detail on each one.

Cross-domain tracking setup via GA4 interface

Cross-domain tracking won’t work unless the websites involved have the same GA4 property. You can either install the tracking code directly on each website (using gtag.js) or deploy it through Google Tag Manager (GTM). Keep in mind that both sites must share the same GA4 property regardless of the method you choose.

Step #1. Open your account in GA4, go to the Admin section > Data Streams.

GA4 Data Streams

Note: If you don’t have a verified GA4 account, here’s a step-by-step guide on how to set up GA4.

Step #2. Click on your property’s data stream.

GA4 web data stream

Step #3. Scroll down to the Google Tag section and navigate to the Configure Tag Settings block.

GA4 configure tag settings

Step #4. Within the Settings section, click Configure Your Domains.

GA4 configure your domains

Step #5. To configure your tracked domains, click on Add condition in the Configure Your Domains section. Next, choose a match type for the domain conditions and enter the identifier for the domain you want to match in the Domain field (e.g., yourwebsite1.com).

GA4 Conditions for domain configuration

Step #6. Save all changes by clicking on the Save button at the top of the screen.

And that’s it. GA4 will begin collecting user interaction data on your site as they move from one domain to the other.

Manual cross-domain tracking setup

While it’s recommended to use GA4 settings to track users across the various domains you own,  you may occasionally need to build your own solution. You can do this by adding code to your website manually.

This custom approach involves using the get and set commands of the gtag.js API to persist IDs across domains.

Imagine you want to grab a user’s ID on the starting site. You would use a special command to get this ID and then store it in a variable for later use:

gtag('get', 'TAG_ID', 'client_id', (client_id) => {

  // Store the client ID in a variable.


gtag('get', 'TAG_ID', 'session_id', (session_id) => {

  // Store the session ID in a variable.


Once you have those IDs, you can add them to the link directing users to the other website (destination domain):

<a href="https://example.com/?clientId=XXXXX&sessionId=YYYYY">example.com</a>

On the destination site, you can then read that information from the link and set them with the config command:

gtag('config','TAG_ID', {

'client_id': getClientIdFromUrl(),

'session_id': getSessionIdFromUrl()


For more on this topic, refer to Google’s guide on configuring cross-domain measurement manually.

Common problems with cross-domain tracking in Google Analytics 4

Websites are sometimes incorrectly configured, preventing cross-domain measurement from working properly. 

Let’s explore the most frequent cross-domain tracking issues in GA4.

Incorrect configuration

Misconfiguration of the cross-domain tracking settings is the most common problem. It’s also the most straightforward. For example, incorrectly entering the domains you want to track can lead to inaccurate data reporting, skewing your understanding of user acquisition. This means you should use caution when going through each step of cross-domain configuration (use the instructions provided in the section above for reference).

URL redirects

There are certain conditions where the  _gl parameter, added by GA4 to track users across your website, can get removed from URLs. This generally happens when the destination page either redirects to another location or doesn’t support arbitrary query parameters. 

To check if this problem is affecting your site, you can use Chrome Developer Tools. Use this set of web developer tools to examine network requests made by the previous page. This will unravel how the _gl parameter was handled. 

To address this issue and prevent it from happening further on, preserve the parameter _gl in your site’s redirects.

Note: Since this issue requires deep expertise in this topic, Google recommends hiring an experienced web developer to investigate.

Conflicting scripts

Other scripts running on the page can sometimes interfere with the cross-domain tracking process. This problem typically occurs when these scripts utilize methods like Event.stopPropagation(). It also happens when the navigation is triggered by JavaScript. This is because the information on users’ clicks “travels” through a series of stations (HTML elements) to a central hub (document node) where it’s registered. Cross-domain measurement adds a special note (the _gl parameter) to this information during the journey. 

But if the information gets blocked by scripts, it can’t reach the hub or add the _gl parameter. Similarly to the previous problem, it’s recommended to get assistance from an experienced web developer in addressing this issue.

Multiple GA4 properties involved

Each GA4 property has a unique identifier and its own data collection configuration. Note that you cannot share client-side identifiers, like cookies, between different GA4 properties. This means that both domains must use a single GA4 property so that user data is collected within the same system. Otherwise, you might end up collecting incomplete and inaccurate data on user behavior.

Cookie blocking extensions

GA4 uses cookies to recognize the same user on different sites. Any external factors affecting the way GA4 stores user data can eventually disrupt the entire cross-domain tracking process.

For instance, some extensions block websites from storing cookies on user devices (e.g., Adblock Plus). These extensions can either block all cookies or third-party cookies (which come from different domains from the one you’re visiting).

If a user has a cookie-blocking extension, especially one blocking third-party cookies, GA4 can’t store the cookies it needs in order to track the user across each of your domains.

Testing cross-domain tracking in Google Analytics 4

Want to make sure your cross-domain setup is working accurately? In this section, we’ll explore two methods for understanding and dealing with associated issues.

Look for the GL parameter

1. Open a webpage featuring the link pointing to the second domain that you set up for cross-domain tracking.

2. Click that link to visit the second website. Double-check to see if the second webpage opens properly.

3. Observe the URL on your second domain. Check to see if it contains the linker parameter _gl. It might look something like this: https://www.example.com/?_gl=1*abcde5*.

Found the _gl parameter? Awesome! This means your cross-domain tracking is working. Expect to see data collected from both websites in your GA4 reports soon.

Use a native DebugView in GA4

There are two ways to activate debug mode for your website. The first is to use Google Tag Manager (through tagassistant.google.com or preview mode). The second is to install the GA Debugger Chrome extension

After choosing your debug method, go to the DebugView in GA4 to see detailed data tracking information.

GA4 DebugView

You can find your device in this section and view the event, which will be listed as page_view (expect to see several GA4 events).

GA4 DebugView events

In some of these events, a parameter called page_location will contain the value “domainA.com”. In other events, the same parameter will contain the value “domainB.com”. 

This is the information you should be looking for.

Summing it up

Tracking user behavior across different websites can undoubtedly be tricky.

To make matters more complicated, analytics tools like GA4 can’t automatically track visitors moving between different domains. But with a simple configuration, GA4 can provide a complete picture of the customer journey across each of your sites. This can help you identify areas for improvement, personalize content, and create a more cohesive user experience for your target audience.

Carefully follow the instructions from this step-by-step guide to streamline your cross-domain tracking configuration. Completing it opens the door to more effective marketing and a welcome boost to your business growth.

Subscribe to our blog!

Sign up for our newsletters and digests to get news, expert articles, and tips on SEO

Thank you!
You have been successfully subscribed to our blog!
Please check your email to confirm the subscription.