Cross-Domain Device Tracking


Cross-Domain Device Tracking allows you maintain a consistent device identifier as a user browses multiple domains that you own. This feature is helpful if you would like to draw insights from user behavior across all your owned domains, but have not been able to capture any persistent identifiers on that user yet, such as an email address.

Before You Start

To activate Cross-Domain Tracking, you will need to ensure you are deploying the Sync Injector on the websites that you would like to share a common cross-domain identifier.

You will also need to ensure that the cookieSync setting is enabled. Only the MetaRouter team can enable setting. Please reach out to your Customer Success Manager to confirm that the setting is enabled prior to implementing cross-domain tracking. Without this setting, you will likely encounter a Cross-Origin Resource Sharing (CORS) error.

How It Works

To demonstrate how Cross-Domain Tracking works, we'll use a fictional organization, This organization has recently purchased three brands to bolster its portfolio of outdoors companies that own the following domains:


Our example user has never interacted with any of these brands before. When they decide to visit, the Sync Injector calls to MetaRouter cluster endpoints to determine if the user has been seen before across any of CompletelyOutdoors' domains. No identifier is found, so it sets a Cross-Domain ID value of 123abc within the MetaRouter JavaScript cookie space on the user's browser.

Two weeks later, the user visits When the Sync Injector loads and does not detect an existing Cross-Domain ID within's first-party cookie space, it calls the available cluster endpoints. This allows it to access cookies stored by EverythingFlyFishing and Since a Cross-Domain ID value was created and stored within the cookie, the value 123abc is pulled and set as the Cross-Domain ID value on

A few days later, the same user navigates to Now, the Sync Injector moves through the same process and sees that Cross-Domain ID value has been set on both and It sets the 123abc value on as well. can now analyze their user data within a persistent data storage destination (e.g. a CDP or data warehouse) and join the user data across domains based on the persistent Cross-Domain ID value that has been set. They would see that the user has an affinity for fly fishing and skiing, and can now serve relevant experiences to that user.

Configuring Cross-Domain Tracking

Configuring Cross-Domain Tracking requires a few simple steps:

  1. Reach out to your MetaRouter Customer Success Manager to confirm that Cross-Domain Tracking has been activated for your organization.
  2. Note the Ingestion Website URLs for each of the domains you'd like to sync a Cross-Domain ID between. These can be found within the File Builder of each domain's production pipeline.
  3. Navigate to a pipeline for which you'd like to activate Cross-Domain Tracking. Open the File Builder.
  4. Scroll down to the Cross-Domain Identity Sync section. Add the Ingestion Website URLs you gathered in Step 1, with /v1/cross_domain/id appended to the end. This may look something like Ensure the URLs are comma-separated.
  5. Save and build your file, and install the new file.
  6. Repeat this process for each domain you'd like to sync a Cross-Domain ID between. That's it!

Using Cross-Domain IDs

To use the Cross-Domain IDs that MetaRouter generates, you must first map the Cross-Domain ID input value to your destination. The input value will typically be but be sure to validate that this is the correct input generated by your Analytics.js file. Within your integration, add this input with a Mapping transformation, Direct Assign type, and the correct Output key for your integration. This will vary per integration.

Once you begin to see your Cross-Domain ID populating within your destination, you will be able to apply any logic you'd like within that destination to take advantage of your Cross-Domain ID.


How long is the Cross-Domain ID cookie value stored in the browser?

The Cross Domain ID will live for up to 365 days in Chrome. It may live within other browsers for a shorter duration, depending on browser restrictions.

Does Cross-Domain Tracking work on Safari or Firefox?

Cross-Domain Tracking may not work on Safari or Firefox due to State Partitioning.

What happens if a Cross-Domain ID conflict occurs?

MetaRouter will perform "re-check" sync to ensure Cross-Domain IDs remain consistent across domains. This will occur every seven days.

It is possible that a user might have separate Cross-Domain IDs set for different domains. One reason this might happen is if a sync to one domain times out. If this occurs, then a new Cross-Domain ID could be set despite one already existing. In any scenario where a user’s Cross-Domain ID is different among domains, we’ll use most common ID set by the configured domains. If there is a tie in the sum of IDs, then we’ll use the order of the domains within the UI configuration and pull the first ID in that list.

Are calls to each Ingestion Website URL asynchronous?

Yes, the Sync Injector calls all the domain URLs at the same time. If a Cross-Domain ID is not resolved within the timeout period, it is ignored.