How to set up advertiser postback tracking (S2S) in Rastro
Send conversions from the advertiser's server to Rastro with a postback URL: parameters, statuses, goals, coupons, testing and the pixel and API alternatives.
Updated on 20 Oct 2026
A postback (server-to-server or S2S tracking) is the most reliable way to record conversions. When a sale or lead happens, the advertiser's server calls a Rastro URL with the identifier of the click that brought the customer. There are no cookies or scripts in the browser, so ad blockers and privacy settings don't get in the way.
How it works
- The visitor clicks an affiliate's tracking link.
- Rastro records the click and sends the visitor to the offer's destination URL, replacing
{click_id}with a unique identifier. - The advertiser's website saves that
click_id(for example with the order or the user account). - When the conversion happens, the advertiser's server calls the postback URL with the same
click_id. - Rastro links the conversion to the click, calculates the affiliate's payout and notifies the affiliate.
1. Pass the click_id to the advertiser
In the offer's destination URL, add the {click_id} macro where the advertiser expects it:
https://shop.example/landing?clickid={click_id}
The parameter name (clickid, aff_sub, transaction_id…) is whatever the advertiser's system reads. Other macros are available too, such as {affiliate_id} and {sub1} to {sub5}.
2. Give the advertiser the postback URL
Each advertiser has their own URL with a secret token. Find it on the advertiser's page (or, if they have panel access, on their Integration page):
https://track.rastroaff.com/postback?token=ADVERTISER_TOKEN&click_id={clickid}&txn_id={order_id}&amount={order_total}&status=approved
The advertiser replaces the values in braces with their own placeholders. The address starts with your network's tracking domain; if you use your own domain (for example track.yourcompany.com), it starts with that.
Parameters
| Parameter | Required | What it does |
|---|---|---|
token |
yes | Identifies the advertiser. Keep it secret; regenerate it if it leaks. |
click_id |
yes* | The identifier received in the destination URL. |
txn_id |
recommended | The advertiser's order or lead ID. Without it, each click can only produce one conversion. |
amount |
for CPS | Sale value, used to calculate percentage payouts. |
status |
no | approved, pending, rejected or reversed. |
goal |
no | A campaign goal with its own payout (for example goal=first_deposit). |
coupon |
no | Attributes the conversion by coupon code instead of click_id (txn_id then required). |
country |
no | The customer's country (2-letter code). Helps detect fraud when it doesn't match the click's country. |
* Not needed when the conversion is attributed by coupon.
Changing a conversion's status
Send the postback again with the same click_id and txn_id and the new status. This is how refunds and chargebacks work: status=reversed removes the amount from the affiliate's balance and notifies them.
Testing
Open the postback URL in a browser with a real click_id from a test click. The conversion appears in Conversions within seconds. If not, the Postback log shows each request and why it was rejected, for example an unknown click_id, a wrong token or a click outside the attribution window.
When the advertiser can't send a postback
- Pixel: an image or iframe on the confirmation page. Simpler, but less reliable: ad blockers can stop it, and the
click_idhas to travel from the landing page to the confirmation page. - API:
POST /conversionswith the token in theAuthorization: Bearerheader and a JSON body (click_id,txn_id,status,amount).
Both use the same rules as the postback. The URLs and ready-to-copy examples are on the advertiser's integration page.