Blog / Tracking

Postback Not Firing? 9 Common Causes and How to Fix Them

A checklist for missing, duplicated and mismatched conversions: from a lost click ID to wrong statuses, currency mix-ups and blocked requests.

Start with one test conversion

Debugging postbacks from aggregate numbers wastes hours. Reproduce the problem with a single click you control: open the tracking link, note the click ID, reach the offer and trigger a test conversion (most networks have a test lead or a test postback button). Now you can follow one value through every hop.

Three places tell you where it breaks: the offer URL your browser landed on, the network's postback log, and the tracker's click log.

Nine causes, in order of likelihood

1. The click ID never reached the network

Look at the offer URL in the address bar. If the click ID is not there, or sits in a parameter the network does not read, no postback can be matched. Fix the parameter name on the campaign or the offer URL.

2. Wrong macro in the postback URL

Every network names its macros differently: {clickid}, {subid}, {aff_sub}, #s2#. A macro the network does not know is sent literally, so the tracker receives the text {clickid} instead of a value. Copy the macro names from the network's documentation, not from another network's setup.

3. The postback is set on the wrong level

Many networks have a global postback and a per-offer postback, and the per-offer one wins. If you set the global one and an old per-offer URL exists, your new URL is never called.

4. Status not mapped

The network sends status=approved, the tracker expects sale, and the conversion lands with an unknown status or is ignored. Map the network's status words to the tracker's conversion types once, per network.

5. The network only fires on approval

Some offers report a lead only after manual approval, days later. The conversion is not missing, just late. Check the offer terms before you pause a campaign for "zero leads".

6. Authorization failed

If the tracker requires a token or an IP allow-list, a postback without the token or from a new network server is rejected. The network's log shows the response code: 401 or 403 means this.

7. HTTP vs HTTPS, or a typo in the domain

A postback to http:// may be redirected or refused, and a single typo in the domain sends it nowhere. Paste the URL into a browser with a test click ID: you should get a short success response.

8. The click is too old

Trackers keep clicks for a retention period, and some offers convert weeks later. If the click was deleted, the postback has nothing to match. Check your data retention against the offer's conversion window.

9. The click came from a different tracker

When several trackers or several workspaces send traffic to the same offer, the network may call one postback URL for all of them. Use one postback per network account, or pass a parameter that tells the clicks apart.

Duplicates and wrong amounts

  • Duplicates: the network retries on a timeout, or sends a lead and then a sale with the same click ID. Decide whether each status is a separate conversion type, and let the tracker deduplicate repeats of the same status.
  • Amounts in the wrong currency: send the payout as a plain number and pass the currency separately. A payout of 50 in EUR counted as USD skews ROI by the exchange rate.
  • Payout with a currency sign or a comma: $12,50 may be read as zero. Plain digits and a dot only.
When numbers disagree between the network and the tracker, compare one day, one offer and one status at a time. Totals hide the cause.

Preventing it next time

  1. Keep a template postback URL per network, with the right macros and status names.
  2. Run a test conversion every time you launch a new offer, not only a new network.
  3. Watch the share of conversions with an unknown status; it should be zero.
  4. Set a daily alert for campaigns with clicks but no conversions over their usual window.

Try it on your own traffic.

XPNSR Tracker: unlimited clicks on every plan, 7-day trial on Start and Pro.