Integration options for advertisers: postback (S2S), pixel, container, API

Modified on Mon, 17 Aug at 11:07 PM

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&currency=USD

(trk.indoleads.com works the same as app.indoleads.com.)

ParamRequiredMeaning
click_idyesThe value we passed in the offer URL. Store it in the session/order.
security_tokenyesYour per-advertiser token, shown on the offer page. Proves the postback came from you.
txn_idyesYour unique order/transaction ID — prevents duplicates.
sale_amount + currencyone ofOrder amount; we calculate the publisher payout from the offer's commission (CPS % / CPA fixed).
rate (or revenue) + currencyone ofExact commission amount, if you compute it yourself; offer commission is then ignored (publisher payout = rate − network commission).
catoptionalCategory code if payouts differ by category (fashion, electronics…).
statusoptionalpending (default), approved, declined. Send again with a new status to update.
sub1sub4optionalAny 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&currency=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_id and send requests? → Postback.
  • Only front-end access? → Pixel or Container.
  • Already have an API/network? → API.
  • Always send txn_id to 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

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article