Module 11 · Postbacks
Postbacks: what they are for and how to build the URL
A postback is an automatic message from the affiliate system to your tracker. As soon as a trader you referred triggers an event — registration, deposit, withdrawal — the system sends a request to your address with the event data.
01
Why postbacks matter
Without a postback you only see clicks: what happened next has to be exported by hand and matched up by date. A postback closes that gap — the tracker learns about the event seconds after it happens.
A postback does not create anything and does not affect payouts. It only tells your tracker about something that already happened.
The data arrives on its own
No exports, no manual reconciliation. The event goes to the tracker automatically, the moment the system records it.
You can see which source pays
The event arrives with your own tags — click_id, sub_id, campaign, placement. That shows which setup pays for itself and which only spends budget.
Optimise on money, not on clicks
Your tracker and ad account receive conversions with amounts and learn from them. You optimise campaigns on deposits and commission.
02
Two postback types
There are two levels of setup. They do not conflict: if a campaign has its own postback, it wins over the global one.
Global
Global postback
Configured at the partner account level and works for every campaign by default. The baseline option: set it up once and events arrive for all of your traffic.
Campaign (Local)
Campaign postback
Configured for one specific campaign — by Campaign ID (cid) and campaign name. Use it when a campaign runs into a separate tracker or needs a different set of parameters.
When a campaign has a local postback, the global one does not fire for it. Check this first whenever you are hunting for “missing” conversions.
03
Events
During setup you choose which events trigger a request. Each event usually gets its own URL — with its own event parameter value and its own set of macros.
| Event | When it is sent |
|---|---|
| Registration | The trader has registered. |
| Email Confirmation | The trader confirmed their email. |
| First Deposit | The trader made their first deposit (FTD). |
| Re-deposit | The trader made a repeat deposit — processed and credited. |
| Withdrawal | The trader initiated a withdrawal. Possible statuses: pending, canceled, success. |
| Commission | The partner was credited commission for trader activity. Calculated once a day for the previous day, as a separate postback per trader. |
| New WithdrawalAlternative | The trader created a withdrawal request — the pending status as its own event. |
| Canceled WithdrawalAlternative | The withdrawal request was canceled — the canceled status as its own event. |
| Successful WithdrawalAlternative | The withdrawal was processed and paid out — the success status as its own event. |
The three status-named events are an alternative to the general Withdrawal event, for trackers that cannot split one event by the {status} value. Pick one or the other: turning on both the general event and the status split sends two postbacks for the same withdrawal.
Commission is calculated once a day for the previous day, and a separate postback is sent for each trader with credited commission. Do not expect it in the same hour the trader was active.
04
URL rules
The setup lives in two places, and that is the thing worth remembering. The URL field takes your tracker's endpoint. Macros do not go there: they are set in the parameter fields underneath it, and values are substituted from those fields only.
- The address goes in the URL field, the macros in the fields belowThe URL field holds the endpoint your tracker gave you and, if you need one, a constant event label such as event=ftd. The “parameter name = macro” pairs are filled in the fields underneath: the name your tracker expects on the left, our macro on the right. A macro written into the URL itself will not reach your tracker as a value.
- Enter each macro exactly as in the referenceIn curly braces, same case, no spaces inside: {click_id}, {sumdep}. A missing brace or an extra space results in plain text received by the tracker instead of an actual value.
- First parameter after ?, the rest after &One question mark per URL. If your tracker gave you an endpoint that already contains a ?, every following parameter is joined with &.
- Send only what you useExtra parameters do not break the request, but they make debugging harder. Start with click_id, the campaign, and the event amount; add the rest when you need them.
https://tracker.example.com/postback?event=ftd&subid={click_id}&cid={cid}&payout={sumdep}
That is how it looks when it goes out. You assemble it differently: the endpoint and event=ftd in the URL field, and subid, cid and payout with their macros in the parameter fields below.
05
Postback builder
Paste the endpoint from your tracker, tick the events and parameters, and the link assembles itself. It shows what the request will look like. Carry it into the panel in two parts: the endpoint into the URL field, the “name = macro” pairs into the parameter fields underneath.
EventsTick the events you need a postback for. Each one gets its own URL, and the box on the right holds the value sent in the event parameter.
Request parametersOn the left, the parameter name in your tracker; on the right, the affiliate system's macro. Rename the parameters to match your tracker.
Paste your endpoint and the finished URLs appear here.
06
Macro reference
The complete list of available macros. Write them into the URL exactly as they appear here, curly braces included.
| Placeholder | What it passes | Available for |
|---|---|---|
{click_id} | Click ID in your tracker | All events |
{site_id} | Site or source ID in your tracker | All events |
{cid} | Campaign ID in Pocket Partners | All events |
{ac} | Campaign name in Pocket Partners | All events |
{sub_id1} | Free tag 1 — any value you pass | All events |
{sub_id2} | Free tag 2 — any value you pass | All events |
{sub_id3} | Free tag 3 — any value you pass | All events |
{sub_id4} | Free tag 4 — any value you pass | All events |
{sub_id5} | Free tag 5 — any value you pass | All events |
{trader_id} | Trader ID | All events |
{country} | Trader's country | All events |
{device_type} | Device type: mobile, desktop, or tablet | All events |
{os_version} | Trader's operating system | All events |
{browser} | Trader's browser | All events |
{promo} | Promo code the trader used | All events |
{link_type} | Landing page in Pocket Partners | All events |
{date_time} | Date and time of the event | All events |
{sumdep} | Deposit amount in USD | Deposit events |
{wdr_sum} | Withdrawal amount in USD | All withdrawal events |
{status} | Withdrawal status | All withdrawal events |
{commission} | Commission amount per trader | Commission event |
The free tags {sub_id1}–{sub_id5} are your own space: use them for the creative, placement, geo, or test number. The system returns them unchanged.
07
Pre-launch checks
Five minutes of checking saves a week of arguing about “missing” conversions. Walk the list before you send traffic.
For the affiliate link itself and its parameters, see the lesson How to work with your affiliate link.