Blog / Tracking

S2S Postback Setup: A 5-Minute Guide for Affiliates

From zero to tracking real conversions: no SDK, no pixel, just a server-to-server postback URL and the right macros.

What an S2S postback is

A server-to-server postback is a plain HTTP request your affiliate network sends to your tracker when a conversion happens. No JavaScript runs in the visitor's browser, so ad blockers, cookie rules and page speed do not affect it. That is why it is the default way to count conversions in affiliate marketing.

How the click ID travels

  1. A visitor clicks your ad and hits your tracking link. The tracker records the click and gives it a unique click ID.
  2. The tracker redirects the visitor to the offer and passes the click ID along, for example as ?sub_id=….
  3. The network stores that value with the visitor. When the visitor converts, the network calls your postback URL with the same value.
  4. The tracker matches the click ID to the original click and adds the conversion and payout to the campaign, stream, landing page and offer that produced it.
If the click ID never reaches the network, no postback can be matched. Nine out of ten "missing conversions" tickets come down to this step.

Setting it up in XPNSR Tracker

1. Pass the click ID to the offer

Either set the campaign's Click ID forward parameter (for example clickid) and the tracker appends it to every offer URL, or put the macro into the offer URL yourself:

https://offer.example/landing?sub_id={click_id}&country={country_code}

Use the parameter name your network expects: sub_id, aff_sub, s2 and so on. The 331 affiliate-network presets in the tracker already know them.

2. Give the network your postback URL

https://your-tracking-domain/api/postback?click_id={clickid}&revenue={payout}&status=lead

Replace the values in braces with your network's own macros. In the network's dashboard this field is usually called Postback, S2S or Server callback.

ParameterMeaning
click_id or subidThe click ID the tracker generated (required)
revenue or payoutPayout for the conversion
statuslead, sale or rejected, mapped to your conversion types
currencyPayout currency, if not USD
tidTransaction ID, for several conversions on one click

Securing the postback

Anyone who knows the URL could send fake conversions. Each campaign has a postback secret: add &token=YOUR_SECRET to the URL (or send it as the X-Postback-Token header) and switch on Require token. You can also restrict postbacks to the network's IP addresses. Duplicate postbacks for the same conversion are ignored.

Testing and troubleshooting

  1. Open your tracking link yourself and complete a test conversion, or use the network's test postback.
  2. Open Clicks Log in the tracker and find your click: the conversion appears on it within seconds.
  • Nothing arrives: check the URL in the network for typos and that the macro names match the network's documentation exactly.
  • Arrives but does not match: the click ID was not passed to the offer. Open the offer URL from a test click and look for it.
  • Wrong amounts: send the payout as a plain number, without a currency sign; use currency for non-USD payouts.
  • 401 errors: the token is missing or wrong while Require token is on.

Try it on your own traffic.

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