Conversion tracking: pixels, postbacks and attribution
Conversion tracking records when someone who clicked your ad completes a goal, such as submitting a lead form, buying or installing an app, and links that result back to the click. The most reliable method is a server-to-server postback that sends the click ID back from your system.
Three ways to send conversions
| Method | How it works | Reliability |
|---|---|---|
| Server-to-server postback | Your server calls the tracking URL with the click ID | Highest: not affected by browsers or ad blockers |
| Browser pixel | A script or image on the thank-you page | Medium: can be blocked or miss users who leave early |
| Mobile measurement partner | Your MMP reports installs and in-app events | High for apps, using the MMP's attribution rules |
Events worth tracking
page_view, landing_page_view, lead_form_start, lead_submitted, qualified_lead, acquisition_completed, purchase_completed, app_install, subscription_started and subscription_completed. Funnel steps such as form starts show where people drop off; they are measured, not billed.
Attribution and deduplication
- Attribution window: how long after a click a conversion still counts (for example, 30 days).
- Deduplication: send your own order or lead ID so the same conversion is never counted twice.
- Reversals: send refunds or cancellations so reported sales stay accurate.
- Honesty: platform-reported or modeled conversions are estimates; label them as such.
Privacy
Track only what you need, get the consent your local law requires (for example under GDPR, India's DPDP Act or CASL) and never send personal data such as phone numbers in tracking URLs.
Common questions
Why don't my numbers match my CRM?
Usually because of attribution windows, leads arriving without a click ID, duplicates, or blocked pixels. Server postbacks with your own lead ID close most of the gap.
Do I need developers?
For a pixel, usually not. For a server postback, a developer typically needs an hour or two to pass the click ID through your form and call one URL.