TrustData tracks two types of events: page views and conversions.
Page views are tracked automatically when you initialize the SDK with sendPageView: true:
trustdata.push(['init', 'YOUR_ATTRIBUTION_ID', { sendPageView: true }]);
Each page view captures:
For SPAs (React, Vue, etc.), track page views on route changes:
// After route change
trustdata.push(['event', 'page_view']);
Conversions are the events that matter for attribution. TrustData supports two primary conversion types:
For e-commerce transactions:
trustdata.push(['event', 'purchase', {
conversion_id: 'ORD-12345', // Required - used for deduplication
value: 149.99,
currency: 'USD',
}]);
Full example with products and user data:
trustdata.push(['event', 'purchase', {
conversion_id: 'ORD-12345',
value: 149.99,
currency: 'USD',
tax: 12.50,
shipping: 5.99,
user_data: {
email: '[email protected]',
phone: '+15551234567',
first_name: 'Jane',
last_name: 'Doe',
},
products: [
{
id: 'SKU123',
name: 'Premium Widget',
quantity: 2,
price: 49.99,
},
{
id: 'SKU456',
name: 'Widget Accessory',
quantity: 1,
price: 50.01,
},
],
}]);
For lead generation (demo requests, form submissions, signups):
trustdata.push(['event', 'generate_lead', {
conversion_id: 'lead_abc789',
value: 50,
currency: 'USD',
lead_type: 'demo_request',
user_data: {
email: '[email protected]',
},
}]);
Examples:
// Demo request
trustdata.push(['event', 'generate_lead', {
conversion_id: 'lead_abc789',
value: 100,
currency: 'USD',
lead_type: 'demo_request',
user_data: { email: '[email protected]' },
}]);
// Newsletter signup
trustdata.push(['event', 'generate_lead', {
conversion_id: 'sub_xyz123',
value: 10,
currency: 'USD',
lead_type: 'newsletter',
user_data: { email: '[email protected]' },
}]);
// Contact form
trustdata.push(['event', 'generate_lead', {
conversion_id: 'form_456',
value: 50,
currency: 'USD',
lead_type: 'contact_form',
user_data: { email: '[email protected]' },
}]);
TrustData automatically captures parameters from the URL to enable attribution.
Add these to your ad URLs for campaign tracking:
| Parameter | Purpose | Example |
|---|---|---|
trdt_cpid | Campaign ID | ?trdt_cpid={campaignid} |
trdt_agid | Ad Group ID | &trdt_agid={adgroupid} |
trdt_kwid | Keyword ID | &trdt_kwid={targetid} |
trdt_ctid | Creative/Ad ID | &trdt_ctid={creative} |
Example URL:
https://example.com/landing?trdt_cpid=123&trdt_agid=456&trdt_ctid=789
Standard UTM parameters are captured automatically:
| Parameter | Purpose |
|---|---|
utm_source | Traffic source (google, facebook, newsletter) |
utm_medium | Marketing medium (cpc, email, social) |
utm_campaign | Campaign name |
utm_term | Paid search keyword |
utm_content | Ad variation or link identifier |
These are added automatically by ad platforms:
| Parameter | Platform |
|---|---|
gclid | Google Ads |
fbclid | Meta Ads |
ttclid | TikTok Ads |
msclkid | Microsoft Ads |
If the user consents, TrustData captures these click IDs and uses them to match conversions back to the original ad click.
Every event includes:
| Property | Description |
|---|---|
timestamp | Event time (ISO 8601) |
url | Current page URL |
referrer | Referring URL |
visitor_id | Persistent visitor identifier |
device | Device type, browser, OS |
consent | Consent state (4 levels) |
adblock | Whether ad blocker detected |
Include a unique conversion_id on every conversion event to prevent duplicate attribution:
trustdata.push(['event', 'purchase', {
conversion_id: 'ORD-12345', // your order ID, lead ID, form ID, etc.
value: 149.99,
currency: 'USD',
}]);
Attribution depends on conversion value. Always include it:
// Good
trustdata.push(['event', 'generate_lead', {
conversion_id: 'lead_abc',
value: 50,
currency: 'USD',
}]);
// Bad - no value or dedup ID
trustdata.push(['event', 'generate_lead']);