Overview
Cross-domain tracking maintains X Pixel attribution across multiple domains in your conversion funnel.
Same Pixel Across Domains
Deploy identical X Pixel on all domains:
<!-- Same on all domains -->
<script>
!function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments);
},s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='https://static.ads-twitter.com/uwt.js',
a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script');
twq('config','PIXEL_ID');
</script>
First-Party Cookie Fallback
function setXFirstPartyCookie(userId) {
const expiryDays = 90;
const date = new Date();
date.setTime(date.getTime() + (expiryDays * 24 * 60 * 60 * 1000));
document.cookie = "x_user_id=" + userId + ";expires=" + date.toUTCString() + ";path=/;domain=.example.com;SameSite=Lax;Secure";
}
function getXFirstPartyCookie() {
const name = "x_user_id=";
const cookies = decodeURIComponent(document.cookie).split(';');
for (let cookie of cookies) {
cookie = cookie.trim();
if (cookie.indexOf(name) === 0) {
return cookie.substring(name.length);
}
}
return null;
}
URL Parameter Passing
function appendXParams(url) {
const xUserId = getXFirstPartyCookie();
if (xUserId) {
const separator = url.indexOf('?') > -1 ? '&' : '?';
url += separator + 'x_uid=' + encodeURIComponent(xUserId);
}
return url;
}
// Apply to cross-domain links
document.querySelectorAll('a[href*="checkout.example.com"]').forEach(link => {
link.href = appendXParams(link.href);
});
Extract on Destination Domain
// Extract X user ID from URL
function extractXUserId() {
const urlParams = new URLSearchParams(window.location.search);
const xUserId = urlParams.get('x_uid');
if (xUserId) {
setXFirstPartyCookie(xUserId);
}
}
// Call on page load
extractXUserId();
Server-Side Handling
// Node.js example
const express = require('express');
const app = express();
app.get('/checkout', (req, res) => {
const xUserId = req.query.x_uid || req.cookies.x_user_id;
if (xUserId) {
res.cookie('x_user_id', xUserId, {
maxAge: 90 * 24 * 60 * 60 * 1000,
domain: '.example.com',
httpOnly: false,
sameSite: 'lax',
secure: true
});
}
res.render('checkout');
});