Postback Not Firing? A Checklist From Real Setups
When an affiliate network's postback never shows up, the fault is almost always the click ID. A step-by-step checklist built from the setups we have debugged.
· Written by the team that runs Track Link
Short answer
When a postback never shows up, the click ID almost always broke between the click and the sale: the link didn't put it in the network's sub-ID parameter, or the postback URL reads a different field. Check those two first, and remember that a network's test postback sends sample values that can never match a real click. Use your keyed postback URL, so sales that match nothing are still listed and you can see what the network sent.
A postback is your affiliate network calling your tracker, server to server, when a sale happens. It carries the click ID you handed the network when the visitor clicked, and that ID is how the tracker knows which click, ad and campaign earned the sale. When no conversion shows up, the network's side usually looks fine and so does the tracker's. The break is almost always in the ID's round trip.
This checklist comes from the setups we have debugged with Track Link users. Work through it in order: the first three steps are all about the click ID, and that is where the setups we have seen went wrong.
How the round trip is supposed to work
- A visitor clicks your tracked link. Track Link records the click and gives it an ID.
- Track Link puts that ID into the destination, in the parameter the network reads as its sub-ID.
- The network stores the sub-ID with the visit and keeps it through checkout.
- When the sale happens, the network calls your postback URL and fills its macro for that sub-ID.
- Track Link finds the click with that ID and records the sale against it.
Each step hands the ID to the next. If any step drops it, renames it or swaps in a sample value, the sale arrives with nothing to match. For the wider picture, see postback tracking.
1. Does the click ID reach the network?
Your destination has to put Track Link's click ID token, {click_id}, into the network's own sub-ID parameter. Track Link replaces the token with a 14-character click ID on every click. The parameter name is different on every network, and getting it wrong breaks everything after it:
- ClickBank:
unique_aff_sub1={click_id} - Digistore24:
cid={click_id} - Impact:
subId1={click_id} - JVZoo:
tid={click_id} - Everflow networks:
sub1={click_id}
On a Digistore24 promolink that looks like https://www.digistore24.com/redir/PRODUCT_ID/YOUR_ID/?cid={click_id}. Two traps to check:
- No token at all. If the destination doesn't contain
{click_id}, Track Link appends the ID asutm_clickinstead. That works on your own site, but your network won't read it as a sub-ID. - The parameter sits after a
#. Browsers never send the part after the hash to a server, so the network never sees it. Move the parameter before the#.
The setup guide on the Conversions page checks your link for both, and offers to add the right parameter for the network you pick.
2. Does the postback read that same parameter?
The postback URL you paste into the network has to use the network's macro for the same sub-ID you filled in step 1. If your link fills one field and the postback asks for another, the network sends back an empty value or the wrong one. For Digistore24, the keyed URL with every macro Track Link reads is:
https://api.gettrack.link/postback/YOUR_KEY?click_id={cid}&payout={amount_affiliate}¤cy={currency}&txid={transaction_id}&status={transaction_type}&billing={billing_type}&test={is_test}
Two signs this step is wrong:
- The macro arrives as text. If Track Link receives something like
{unique_aff_sub1}instead of an ID, the network didn't fill it in. Usually the link never passed a value in that field, or the macro name is misspelled. Some networks' macros are case-sensitive. - The value isn't a Track Link click ID. Ours are 14 letters and digits. Anything else usually means the postback reads a field your link didn't fill, such as the network's own order or affiliate ID.
Use your network's preset in the setup guide rather than typing macros by hand. A few presets, such as BuyGoods and MaxBounty, use macro names from a tracker's integration guide rather than the network's own documentation. The guide marks those, so confirm them in the network before you send traffic.
3. A failed test postback can be normal
Most networks have a button that sends a test postback. The test doesn't come from a real visitor, so it can't carry a real click ID. Digistore24's test, for example, sends a placeholder cid (literally some-id) and a sample transaction ID. That can never match a click, so a tracker that only looks for matches reports a failure.
Track Link recognises sample values like some-id, and the network's own test flag where it sends one, logs the postback as a test and records nothing. That tells you the network can reach your URL. It can't tell you your link passes the click ID. For that, open your tracked link yourself, then press Simulate a sale in the setup guide within two hours. Track Link runs your postback against that click, shows the offer URL your visitor reached with the click ID filled in, and records nothing.
4. Use your keyed postback URL
Every workspace has its own postback URL with a key in the path, /postback/<key>, on every plan, Free included. Use it rather than the bare /postback address. The key ties each postback to your workspace even when its click ID matches nothing. A keyless postback with an unknown click ID can't be tied to anyone, so there is nothing we can show you.
Postbacks on your keyed URL whose click ID we can't find are listed under Sales we couldn't match on the Conversions page for 90 days, with the click ID, transaction ID and amount the network sent. Reading those values is often the quickest way to see which field the network is really sending.
Two key problems to rule out:
- Keyless postbacks refused. On Pro and up, a workspace can turn on Only accept postbacks with this key. After that every postback without the key is rejected, so an old keyless URL left in a network stops recording sales.
- An old key. After someone creates a new key, URLs carrying the old one no longer match your workspace. Paste the current URL from the Conversions page.
In a shared workspace only admins see the URL with the key, so ask one if yours doesn't have it.
5. Know what your network actually sends
A postback can arrive and record correctly and still disagree with the network's dashboard, because networks report different events:
- ClickBank. Track Link's ClickBank setup uses the Initial Purchase and Upsell Purchase triggers only; Combined Conversion would count upsells twice. ClickBank refunds don't arrive by postback, so they aren't tracked in Track Link and stay in ClickBank's own reports. Order-form triggers are checkout steps, not sales, and Track Link ignores them if they are switched on.
- Digistore24. Select the payment, refund and chargeback events. Every refund and rebill arrives with a new transaction ID. Track Link applies a refund to the sale on the same click, and records a repeat subscription payment as a rebill, so neither shows up as an extra sale.
Each network's notes in the setup guide say which triggers to pick and which to leave off.
6. Look for a page that drops the parameter
If visitors land on your own page or a vendor's presell page before the network's checkout, the click ID has to survive that hop too. A page that links on to the offer without the parameter, or a redirect that rebuilds the URL without its query string, quietly breaks the chain. The setup guide warns when your destination isn't the network's own address for exactly this reason.
To check a redirect chain, paste the destination with a made-up value in the sub-ID, such as cid=test123, into the link tracer and confirm the value is still there on the last hop. A page that moves visitors on with JavaScript may not show up in a redirect trace, so for those, click through yourself and read the address bar on the checkout page. Some pages also fail when they get parameters they don't expect; see when UTM parameters break your landing page.
Where to see what happened
Track Link's postback endpoint always answers with success, because networks treat anything else as a failure and keep retrying. The outcome is reported in three places:
- The setup guide shows the latest postback that arrived but didn't record a sale, and why. This is on every plan.
- The
X-Tracklink-Resultresponse header names the outcome of each request, if you test with curl or a request tool. - The postback log keeps every postback received for 30 days, with its raw fields and why it did or didn't match. This is on Pro and up.
| Outcome | What it means | What to do |
|---|---|---|
missing_click | No click ID in the request. An empty request is usually the network checking the URL as you save it. | Add the network's sub-ID macro to the postback as click_id. |
unfilled_macro | The network sent its macro text instead of a value. | Make the link fill that sub-ID field, and check the macro's spelling. |
unknown_click | No click has that ID. Listed under Sales we couldn't match. | Check the link and the postback use the same sub-ID field. |
test | A test postback, or sample data such as some-id. | Nothing. The URL works. |
key_required | A keyless postback to a workspace that only accepts its key. | Use the keyed URL. |
bad_key | The key in the URL doesn't exist. | Paste the current URL from the Conversions page. |
ignored | A checkout step, not a sale. | Turn that trigger off in the network. |
Questions people ask
Why does my network say the test postback failed?
A test postback carries sample values, not a real click ID. Digistore24's sends cid=some-id, which can never match a click, so a tracker that only counts matches reports a failure. Track Link logs it as a test, which means the URL works.
How do I test a postback without a real sale?
Open your tracked link yourself, then press Simulate a sale in the setup guide on the Conversions page within two hours. Track Link runs your postback against that click and records nothing. Then press your network's own test button to confirm the network can reach Track Link.
Why do sales show in my network but not in Track Link?
The postback either never reached Track Link or arrived with a click ID that matches no click. Check that your link fills the network's sub-ID parameter with {click_id} and that the postback reads the same field, then look under Sales we couldn't match on the Conversions page.
Does Track Link track ClickBank refunds?
No. Track Link's ClickBank setup uses the Initial Purchase and Upsell Purchase triggers only, and ClickBank refunds don't arrive by postback, so they stay in ClickBank's own reports. Digistore24 refunds and chargebacks are tracked.
Do I need a paid plan to receive postbacks?
No. Recording conversions from postbacks, the keyed postback URL and the list of unmatched sales are on every plan, Free included. The full postback log and forwarding sales to traffic sources are on Pro and up.
See it on your own links
Track Link is free to start: sign in with Google or Microsoft, no credit card.