The Trade Desk Conversions
Send conversion events to The Trade Desk server-to-server using the Real-Time Conversion endpoint for accurate attribution of programmatic campaigns running on The Trade Desk’s DSP.
Why route The Trade Desk through Datafly Signal
- Conversions survive ad blockers and tracking prevention. A browser tag served from an advertising domain is blocked outright for part of your traffic, and Safari’s ITP shortens the cookies it can set. Signal sends the event from your own server, so the conversions The Trade Desk optimises against are not filtered by the browser.
- Email is hashed before leaving your infrastructure. Signal normalises (trim and lowercase) and applies SHA-256 inside your own deployment, so The Trade Desk receives match keys rather than raw personal data.
- Client IP and user agent are preserved. Server-to-server delivery normally loses both, which weakens matching. Signal forwards the genuine visitor values as request headers so The Trade Desk attributes the event to the right session.
- Delivery is batched, rate-limited, and retried. Signal buffers to Kafka, respects the The Trade Desk rate limit, and retries on 429 or transient failure rather than dropping the event.
- One consent decision governs every destination. The Trade Desk is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
- No vendor tag on the page. Removing it removes its page weight and its independent access to your visitors.
Prerequisites
Complete these steps in The Trade Desk platform before configuring the integration in Signal.
Create a Trade Desk Account
Access The Trade Desk platform via self-serve signup or through a managed service arrangement with a Trade Desk partner. Log in at desk.thetradedesk.com.
Find Your Advertiser ID
Navigate to Advertiser Preferences > Info. Your Advertiser ID is displayed on this page (e.g. abc12345). Each advertiser in your account has a unique ID.
Create a Tracking Tag
Go to Tracking > Universal Pixel (or Offline Tracking Tags for offline conversions). Click Create New Tag and configure the conversion events you want to track. Note the Tracking Tag ID generated — this is the tracking_tag_id used in Signal.
For offline conversion tracking, use Offline Tracking Tags instead of Universal Pixel. The setup process is similar but the tag type determines how The Trade Desk processes the conversion data.
Set Up Merchant ID (Optional)
If you are a retailer sending product-level conversion data, set up a Merchant ID in The Trade Desk platform. Navigate to Advertiser Preferences > Retail and register your merchant details. This is required for Retail Media campaigns with product-level attribution.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
advertiser_id | string | Yes | Your Trade Desk Advertiser ID (e.g. abc12345). Found under Advertiser Preferences > Info. |
tracking_tag_id | string | Yes | Your tracking tag ID. Created under Tracking > Universal Pixel or Offline Tracking Tags. |
merchant_id | string | No | Your Trade Desk Merchant ID for product-level data. Required for accurate product-level purchase attribution in Retail Media campaigns — omit only if you’re tracking aggregate conversions without product detail. |
Configure in Signal
Management UI
- Navigate to Integrations in the sidebar.
- Open the Integration Library tab.
- Find The Trade Desk or filter by Advertising.
- Enter your
advertiser_id,tracking_tag_id, and optionallymerchant_id. - Select consent categories (typically
advertising). - Click Install Integration.
Management API
curl -X POST http://localhost:8084/v1/admin/integration-catalog/the_trade_desk/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Trade Desk Conversions",
"variant": "default",
"config": {
"advertiser_id": "abc12345",
"tracking_tag_id": "your_tracker_id",
"merchant_id": "your_merchant_id"
},
"delivery_mode": "server_side",
"consent_categories": ["advertising"]
}'Identity Signals
The Trade Desk uses the TDID (Trade Desk Unified ID) as its primary identity for conversion attribution. Signal resolves TDIDs server-side via The Trade Desk’s match service.
| Vendor ID | Description | How to Capture |
|---|---|---|
ttd_uid | Trade Desk Unified ID (TDID) | Resolved server-side by Signal’s Signal identity store using the visitor’s IP and User-Agent. Can also be passed explicitly via datafly.identify(). |
How TDID Resolution Works
- When a visitor first arrives on your site, Signal calls The Trade Desk’s match service server-side to resolve the visitor’s TDID.
- The match service uses the visitor’s IP address and User-Agent to return a TDID (if a match is found).
- The TDID is stored in the Signal identity store and included in all subsequent conversion events for that visitor.
// Optionally pass a known TDID directly
datafly.identify({ ttd_uid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" });TDID resolution is performed server-side by the Signal identity store — the match service is never called from the visitor’s browser. This preserves user privacy and avoids ad blocker interference.
Match Rate
Not all visitors will have a TDID. The match rate depends on whether the visitor has previously interacted with Trade Desk-served ads, cookie availability, and geographic region. Events without a resolved TDID can still be sent but will have limited attribution capability.
Event Mapping
The default Retail preset maps:
| Signal event | Trade Desk event |
|---|---|
page | pageload |
Product Viewed | viewitem |
Order Completed | purchase |
To customise or extend, edit the integration’s Field Mappings in the Management UI.
Custom Data Parameters
The Trade Desk supports custom data fields (td1 through td10) for passing additional conversion metadata:
| Parameter | Type | Description |
|---|---|---|
td1 | string | Custom data field 1 (commonly used for order ID) |
td2 | string | Custom data field 2 |
td3 – td10 | string | Additional custom data fields |
Configure custom field mappings in the integration configuration:
{
"config": {
"advertiser_id": "abc12345",
"tracking_tag_id": "your_tracker_id",
"custom_fields": {
"td1": "order_id",
"td2": "product_category"
}
}
}Example: Purchase Event
Datafly.js call:
datafly.track("Order Completed", {
order_id: "ORD-001",
total: 129.99,
currency: "USD"
});Trade Desk Real-Time Conversion payload sent by Signal:
{
"data": [
{
"tracker_id": "your_tracker_id",
"adv": "abc12345",
"event_name": "purchase",
"value": 129.99,
"currency": "USD",
"order_id": "ORD-001",
"td1": "ORD-001",
"tdid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"client_ip": "203.0.113.50",
"referrer_url": "https://example.com/checkout/confirmation"
}
]
}Testing
Send a Test Event
Use the Datafly.js snippet on a test page to fire an Order Completed or Page Viewed event.
Verify in Signal
Open the Live Events view in the Management UI. Confirm the event appears and is routed to The Trade Desk integration.
Check TDID Resolution
In the event detail view, verify that a ttd_uid was resolved by the Signal identity store. If no TDID was found, the event will still be delivered but with limited attribution.
Verify in The Trade Desk
In The Trade Desk platform, navigate to Tracking > Conversion Reports. Confirm the test conversion appears with the correct event name, value, and advertiser ID.
Troubleshooting
| Symptom | Cause | Resolution |
|---|---|---|
200 OK but no conversions in reports | Invalid tracking_tag_id | Verify the tracking tag ID matches an active tag in The Trade Desk platform under Tracking. |
| No TDID resolved | Visitor has no Trade Desk cookie | Expected for new visitors. Match rates vary by region and audience overlap with TTD campaigns. |
INVALID_TRACKER error | Tracker ID not found or deactivated | Check the tag status in The Trade Desk platform. Recreate if necessary. |
| Missing product data | merchant_id not configured | Add the merchant_id to the integration config for product-level attribution. |
| Events delayed in reports | Normal Trade Desk processing lag | The Trade Desk processes conversions in batches. Allow up to 24 hours for conversions to appear in reports. |
| Duplicate conversions | Missing deduplication key | Ensure order_id or a unique event identifier is included in the event properties. |
Delivery
Events are delivered server-side to The Trade Desk’s Real-Time Conversion endpoint:
POST https://insight.adsrvr.org/track/realtimeconversionNo authentication header is required — authentication is handled via the tracker_id and adv (advertiser ID) in the payload. No client-side scripts are loaded for this integration.
Visit The Trade Desk Conversion Events API documentation for full API reference.