Add this snippet before the closing </head> tag:
<script>
(function(w,d,s,u,n){
w[n]=w[n]||[];
w[n].push(['init','ATTRIBUTION_ID',{sendPageView:true}]);
var f=d.getElementsByTagName(s)[0],j=d.createElement(s);
j.async=1;j.src=u;f.parentNode.insertBefore(j,f);
})(window,document,'script','https://t.trustdata.tech/t.js','trustdata');
</script>
Replace ATTRIBUTION_ID with your Attribution's ID from the dashboard.
npm install @trustdata/sdk
import trustdata from '@trustdata/sdk';
trustdata.init('ATTRIBUTION_ID', {
sendPageView: true
});
trustdata.init('ATTRIBUTION_ID', {
// Send a pageview event on initialization
sendPageView: true,
// Enable cookieless tracking mode (in-memory only)
cookieless: false,
// Initial consent state
consent: {
analytics: false,
advertising: false
},
// Domains to ignore for referrer tracking
ignoreDomains: ['stripe.com', 'paypal.com'],
// Event server endpoint (default: TrustData cloud)
apiHost: 'https://t.trustdata.tech'
});
| Option | Type | Default | Description |
|---|---|---|---|
sendPageView | boolean | false | Send pageview on init |
cookieless | boolean | false | Disable persistent storage (in-memory only) |
consent | object | {analytics: false, advertising: false} | Initial consent state |
ignoreDomains | array | [] | Domains to exclude from referrer |
apiHost | string | https://t.trustdata.tech | Event server endpoint |
Track custom events:
trustdata.event('button_click', {
button_id: 'signup',
page: '/pricing'
});
trustdata.event('add_to_cart', {
product_id: 'SKU123',
value: 49.99
});
Update consent state:
// Grant all consent
trustdata.consent({
analytics: true,
advertising: true
});
// Revoke advertising consent
trustdata.consent({
analytics: true,
advertising: false
});
Associate events with a known user:
// After user logs in
trustdata.setUserId('user_123');
The user ID persists across sessions and is used for cross-device attribution.
Get the current visitor's anonymous ID:
const visitorId = trustdata.getVisitorId();
console.log(visitorId); // "v_abc123..."
Get the current visitor's attribution journey:
const path = trustdata.getAttributionPath();
console.log(path);
// [
// { source: 'google', medium: 'cpc', campaign: 'brand' },
// { source: 'facebook', medium: 'paid', campaign: 'retarget' }
// ]
Enable or disable debug logging:
trustdata.debug(true); // Enable debug mode
trustdata.debug(false); // Disable debug mode
Debug output:
[TrustData] Initialized with attribution_id: TD-abc123
[TrustData] Pageview: /products/widget
[TrustData] Event: add_to_cart {product_id: "SKU123", value: 49.99}
For SPAs, track pageviews on route changes:
// React Router example
import { useLocation } from 'react-router-dom';
function App() {
const location = useLocation();
useEffect(() => {
trustdata.event('page_view', {
path: location.pathname
});
}, [location]);
return <Routes>...</Routes>;
}
// Vue Router example
router.afterEach((to) => {
trustdata.event('page_view', {
path: to.path
});
});
Integrate with your consent management platform:
// Initialize without automatic page_view
trustdata.init('ATTRIBUTION_ID', {
sendPageView: false,
consent: {
analytics: false,
advertising: false
}
});
// After user grants consent
function onConsentGranted() {
trustdata.consent({
analytics: true,
advertising: true
});
trustdata.event('page_view');
}
// If user only grants analytics consent
function onAnalyticsOnlyConsent() {
trustdata.consent({
analytics: true,
advertising: false
});
trustdata.event('page_view');
}