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.
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 retail campaigns. |
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 Identity Hub using the visitor’s IP and User-Agent. Can also be passed explicitly via _df.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 Identity Hub and included in all subsequent conversion events for that visitor.
// Optionally pass a known TDID directly
_df.identify({ ttd_uid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" });TDID resolution is performed server-side by the Identity Hub — 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
| Datafly Event | Trade Desk Event | Key Properties |
|---|---|---|
Order Completed | purchase | order_id, value, currency, products[] |
Page Viewed | pageview | page_url |
Product Added | addtocart | product_id, quantity, price |
Product Viewed | sitevisit | product_id, page_url |
Lead Generated | lead | lead_id, value |
| Custom events | Custom conversion | Any properties mapped in blueprint |
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:
_df.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 Identity Hub. 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.