Skip to content
Browse documentation

Conversion tracking FAQ

Short answers to the questions teams ask most about postbacks, pixels, attribution and partner postbacks.

Last updated 4 min read

On this page

Postbacks and pixels#

Should the advertiser use a postback or a pixel? A server-to-server postback whenever possible: it does not depend on the browser. Use a pixel only when the advertiser cannot make server calls, and then add the landing-page SDK.

Why does every postback answer HTTP 200, even errors? Many advertiser systems retry anything that is not 200, which would flood you with duplicates. Business errors are 200 {"ok":false,"error":"…"}. Only token problems (401), malformed requests (400), wrong methods (405), oversize bodies (413), IP refusals on updates (403) and temporary outages (503 — retry) use other codes.

Can I test without creating a conversion? Yes. Add test=1 to the postback or pixel. Nothing is stored and no cap counter moves; the S2S answer contains details with the click, money, and (workspace token) the partner postbacks that would fire.

Which token should the advertiser use? Their advertiser token (Settings → Postback tokens lists the workspace token and every advertiser's token; the offer's Tracking tab shows the ready-made URL). It only works for that advertiser's offers. The workspace token works for every offer and is the only one that can set payout=.

The advertiser sends amounts like 49,90. Decimal commas are refused (400 invalid amount). Ask for 49.90. Thousands separators (1,234.50) are fine.

Can the advertiser send the conversion in another currency? Yes: add currency=EUR. Amounts are converted to the offer's currency at the ECB rate of the day when a rate is available; the original values are kept on the conversion.

Is there a limit on how late a conversion can arrive? The offer's Attribution window (days), 1–365. Later conversions are stored as rejected outside_window.

Attribution#

A visitor clicked two partners. Who gets the sale? The partner whose click ID the conversion carries (last touch). With First touch (Settings → Conversion rules) and the SDK installed, the first click of the 30-day window wins. Organic clicks never count as first touch.

Can I attribute without a click — phone orders, coupons, rebills? Yes: S2S with offer_id and aff_id (or coupon_code, or an email the partner converted before). See How attribution works.

Does attribution need third-party cookies? No. Conversions join on the click ID, the gclid / gbraid / wbraid / msclkid, or the SDK's first-party storage. The tracking-domain First-party pixel cookie is optional and off by default.

How do I count recurring deposits or renewals from one click? Turn on Allow multiple per click on that event, and send a distinct txid for each transaction.

Statuses and changes#

Why is a conversion pending? The offer's default status is pending, the advertiser sent status=pending, a hold period or a hold rule applies, or the partner is throttled. The status reason tells which (hold, throttled, rule:<name>, or empty).

The advertiser cancelled an order. How do they tell us? Send the same order again with status=rejected (S2S, same txid and offer, or conversion_id). The original conversion is rejected, partners with a Reversals postback are notified, and money already on a statement is clawed back on the next one. See Reversals.

Can an advertiser approve a conversion we rejected? No. Advertisers can always reject, but approving never overrides your decisions (window, caps, fraud and postback rules, manual rejections, holds, throttles).

We rejected a conversion by mistake. Select it in Reports → Conversions and Approve. Partner postbacks that have not fired for it yet are queued.

Partner postbacks#

A partner received the same conversion twice. Each postback fires at most once per conversion. Two deliveries come from two postbacks (for example a workspace-wide one and the partner's own), or from two conversions (check {conversion_id}), or from a manual Retry of a row that the partner had actually accepted.

Can partners see revenue? No. Partner-created postbacks never receive {revenue}, {advertiser_id} or {old_revenue}.

What IP do postbacks come from? The server addresses shown in the postback form ("Postbacks are sent from …"), with the user agent ArcTrack-Postback/1.0 (a fixed technical identifier of the tracking engine, the same for every brand).

What is the difference between postbacks and webhooks? Partner postbacks are per-partner URLs with macros, fired on conversions. Webhooks are signed JSON events for your own systems — conversions, status changes, offers, partner sign-ups, access requests.

Not supported today#

  • View-through (impression) attribution: impressions are counted, but conversions are attributed only to clicks.
  • Product line items (SKU lists with per-product commissions) on postbacks: send the order total as amount.
  • Reversal postbacks for amount changes made in the panel or by CSV: Reversals postbacks fire when an approved conversion is rejected (any way) or re-priced by an advertiser postback, but not for Adjust amounts… or CSV amount changes.
  • Changing every postback option through the REST API: the API manages fire_on (approved, any, reversal); custom statuses, custom headers and zero-payout skipping are set in the panel.
  • Network offer import (syncing offers from Everflow, Tune/HasOffers, Affise or CAKE feeds): create offers in the panel (optionally from an offer template) or with POST /api/v1/offers.
  • Custom roles and manager scoping: the four roles are fixed and every staff member sees all data their role can read (Users & roles).
  • Panel languages: the panel and portals are in English only.
  • Combined multi-currency totals: reports show revenue and payout one currency at a time and never convert them (only imported ad costs are converted) (Currencies & FX).
  • Packaged plugins and apps: no Shopify app, WooCommerce marketplace plugin or Zapier app; use the presets on Integrations (E-commerce, call tracking and e-mail offers).
  • Raw export to SFTP, Pub/Sub or a warehouse directly: raw data export writes to S3-compatible storage only (Raw data export).
  • Automatic payouts through Wise, Tipalti or Payoneer: their credentials can be stored, but only PayPal Payouts sends payments (Payout providers).
Something unclear or missing in this article?Tell us