Lost conversions: why a postback arrived empty and how to find the cause
The advertiser sees a deposit, but your network does not. Four typical causes you can spot in the postback log, and what to fix in each case.
The most frustrating situation in a network: the advertiser shows a deposit, the partner sends a screenshot, and the conversion is not in your stats. The cause is almost always visible in the inbound postback log; you just need to know what to look for. How to set up postbacks from scratch is covered in the article on S2S postbacks; this one is about diagnosis when something has already gone wrong.
Where to start
Open the inbound postback log for the day and find the failed requests. Each one shows what arrived, what the tracker replied and why the conversion was not counted. Then look at the click_id value: it almost always tells you what happened.
1. click_id is empty
The request looks like click_id=&status=sale. The advertiser sent a postback but had no click ID. So on the click, your ID never reached them.
A common cause is passing the ID in the wrong parameter. For example, affiliate platforms built on Cellxpert store the click ID only in the afp, afp1…afp10 parameters. If the tracker appends &click_id=… to the link, the platform simply does not keep it, and the postback comes back empty.
What to do: ask the advertiser which parameter accepts and returns the click ID, and set that parameter in the landing settings. The advertiser's postback must use the matching macro: click_id={afp}.
2. A foreign ID arrived
Instead of your ID, a value in another format arrives, such as a long UUID that is not among your clicks. It is an ID from the advertiser's system or an intermediate tracker. This happens when the offer link contains a macro your tracker does not know: it goes to the advertiser as plain text, and they put their own ID in its place.
What to do: use {click_id} or the parameter set in the landing settings in the offer link, and check the link with a test click: the advertiser's address bar should show your ID.
3. A macro was not filled in
Values like {ngr}, [DepositId] or [Transaction_sum] arrive. The advertiser's postback uses a macro their system does not have, or it is written in a different case. The conversion is still counted, but without the deposit amount or transaction ID, and without a transaction ID the tracker is worse at catching duplicates.
What to do: check the macros against the advertiser platform's documentation. In PrimeTrack, unfilled macros and empty values count as "not sent", so a conversion is not lost because of them.
4. The postback comes from you
If failed requests repeat after 1, 5 and 15 minutes, then one and two hours, that is the retry schedule of outbound postbacks. Most likely a partner's postback settings point at your own tracker with an empty macro. The conversion is recorded; only the delivery to the partner breaks.
What to do: find the partner with that address in the outbound postback log and ask them to use their own tracker's URL.
Quick reference
| What arrived | Cause | Where to fix |
|---|---|---|
Empty click_id= | The ID did not reach the advertiser | click_id parameter of the landing |
| ID in a foreign format | Unknown macro in the offer link | Offer link |
{ngr}, [DepositId] | Macro not filled in | Advertiser's postback |
| Retries on a schedule | Partner postback points at your tracker | Partner's postback settings |
If there are many empty postbacks, check all landings of the same affiliate platform at once: the mistake is usually the same across its offers. For other ways to lose money, see the article on fraud.