TradeTracker
Datafly Signal registers affiliate conversions with TradeTracker server-to-server. Instead of the browser-side TradeTracker conversion pixel, Signal fires the conversion from your own infrastructure when a sale or lead happens, so it is not affected by ad blockers, browser tracking prevention, or a user closing the confirmation page early.
Prerequisites
Before configuring TradeTracker in Signal you need an active TradeTracker advertiser (merchant) account with a live campaign.
Find your Campaign ID
In the TradeTracker advertiser interface (SC), open your campaign and note the numeric Campaign ID. It is also shown on the implementation page for your campaign.
Find your Product (Commission Group) ID
Each campaign has one or more products (commission groups) that set the commission structure. Note the numeric Product ID you want conversions reported against (often 1 if you have a single group).
Confirm the click reference is captured on landing
TradeTracker attributes a conversion to the publisher using the click reference it sets when a visitor arrives from an affiliate link. TradeTracker stores this as a first-party cookie named TT2_<campaignID> on your domain and also exposes it as a landing-page URL parameter. Datafly.js captures it automatically so Signal can send it back on the conversion.
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
campaign_id | Yes | Your numeric TradeTracker campaign ID. |
product_id | Yes | The numeric product / commission-group ID for this conversion. |
Management UI Setup
- Go to Integrations > Add Integration > TradeTracker.
- Choose the Retail preset (page views plus sale and lead conversions).
- Enter your
campaign_idandproduct_id. - Select the consent category that applies (typically
advertising/marketing). - Click Save.
TradeTracker’s conversion endpoint has no API key. The integration is identified by your campaign ID, and each conversion is attributed to the publisher using the captured click reference — there is no token to generate.
API Endpoint
Signal sends each conversion as an HTTP GET with all fields on the query string (there is no request body). Sale and lead conversions use different hosts:
GET https://ts.tradetracker.net/?cid={campaign_id}&pid={product_id}&tid=...&tam=...¤cy=...&data=... # sales
GET https://tl.tradetracker.net/?cid={campaign_id}&pid={product_id}&tid=...&data=... # leadsA successful conversion returns HTTP 200 (a 1×1 tracking response).
Identity Signals
TradeTracker attributes a conversion to the referring publisher using the click reference captured at landing time. Signal sends it on every conversion automatically.
| Signal | Field | Description |
|---|---|---|
| Click reference | data | The TradeTracker click reference, captured by Datafly.js from the landing-page URL parameter and/or the TT2_<campaignID> first-party cookie. This is the primary attribution key. |
| Email (hashed) | eml | Optional SHA-256 hashed e-mail for cross-device / cookieless matching. Hashed server-side with trim + lowercase + SHA-256 (normalised_sha256) before it leaves your infrastructure — raw e-mail is never sent. |
How to send user data
The click reference is captured automatically — no code is required for attribution. To add the optional hashed e-mail match key, call datafly.identify() when the user is known:
datafly.identify("user-123", {
email: "jane.doe@example.com"
});Signal normalises and hashes the e-mail before sending it to TradeTracker.
Event Mapping
Retail preset
| Signal event | TradeTracker conversion | Host |
|---|---|---|
Order Completed | sales | ts.tradetracker.net |
Lead Generated | lead | tl.tradetracker.net |
page | (click-reference capture only) | — |
To customise, edit the integration’s Field Mappings in the Management UI.
Example: sale conversion
Datafly.js call:
datafly.track("Order Completed", {
order_id: "ORD-1001",
revenue: 129.99,
currency: "EUR",
quantity: 3
});Resulting request to TradeTracker:
GET https://ts.tradetracker.net/?cid=12345&pid=1&ttEventName=sales&tid=ORD-1001&tam=129.99¤cy=EUR&qty=3&descrMerchant=ORD-1001&data=<click_reference>&eml=<sha256_email>cid and pid come from your integration config; tid, tam, currency, and qty come from the event; data is the captured click reference; eml is present only when the user has been identified.
Example: lead conversion
Datafly.js call:
datafly.track("Lead Generated", {
lead_id: "LEAD-77",
value: 5.00,
currency: "EUR"
});This reports to the lead host:
GET https://tl.tradetracker.net/?cid=12345&pid=1&ttEventName=lead&tid=LEAD-77&tam=5.00¤cy=EUR&descrMerchant=LEAD-77&data=<click_reference>Testing
- Click through one of your own affiliate links so TradeTracker sets the
TT2_<campaignID>cookie / landing-page click reference. - Complete a test order (or lead) so Signal fires the conversion.
- In the TradeTracker advertiser interface, open Transactions / conversion reporting and confirm the conversion appears with your
tid(transaction ID) and the correct amount and currency. - Confirm the conversion is attributed to a publisher (not shown as direct / unattributed) — this verifies the click reference was captured and sent in
data.
Run TradeTracker conversions either server-side via Signal or with the browser pixel, not both, to avoid double-counting. If you previously used the TradeTracker JavaScript / noscript pixel, remove it from your confirmation page when you switch to Signal.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Conversion missing in TradeTracker | Wrong campaign_id or product_id | Re-check both numeric IDs against your campaign’s implementation page. |
| Conversion shows as direct / unattributed | Click reference not captured or not sent | Verify Datafly.js loads on the landing page and the TT2_<campaignID> cookie / landing URL parameter is present; confirm data is populated on the outgoing conversion. |
| Conversion rejected (400) | Missing tid, tam, or currency | Ensure the tracked event includes order_id/lead_id, revenue/value, and currency. |
| Conversion rejected (403/404) | Campaign disabled or unknown campaign ID | Confirm the campaign is live and the ID is correct with your TradeTracker account manager. |
| Amounts wrong by 100× or currency mismatch | Amount sent in minor units, or wrong currency | Send revenue as a major-unit decimal (e.g. 129.99) and an ISO-4217 currency the campaign accepts. |