GuidesApril 10, 2026·7 min read

The Role of Postbacks in Conversion Tracking

Postbacks are how affiliate networks fire conversion data back to your tracker without touching the browser. Here is how the full click-to-conversion chain works and what breaks it.

S

Saud

Co-Founder, ClickPattern

Share
The Role of Postbacks in Conversion Tracking

What a Postback Is

A postback URL is an HTTP request that an affiliate network or offer source fires from its server to your tracker's server when a conversion happens. No browser involved. No pixel firing on a thank-you page. Just a direct machine-to-machine call that says: "conversion happened, here is the click ID it belongs to, here is the payout."

The reason postbacks exist is that browser-based conversion tracking is unreliable for performance marketing. A pixel depends on the user's browser executing JavaScript at exactly the right moment. If they close the tab early, if an ad blocker intercepts the pixel request, if iOS Safari restricts the cookie the pixel needs to identify the session, the conversion does not fire. You made a sale. Your tracker does not know about it. The campaign that drove that sale keeps spending, but now it looks less profitable than it actually is.

Postbacks remove the browser from the attribution chain entirely. The offer network's server fires the postback regardless of what the user's browser does. The conversion is recorded at the server level. This is why server-side tracking is the standard for any serious affiliate or CPA campaign.

The Click-to-Conversion Chain

Understanding postbacks requires understanding the full data chain from ad click to conversion record. The click ID is what holds it together.

  1. User clicks the ad. The request hits your tracker. Your tracker logs the click, records all available context (traffic source, campaign, creative, device, geo, IP, timestamp), generates a unique click ID, and redirects the user to the landing page with the click ID appended as a URL parameter. For example: https://yourlp.com/?clickid=cp_7f3a9d12
  2. Landing page passes the click ID forward. Your LP reads the clickid parameter and either stores it in a cookie or appends it to the outbound link leading to the offer page. The affiliate network receives the click ID as a sub-ID parameter alongside the user.
  3. User converts on the offer. The affiliate network processes the conversion and prepares to notify your tracker. It looks up the sub-ID value it received from your landing page. That is your click ID.
  4. Network fires the postback. The postback URL your tracker provided gets called with the click ID and payout values substituted in:
    https://track.yourdomain.com/postback?clickid=cp_7f3a9d12&payout=24.50&txid=NET_TXN_9821
  5. Your tracker receives the postback, matches cp_7f3a9d12 to the original click record, records the conversion and payout, and attributes everything back to the campaign, placement, creative, and traffic source that generated it.

That chain is what makes postback-based attribution deterministic. One click ID maps to one conversion. If the postback fires correctly, the attribution is certain. There is no modelling, no estimation, no probabilistic matching. Compare that to how ad platforms attribute conversions, which blends attribution windows, view-through credit, and modelled iOS data into numbers that consistently over-report actual results.

Setting Up Your Postback URL

Your tracker generates a postback URL for each offer or traffic source. The format varies by tracker, but the structure is always the same: a base endpoint URL with macro tokens that the affiliate network replaces with real values when the postback fires.

A typical postback URL from a tracker looks like this:

https://track.yourdomain.com/postback?clickid={CLICK_ID}&payout={PAYOUT}&txid={TRANSACTION_ID}

You paste this URL into the affiliate network's postback or callback URL field in your campaign settings. The tokens in curly braces tell the network which values to substitute. The network fires the postback to this URL when a conversion occurs, replacing each token with the actual value from the transaction.

Macro Names Vary by Network

The biggest practical headache in postback setup is that every affiliate network uses different macro names for the same values. What one network calls {CLICK_ID}, another calls {aff_sub}, another uses {subid}, and another uses {tid}. If you paste a postback URL with the wrong macro name for that network, the click ID field in your postback will arrive empty, and no conversions will attribute.

Common macro names for the click ID parameter across major networks:

  • MaxBounty: {aff_sub}
  • ClickBank: {tid}
  • Commission Junction (CJ): {OID} or {SUBID} depending on setup
  • Impact: passed via custom query string parameter you define
  • PartnerStack: {customer_key}
  • Most networks: check their postback documentation and look for the "sub-ID" or "affiliate sub-ID" parameter in their conversion tracking section

Always verify the exact macro syntax in the network's documentation before going live. Getting this wrong means running a campaign where zero conversions are tracked, and you will not know until you notice the revenue in the network dashboard does not match anything in your tracker.

Making Sure the Click ID Reaches the Offer

The postback can only fire with a valid click ID if the network received that click ID in the first place. This is the step most setup guides gloss over.

