A lead is submitted, the network sees it, and the tracker shows zero. Almost everyone who has set up a first funnel knows this one. Nine times out of ten it is the postback: either it is not configured, or it sends the wrong click ID. Let's look at how it works so these situations take a minute to solve.
What is a postback, in plain terms
A postback (callback) is an automatic HTTP request one system uses to tell another about an event. In affiliate marketing the event is a conversion: a lead, a sale, a sign-up, a deposit. The affiliate network sends a request to your tracker's postback URL, passing the click ID, the status and the payout in the request parameters.
Here is what a typical incoming postback from a network looks like:
https://tracker.example/postback?click_id=8f3a1c27&status=approved&payout=24.00¤cy=USD&txid=99817
From this string the tracker learns:
- click_id — which click the conversion belongs to;
- status — what happened: lead, approval, rejection;
- payout — how much you will be paid;
- txid — the transaction ID in the network, so later messages update the same record.
S2S postback, pixel and other ways to pass conversions
There are several ways to learn about a conversion. Each has its limitations.
| Method | How it works | Pros | Cons |
|---|---|---|---|
| S2S postback | The network's server sends a request to the tracker's server | Browser-independent, reports status changes | You must pass the click ID into the offer correctly |
| Pixel on the thank-you page | An image or script loads in the buyer's browser | Works for your own landing page | Gets blocked, never learns about approval or rejection |
| JS code on the thank-you page | A script sends an event from the browser | Flexible | Same problems as a pixel |
| Code in the form handler | Your server reports the lead to the tracker itself | Reliable for your own site | Requires access to the site's code |
| Manual upload | Export from the network and import | Always works | Delay, manual work |
For working with affiliate networks the standard is server-to-server postback. A pixel and form code are for when you send traffic to your own landing page with a form and effectively act as the "network" yourself.
How a postback URL works: macros and parameters
In the affiliate network's dashboard you paste the postback URL not with specific values but with macros — placeholders in curly or square brackets that the network replaces before sending.
https://tracker.example/postback?click_id={sub1}&status={status}&payout={payout}&txid={transaction_id}
Every network names its macros differently: {sub1} in one, {aff_sub}, [clickid] or {subid} in others. Check the network's documentation. The logic is always the same: the postback returns the same parameter you used to pass the click ID in the offer link.
The offer link and the postback are two halves of one scheme:
# Offer link: give the network the click ID in sub1
https://network.example.com/click?offer=55&sub1={click_id}
# Postback in the network dashboard: the network returns the contents of sub1
https://tracker.example/postback?click_id={sub1}&status={status}&payout={payout}
In the first line {click_id} is the tracker's macro; in the second, {sub1} is the network's macro. Mixing them up is a classic mistake. More on who issues which ID in click ID and sub ID.
Statuses in the postback
A network may send one postback per event or several, one for each status change. Common values:
| Network status | What it means |
|---|---|
pending, hold |
Lead received, awaiting review |
approved, confirmed |
Approved, payout coming |
rejected, refund, declined |
Rejected or refunded |
fraud, trash |
Junk lead, no payout |
The tracker needs to know how these values map to its own statuses. A full breakdown with examples is in conversion statuses: lead, hold, approved, rejected.
Setting up a postback step by step
The order is the same for most tracker + affiliate network setups.
- Find out which parameter the network uses to accept the click ID. Usually
sub1,aff_sub,subidorclick_id. The answer is in the network's docs or with your manager. - Add the parameter to the offer link. For example
&sub1={click_id}, where your tracker fills in{click_id}. - Get the postback URL from your tracker for this network and insert the network's macros.
- Paste the URL into the network dashboard — usually a section called Postback, Global postback or the settings of a specific offer.
- Choose the events that trigger a postback: lead, approval, rejection.
- Test the chain: click through the ad link, find the click ID in the log, submit a test lead or fire the postback manually.
Tip. If the network has a "Test postback" button, do not celebrate its green checkmark. It only checks that the URL responds, not that your click ID actually gets through. The real test is a click on a live link and a lead.
Postback not working: troubleshooting
Look for the problem in order, from the click to the tracker.
The click ID never reached the network
Open the offer link the visitor goes to and look at the parameters. If sub1= is empty or literally sub1={click_id}, the tracker did not fill in the value. Check the macro name.
The network did not send the postback
The network dashboard usually has a postback log. If there is no request, the postback is not enabled for this offer or event.
The postback arrived, but the click was not found
The tracker got an ID but has no such click. Causes: the network was given another system's ID (for example fbclid instead of the tracker's ID), the click was deleted along with its flow, or you changed the postback key while the network still has the old URL.
It arrived, but without an amount
If the network does not pass the payout, the tracker should use the price from the offer settings. Otherwise revenue will be zero despite real conversions.
Postbacks in ArtisanClo
In ArtisanClo there is one conversion receiving URL for the whole account, shown in the Conversions setup section. That section also has around 300 ready-made affiliate network templates: each template already specifies which parameter the network uses to receive the click ID, how its statuses map to ours, and contains a ready postback URL for the network's dashboard. If a network is not on the list, you can add it as your own.
In a flow (modes with the tracker) you choose a network for each offer and click Show the postback address for the network's dashboard. The window walks you through three steps — copy, paste into the network dashboard, wait for the first conversion — and shows a live check: "Waiting…" → "Received and matched to its click — everything works." The parameter for the offer URL that passes the click ID to the network is added with a button; if you skip it, it is appended automatically on save.
How incoming postbacks are recorded:
- network statuses are mapped automatically:
approvedbecomes Sale,pendingOn hold,refundRejected,fraudTrash, and an empty status becomes Lead; - an unknown status is recorded as Trash with zero revenue, so a configuration mistake does not turn into fake profit;
- a repeat message with the same transaction ID updates the record — that is how the network approves or reverses a lead;
- if no amount is sent, the lead or sale price from the offer settings is used, and the currency is converted to dollars at the ECB daily rate.
For troubleshooting, Conversions setup has a log of the last 20 incoming messages over 72 hours with their outcome: lead recorded, click not found, no click_id, cloak without a tracker and others. It shows at a glance which link in the chain is broken.
If you work in your own tracker with ArtisanClo as a cloaker in front of it, you choose the external tracker (Keitaro, Binom, RedTrack, Voluum and others) on the flow's Tracker step. The dashboard shows a parameter like external_id={click_id} for the offer link and a status: conversions are coming in, postbacks are arriving but none has matched a click yet, or one step left — point your tracker's postback to our address. The list of trackers is in tracker integrations.
For a landing page with its own form, instead of a network postback there are Own site options: PHP code for the form handler, JS for the thank-you page, or a pixel.
Global postback or per-offer postback
Affiliate network dashboards usually have two levels of setup, and the choice determines how much manual work awaits you.
| Level | How it works | When it is convenient |
|---|---|---|
| Global postback | One URL for every offer in the account | You run all traffic through one tracker |
| Offer postback | A separate URL for a specific offer | Different offers go to different trackers, or special parameters are needed |
If your tracker has one conversion receiving URL per account, a global postback is the simplest route: set it once and new offers pass conversions right away. An offer-level postback is needed when part of the traffic goes to another tracker or when the network uses different macros for that offer.
Postback URL security
A postback URL is essentially a key that lets anyone write a conversion into your tracker. So:
- do not post it in public chats or screenshots;
- if the URL leaks, change the receiving key and update the URL in every network;
- review the incoming postback log from time to time: conversions on nonexistent clicks are a red flag.
Delays and retries
A postback does not always arrive instantly. Networks send the lead right away, and the approval hours or days later, once the call center has processed it. Some networks retry on failure. So the tracker must calmly accept a repeat message for the same transaction and not create a new conversion. If your report suddenly shows twice as many leads as the network, first check how the tracker handles repeats.
Postback to the ad platform
There is also the reverse direction: not the network notifying the tracker, but the tracker notifying the ad platform. It is also a postback, just the other way: the platform receives its own click ID (for example ttclid or gclid) and a conversion event so its algorithm can learn from buyers. More in sending conversions back to ad platforms. Which click IDs the platforms pass is covered in fbclid, gclid, ttclid, yclid.
Summary
A postback is the bridge between the affiliate network and the tracker, and it rests on a single value: the click ID. Pass it in the offer link, return it in the same parameter in the postback URL, set up the status mapping and test the chain with a live click. Once postbacks arrive reliably, you can move on to what matters most — calculating profit and ROI for every slice. The list of networks with ready-made templates is in the affiliate network catalog.



