S2SGuides
Conversion tracking: click IDs, postbacks and attribution
A step-by-step guide to setting up server-to-server conversion tracking for performance campaigns, with a testing checklist.
Updated August 12, 20261 min read
Reliable tracking is the foundation of performance marketing: if a conversion is not recorded against the right click, nobody can be paid correctly and nobody can optimize.
The building blocks
- Tracking link — the URL publishers use; it records the click and redirects the user.
- Click ID — a unique identifier generated per click and passed to the advertiser.
- Sub-IDs — publisher-defined parameters (sub1…sub5) for placements and creatives.
- Postback URL — the endpoint the advertiser calls when a conversion happens.
- Attribution window — how long after a click a conversion can be credited.
Step-by-step setup
- Capture the click ID. On your landing page or in your app's attribution flow, read the click ID from the URL and store it with the user's session or record.
- Persist it through the funnel. Keep the click ID attached as the user registers, checks out or installs.
- Fire the postback server-to-server. When the conversion happens, call the network's postback URL from your server with the click ID and event details.
- Handle duplicates. Ensure one conversion fires one postback, and that retries are idempotent.
- Secure the endpoint. Use a secret token and, where possible, an IP allow-list.
Example postback:
GET https://track.example.net/postback?click_id={click_id}&event=purchase&value={order_value}¤cy=EUR&token={secret}For mobile apps
Apps typically use a mobile measurement partner (MMP). The MMP attributes installs and in-app events and sends postbacks to the network on your behalf. Configure which events are forwarded, and use the same event names on both sides.
Testing checklist
- A test click generates a click ID visible in the tracking system
- The click ID reaches the landing page unchanged (check redirects and URL encoding)
- A test conversion fires exactly one postback
- The postback is matched to the right publisher and sub-ID
- Currency and value are correct
- Duplicate conversions are rejected