# 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.

- **Outcome:** A ready postback URL for every event you need: your own parameter names, the right macros, and a structure you have checked.
- **Duration:** 15–20 minutes

## 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.

- Account level
- Works by default

### 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.

- Campaign level
- Overrides the global one

> 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 Withdrawal (alternative) | The trader created a withdrawal request — the pending status as its own event. |
| Canceled Withdrawal (alternative) | The withdrawal request was canceled — the canceled status as its own event. |
| Successful Withdrawal (alternative) | 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.

1. **The address goes in the URL field, the macros in the fields below.** The 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.
2. **Enter each macro exactly as in the reference.** In 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.
3. **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 &.
4. **Send only what you use.** Extra 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.

**What the finished request looks like:**

```
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.

## Partner Postback Bot

Postbacks without a tracker — straight into Telegram. The bot is the tracker. Pick your events, get finished URLs with the macros already in them, and paste them into the panel: registrations, deposits and commission arrive in your private chat with the amount, the campaign and the source tag.

- No tracker of your own required
- Three taps to finished URLs
- 9 events and 21 macros — the panel's whole list
- Your week in one message with /stats

[Open the bot in Telegram ↗](https://t.me/affpartnerpostbackbot) — Free. It answers in Russian, English, Spanish, Portuguese and French.

## 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.

On the left, the parameter name in your tracker; on the right, the affiliate system's macro. Rename the parameters to match your tracker. Tick 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.

## 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 | First Deposit, Re-deposit |
| `{wdr_sum}` | Withdrawal amount in USD | Withdrawal, New Withdrawal, Canceled Withdrawal, Successful Withdrawal |
| `{status}` | Withdrawal status | Withdrawal, New Withdrawal, Canceled Withdrawal, Successful Withdrawal |
| `{commission}` | Commission amount per trader | Commission |

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.

## Auto-Postback

Nine postbacks without nine trips through the form. The extension opens from the toolbar icon, asks which tracker you use, and creates the postbacks in your partner dashboard — with the parameter names that tracker expects. It reads the parameter list out of the dashboard itself, so a macro added there is picked up on its own.

- Keitaro, Partner Postback Bot, or any other receiver
- Parameter names mapped to the ones your tracker accepts
- Every URL shown in full before anything is created
- No server of ours: nothing leaves the dashboard

[Install from the Chrome Web Store ↗](https://partner-bot.affpartners.io/ext/en) — Free. Chrome on a computer, signed in to the account the dashboard is open on.

## 07. Pre-launch checks

Five minutes of checking saves a week of arguing about “missing” conversions. Walk the list before you send traffic.

- Run a test visit through your affiliate link and confirm the tracker received a request for the event you expect.
- Check that {click_id} reaches the tracker unchanged: without it the event cannot be tied to the visit.
- If you expect events on the global postback, confirm the campaign has no local postback — a local one overrides the global.
- Do not wrap the affiliate link in shorteners or third-party redirects: some parameters after the ? can be lost, and the click will not connect to the event.
- For the withdrawal event, confirm the exact {status} values with your manager — the documentation shows both pending / canceled / success and pending / approved / rejected.
- Remember the commission delay: it arrives once a day for the previous day, as a separate request per trader.

For the affiliate link itself and its parameters, see the lesson [How to work with your affiliate link](https://playbook.affpartners.io/en/affiliate/lessons/affiliate-link-anatomy/).

## Safety and constraints

For persons aged 21 and over only. Trading financial instruments involves significant risk and may result in the loss of invested funds. Affiliate Academy materials are for educational purposes only, do not constitute investment advice, and do not guarantee earnings.

## Grow with GameChange Partners

[Explore the partner program ↗](https://gamechange.partners/en?utm_source=academy&utm_medium=referral&utm_campaign=gcpacademy)