Overview
Cross-domain tracking in Adobe Analytics ensures visitor sessions persist when users navigate between different domains you own. Adobe uses the Experience Cloud ID (ECID) Service to maintain visitor identity across domains, combined with proper cookie configuration and identity stitching.
When Cross-Domain Tracking Is Required
- Multi-domain journeys: Main site on
www.example.com, checkout onsecure.example.com - Third-party payment processors: Redirects to payment gateways that return users to confirmation pages
- Regional or brand domains:
brand.com,brand.co.uk,subbrand.com - Mobile app to web: App deep links that open web content on different domains
- Single sign-on flows: Authentication redirects across identity provider domains
- Partner integrations: Journeys that span owned and partner domains
ECID Service Configuration
Deploying the Experience Cloud ID Service
The ECID Service is the foundation for cross-domain visitor identification:
// Via Adobe Launch (Tags)
// Deploy the ECID extension with your Organization ID
{
"name": "Experience Cloud ID",
"orgId": "YOUR_ORG_ID@AdobeOrg",
"loadSSL": true,
"cookieDomain": ".example.com",
"idSyncContainerID": 0
}
Cookie Domain Configuration
Set the cookie domain to enable subdomain sharing:
// In ECID configuration
Visitor.getInstance("YOUR_ORG_ID@AdobeOrg", {
trackingServer: "metrics.example.com",
trackingServerSecure: "smetrics.example.com",
cookieDomain: ".example.com", // Leading dot for subdomain access
cookieLifetime: 63072000 // 2 years in seconds
});
First-Party CNAME Implementation
For improved data collection reliability:
Set up CNAME records pointing to Adobe's collection servers:
metrics.example.com→ Adobe tracking serversmetrics.example.com→ Adobe secure tracking server
Request SSL certificate from Adobe for your CNAME domains
Configure in Launch/DTM:
- Tracking Server:
metrics.example.com - Tracking Server Secure:
smetrics.example.com
- Tracking Server:
Cross-Domain ID Sharing
When journeys span entirely different domains (not just subdomains):
// Enable ID sharing via URL parameter
Visitor.getInstance("YOUR_ORG_ID@AdobeOrg", {
trackingServer: "metrics.example.com",
idSyncContainerID: 0,
useCORSOnly: false,
appendVisitorIDsTo: function(url) {
// Automatically append ECID to cross-domain links
return Visitor.appendVisitorIDsTo(url);
}
});
Decorate cross-domain links:
// Automatically append visitor data to links
var link = "https://partner-domain.com/landing";
var decoratedLink = Visitor.appendVisitorIDsTo(link);
// Result: https://partner-domain.com/landing?adobe_mc=MCMID%3D...
Link Decoration Details
URL Parameter Structure
The adobe_mc parameter contains:
| Component | Description |
|---|---|
MCMID |
Marketing Cloud Visitor ID |
MCAID |
Analytics Visitor ID |
MCORGID |
Experience Cloud Organization ID |
TS |
Timestamp for validation |
Example decorated URL:
https://checkout.example.com/cart?adobe_mc=MCMID%3D12345%7CMCORGID%3DORG%40AdobeOrg%7CTS%3D1234567890
Automatic Link Decoration in Launch
Configure the ECID extension to auto-decorate links:
- Open the ECID extension settings in Launch
- Enable Automatically request visitor ID
- Add domains to Automatically decorate links to these domains
- Save and publish
Manual Link Decoration
For dynamic or programmatic links:
// Get decorated URL
var destinationUrl = "https://partner.com/page";
var trackedUrl = Visitor.appendVisitorIDsTo(destinationUrl);
// Apply to link element
document.getElementById("partner-link").href = trackedUrl;
Referral Exclusions
Prevent internal domains from appearing as traffic sources:
- Go to Admin > Report Suites > Edit Settings > General > Internal URL Filters
- Add all internal domains:
example.comcheckout.example.comsecure.example.com
Without referral exclusions, users returning from checkout domains create new visits and lose attribution.
Third-Party Checkout Integration
Payment Provider Flow
example.com → stripe.com → example.com/confirmation
- Pre-redirect: Capture ECID and pass to payment provider
- Return URL: Include
adobe_mcparameter in callback URL - Confirmation page: ECID Service reads parameter and restores identity
Implementation Example
// Before redirecting to payment
var ecid = Visitor.getInstance("YOUR_ORG_ID@AdobeOrg").getMarketingCloudVisitorID();
// Store in session or pass to server
sessionStorage.setItem('adobe_ecid', ecid);
// Configure return URL with ID
var returnUrl = Visitor.appendVisitorIDsTo('https://example.com/order-complete');
On return, the ECID extension automatically reads the adobe_mc parameter.
A/B Testing Integration (Target/A4T)
When using Adobe Target for experimentation across domains:
Consistent Tracking Server Configuration
Ensure all domains use the same:
- Tracking server configuration
- Report suite IDs
- ECID Organization ID
A4T Setup
// Both domains must have matching configuration
Visitor.getInstance("YOUR_ORG_ID@AdobeOrg", {
trackingServer: "metrics.example.com",
marketingCloudServer: "YOUR_ORG_ID.tt.omtrdc.net"
});
// Target initialization
adobe.target.init({
clientCode: "your_client_code",
serverDomain: "your_client_code.tt.omtrdc.net",
visitorApiTimeout: 2000
});
Validating A4T Cross-Domain
- Open Experience Platform Debugger on both domains
- Verify ECID matches across domains
- Confirm Target PCID/TNT ID consistency
- Check that A4T attribution persists through the journey
Edge Cases and Considerations
Safari ITP Impact
Safari's Intelligent Tracking Prevention affects cross-domain cookies:
- First-party cookies set via JavaScript expire in 7 days
- Third-party cookies are blocked entirely
- CNAME cloaking may trigger additional restrictions
Mitigations:
- Use server-side cookie setting where possible
- Implement FPID (First-Party ID) strategy
- Use
adobe_mcURL parameter for critical journeys
Privacy and Consent
Cross-domain tracking must respect user consent:
// Check consent before decorating links
if (userHasConsent('analytics')) {
link.href = Visitor.appendVisitorIDsTo(link.href);
}
iFrame Considerations
For embedded content across domains:
- Parent and child frames need separate ECID instances
- Use
postMessageto share visitor IDs between frames - Consider whether iframe tracking provides actionable insights
Validation and Testing
Adobe Experience Platform Debugger
- Install the Experience Platform Debugger extension
- Navigate through cross-domain journey
- Verify ECID matches on each domain
- Confirm report suite and tracking server consistency
Assurance (Griffon)
For mobile and complex implementations:
- Create an Assurance session
- Connect your devices/browsers
- Monitor ECID propagation across domain transitions
- Validate hit payloads contain expected identifiers
Network Tab Validation
Check b/ss requests in browser DevTools:
- Open Network tab
- Filter for requests to your tracking server
- Verify
mid(Marketing Cloud ID) parameter is consistent - Confirm
pageNameandpe(event) values are correct
Real-Time Reports
- Open Reports > Site Content > Pages (Real-Time if enabled)
- Navigate through cross-domain journey
- Confirm visits don't split at domain boundaries
Troubleshooting
| Symptom | Likely Cause | Solution |
|---|---|---|
| New visit on subdomain | Cookie domain misconfigured | Add leading dot to cookieDomain |
| ECID differs across domains | URL decoration not working | Enable appendVisitorIDsTo |
| Internal domains as referrers | Missing referral exclusion | Add to internal URL filters |
| Safari users losing identity | ITP blocking | Implement FPID or server-side cookies |
| A4T data not matching | Tracking server mismatch | Align configuration across domains |
| Payment return loses visitor | Return URL not decorated | Pass adobe_mc in callback URL |
Solution Design Considerations
Document cross-domain requirements in your Solution Design Reference:
| Element | Description |
|---|---|
| Domains in scope | List all domains participating in tracking |
| CNAME configuration | Tracking servers per domain |
| Cookie domain settings | Root domains for cookie sharing |
| URL decoration rules | Which links require ECID appending |
| Referral exclusions | Internal domains to exclude |
| Fallback strategy | Behavior when URL decoration fails |