When your tracker redirects to the landing page, it appends the click ID as a URL parameter. Your landing page needs to pick that up and pass it to the offer page. There are two common approaches:

  • Append the click ID to the outbound offer link. If your LP links to the offer page, dynamically append the click ID to that link:
    https://offerdomain.com/lp/?aff_sub={clickid_value_from_cookie_or_url}
    The specific sub-ID parameter name in the offer URL needs to match what the affiliate network expects. The network captures that value on arrival and sends it back in the postback.
  • Store the click ID in a cookie and read it at conversion. If your LP and offer page are on the same domain, storing the click ID in a first-party cookie allows the offer page to read it directly without passing it through the URL. This is cleaner for multi-step funnels.

Some affiliate networks will capture the sub-ID from your landing page URL automatically without any special handling on your part. Many will not. Confirm with the network whether you need to explicitly pass the value in the offer link or whether they capture it from referrer data.

Deduplication: Preventing Double-Counted Conversions

Affiliate networks retry failed postbacks. Some networks fire the postback multiple times by design as redundancy. Some poorly configured funnels can trigger the conversion event twice for a single purchase. Without deduplication on your tracker's side, all of these result in double-counted conversions, inflated revenue figures, and scaling decisions based on data that does not reflect reality.

The fix is transaction ID deduplication. Most postback URLs include a txid or transaction ID parameter. Your tracker should store each transaction ID it processes and reject any subsequent postback that arrives with the same ID:

https://track.yourdomain.com/postback?clickid={CLICK_ID}&payout={PAYOUT}&txid={TRANSACTION_ID}

If the affiliate network does not provide a transaction ID in the postback, generate one on your side at the point of conversion, store it, and check for duplicates before recording the event. The transaction ID can be the network's order ID, a sale ID, or any unique identifier the network provides per conversion.

Run a deduplication test before going live: fire the same postback URL twice with the same transaction ID and confirm your tracker logs only one conversion. If it logs two, deduplication is not configured correctly.

Testing Before Sending Live Traffic

A broken postback chain fails silently. You will send traffic, the campaign will show clicks, the offer will show conversions in the network dashboard, and your tracker will show zero. The disconnect can go unnoticed long enough to be expensive.

Test procedure before scaling any campaign:

  • Generate a test click through your tracker and note the click ID that gets assigned.
  • Walk the full funnel: click the tracked ad link, land on the LP, proceed to the offer, complete a test conversion if the network supports it.
  • Check your tracker logs for an incoming postback. Confirm the click ID in the postback matches the one from the test click.
  • Verify the payout value was passed correctly and matches what the network shows for the conversion.
  • Fire the same postback twice (most trackers have a test postback tool or you can paste the URL directly in a browser) and confirm the second one does not create a duplicate conversion record.

If you do not have a way to generate a real test conversion on the network, at minimum fire the postback URL manually with a known click ID and confirm your tracker records it. This at least verifies the URL structure and macro substitution are correct.

Why Postbacks Beat Pixels for Affiliate Campaigns

Browser pixels are still used in ecommerce and direct-to-consumer funnels where the advertiser controls the confirmation page. For affiliate and CPA campaigns, where the conversion happens on a third-party offer page you do not own, postbacks are the only reliable option. You cannot install your tracker's pixel on the offer network's thank-you page. The network fires the postback. That is the integration point you have.

Even in funnels where you do control the confirmation page, postbacks remain more reliable than pixels. A pixel depends on a page load completing, JavaScript executing, cookies being writable, and no browser extension blocking the call. A postback has none of those dependencies. It fires at the server level the moment the conversion is confirmed, regardless of what happens in the user's browser.

For a deeper look at why browser-based attribution loses data and how the server-side alternative avoids those problems, server-side tracking implementation covers the full architecture.

Conclusion

Postbacks are the backbone of attribution in performance marketing. The click ID is the thread that ties the original ad interaction to the eventual conversion, and the postback is the mechanism that closes that loop at the server level. Getting it right means verifying every step in the chain: that the click ID passes from tracker to landing page to offer, that the network's macros are correctly named, that deduplication is configured, and that a test conversion fires cleanly before you scale spend.

The most common failure points are macro mismatches and click ID not passing through the landing page to the offer. Both are preventable with a proper test before launch. The cost of not testing is campaigns running at scale with no conversion data, which means optimization decisions based on click metrics alone rather than actual results.

ClickPattern's S2S tracking includes native postback support with built-in deduplication and a test postback tool for verifying your setup before sending live traffic. If you want to see how postback configuration works across common affiliate networks, book a demo and we will walk through your specific network integrations.

Ready to fix your tracking?

See how ClickPattern gives you accurate, server-side conversion data across every campaign.

Book a demo
S

Written by

Saud

Co-Founder, ClickPattern

Saud is the co-founder of ClickPattern. He writes about performance marketing, ad tracking, and building data infrastructure that actually works at scale.