appendVisitorIDsTo (Cross-Domain Tracking)
This function lets you share a visitor’s Experience Cloud ID across domains when browsers block third-party cookies. To use this function, you must have implemented the ID service and own the source and destination domains. Available in VisitorAPI.js version 1.7.0 or higher.
Contents:
Track Visitors Across Domains When Browsers Block Third-Party Cookies
ID service writes a first- and third-party cookie to the browser when a person visit your site (see Cookies and the Experience Cloud Identity Service ). The first-party cookie contains the MID, a unique ID for that visitor. The third-party cookie contains another ID used by the ID service to generate the MID. When a browser blocks this third-party cookie, the ID service cannot:
- Regenerate the unique ID for that site visitor when they navigate to another domain.
- Track visitors across different domains owned by your organization.
To help solve this problem, implement Visitor.appendVisitorIDsTo( *
url*)
. This property lets the ID service track site visitors across multiple domains even when their browsers block third-party cookies. It works like this:
- As a visitor browses to your other domains, the
Visitor.appendVisitorIDsTo( *
url*)
appends the MID as a query parameter in the URL redirect from the original domain to the destination domain. - The ID service code on the destination domain extracts the MID from the URL instead of sending a request to Adobe for that visitor’s ID. This request includes the third-party cookie ID, which is not available in this case.
- The ID service code on the destination page uses the passed-in MID to track the visitor.
See the code sample for details.
Append Visitor ID Code Sample
The following example code can help you get started with the appendVisitorIDsTo
function:
var adbeDomains = ["marketo.com", "figma.com", "workfront.com"];
var visitor = Visitor.getInstance("9E1005A551ED61CA0A490D45@AdobeOrg", {
trackingServer: "sstats.adobe.com",
trackingServerSecure: "sstats.adobe.com",
marketingCloudServer: "sstats.adobe.com",
marketingCloudServerSecure: "sstats.adobe.com"
});
adbeDomains.forEach(function(domain) {
var domainRegex = RegExp(domain);
if (!domainRegex.test(location.hostname)) {
hrefSelector = '[href*="' + domain + '"]';
document.querySelectorAll(hrefSelector).forEach(function(href) {
href.addEventListener('mousedown', function(event) {
var destinationURLWithVisitorIDs = visitor.appendVisitorIDsTo(event.currentTarget.href)
event.currentTarget.href = destinationURLWithVisitorIDs.replace(/MCAID%3D.*%7CMCORGID/, 'MCAID%3D%7CMCORGID');
});
});
}
});