To pay publishers, Indoleads must learn about each conversion on your side. Pick one of four methods — from most to least reliable.
How attribution works. Every click on a publisher's tracking link gets a unique click_id. We append it to your offer URL (e.g. https://yoursite.com/?click_id={click_id}), and you send it back with the conversion. A conversion without a valid click_id (or with a wrong security_token) is rejected. Country of the conversion = country of the click's IP.
1. Postback (S2S) — recommended
Your server calls our URL when an order/lead is confirmed:
https://app.indoleads.com/acquisition?click_id=CLICK_ID&security_token=SECURITY_TOKEN&txn_id=ORDER_ID&sale_amount=AMOUNT¤cy=USD
(trk.indoleads.com works the same as app.indoleads.com.)
| Param | Required | Meaning |
|---|---|---|
click_id | yes | The value we passed in the offer URL. Store it in the session/order. |
security_token | yes | Your per-advertiser token, shown on the offer page. Proves the postback came from you. |
txn_id | yes | Your unique order/transaction ID — prevents duplicates. |
sale_amount + currency | one of | Order amount; we calculate the publisher payout from the offer's commission (CPS % / CPA fixed). |
rate (or revenue) + currency | one of | Exact commission amount, if you compute it yourself; offer commission is then ignored (publisher payout = rate − network commission). |
cat | optional | Category code if payouts differ by category (fashion, electronics…). |
status | optional | pending (default), approved, declined. Send again with a new status to update. |
sub1–sub4 | optional | Any custom values you want to see in reports (SKU, qty, session ID…). |
Pros: no cookies, not blocked by browsers/ad-blockers, verifiable (token + known IPs).
2. Pixel
An <img> on your thank-you page; click_id is read from the visitor's cookie set at click time:
<img src="https://app.indoleads.com/api/pixel?adid=OFFER_ID&txn_id=ORDER_ID&sale_amount=AMOUNT¤cy=USD">
Same optional params as postback (rate, cat, sub1–4; click_id may be passed explicitly — leave it blank for non-Indoleads traffic). Nothing to add to tracking links. Downside: blocked by some browsers/extensions → use only if you can't store click_id server-side.
3. Container (JS)
A script tag on the thank-you page — same idea as pixel, with a JS snippet: TXN_ID, RATE, CURRENCY, OFFER_ID, NETWORK = "https://app.indoleads.com". sub1–4 not supported.
4. API
If your platform exposes a conversions API (Impact, Partnerize, Awin, TUNE, AppsFlyer/Adjust reports, your own), share the docs — our dev team builds the pull on our side, including any sub fields you want stored.
Which one?
- Can your back-end store
click_idand send requests? → Postback. - Only front-end access? → Pixel or Container.
- Already have an API/network? → API.
- Always send
txn_idto avoid duplicates.
Test before go-live
Open your offer's tracking link in a browser → land on your site → complete a test order → the conversion must appear in your dashboard Reports → Conversions log within minutes. If it doesn't, check the click_id handoff, the token, and that the pixel actually fires on the thank-you page. Our integration manager does this together with you.
After launch: validate conversions
You approve/decline conversions in Reports → Conversions log (buttons per row), via status= in postbacks, or by sending a monthly reconciliation file — within the hold period you set on the offer. Declined = not paid to the publisher. See Validating conversions.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article