Setting up conversion tracking for ad campaigns means connecting a specific action on your site — a purchase, a signup, an install — back to the ad that caused it, so your platform can report on it and optimize against it. In practice that's a handful of configuration steps: pick a tracking method, define the conversion event in your ad platform, place the code or endpoint on the right page, and confirm the numbers match reality before you trust them.
Most of the friction isn't technical, it's sequencing. Get the steps in the wrong order — turn on optimization before the tracking is verified, for instance — and a platform will happily spend your budget chasing a signal that's broken. This guide walks through the setup in the order that avoids that, from choosing a method through troubleshooting the mismatches you'll almost certainly hit at some point.
Before you start
You'll need admin access to the ad platform (Google Ads, Meta Ads Manager, a DSP, or your network's dashboard) and access to whatever generates the confirmation event on your site — a "thank you" page, a checkout API, an app SDK. If a developer maintains the site, loop them in early; several steps below involve placing code on a specific page or firing an event from server-side logic, and that's faster with someone who already knows the codebase.
Decide up front what counts as a conversion for this campaign. "Conversion" is not one thing — a purchase, an add-to-cart, a form fill, and a scroll-past-50% are all trackable, but only one or two of them should actually drive your bidding. Pick the action that's closest to revenue, and track softer signals separately if you want visibility without letting them steer spend.
How to set up conversion tracking for ad campaigns
1. Choose your tracking method. There are two main approaches, and most serious setups eventually use both. Client-side (pixel) tracking runs JavaScript in the visitor's browser when the conversion event fires — it's fast to install but depends on the browser actually loading and executing the script, which ad blockers and privacy settings increasingly prevent. Server-to-server (postback or API) tracking sends the conversion from your backend directly to the platform, bypassing the browser entirely — it's more reliable but takes more setup, since your server needs to know which click or click ID to attribute the conversion to. If your ad network already handles postback tracking, this is the method that pairs with it; the pixel is the one most beginners reach for first because ad platforms generate the code for you.
2. Create the conversion action in your ad platform. Every major platform requires you to define the conversion before you can track it — you don't just "turn on tracking," you tell the platform what a conversion is, what it's worth, and how it should count. In Google Ads this is Tools & Settings → Conversions; in Meta Ads Manager it's the Events Manager. Set a value if you can (even an average order value beats no value), and decide whether repeat conversions from the same user should count once or every time.
3. Add the tracking code or postback to the right event. For pixel tracking, the platform gives you a base tag for every page and an event snippet that fires only on the conversion page or action — place the event snippet on the confirmation page, not the product or cart page, or you'll count intent as revenue. For server-side tracking, your backend needs to capture the click ID from the ad's landing-page URL, store it against the session or order, and send it back with the conversion postback once the order is confirmed, not when it's placed, so refunds and failed payments don't inflate the numbers.
<!-- Example: event snippet fired only on the order-confirmation page -->
<script>
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/AbC-D_efG-h123',
'value': 49.99,
'currency': 'USD',
'transaction_id': '{{order_id}}'
});
</script>
Include a unique transaction ID in every conversion event. It's what lets the platform (and you) deduplicate if the page fires twice, which happens more often than you'd expect on flaky connections or with users who refresh a confirmation page.
4. Set the attribution window and model. The attribution window is how long after a click (or view) a conversion still counts as caused by that ad — commonly 30 days for clicks and a shorter window for views. Google's documentation explains how this interacts with the attribution model, which decides how credit is split when a user touches multiple ads before converting. Last-click is the simplest and still the default on many platforms; data-driven models spread credit based on observed patterns but need volume to work well. Pick a window that matches your actual sales cycle — a 7-day window on a product with a 45-day consideration period will simply undercount.
5. Test before you launch. Every platform has a live testing tool: Google Ads has Tag Assistant, Meta has the Events Manager test events tab. Run a real (or sandboxed) conversion through your own funnel and confirm it shows up within a few minutes, with the right value and transaction ID. Don't skip this step to save time — it's the single highest-leverage five minutes in the whole setup, because a broken pixel silently reports zero conversions instead of erroring loudly.
6. Layer in server-side tracking for resilience. Once client-side tracking is verified, most platforms offer a server-side complement — Google's Enhanced Conversions, Meta's Conversions API — that sends the same event from your backend as a fallback or a supplement. This recovers conversions that ad blockers or browser privacy settings would otherwise hide from the pixel alone, and it's increasingly necessary: browser vendors have been tightening third-party tracking for years, and Google's own Privacy Sandbox initiative is part of a broader move away from relying solely on client-side signals.
How to tell it's working
The clearest signal is agreement: the conversion count in your ad platform should track closely with the order or signup count in your own backend or analytics tool over the same date range, accounting for the attribution window. Some gap is normal — not every real conversion has a trackable click, and vice versa — but a large or growing gap means something in the chain is broken, not that your campaign got worse.
In the first 24–48 hours after setup, check the platform's conversion status indicator (Google Ads shows "recording conversions" once it's seen real data; Meta shows event volume in the Events Manager overview). If a campaign is using automated bidding toward the conversion goal, watch that it's actually optimizing — a stalled or erratic bid strategy is often the first visible symptom of tracking that looks installed but isn't firing correctly.

Troubleshooting
Zero conversions recorded despite real sales. Almost always a placement problem: the event snippet is on the wrong page, fires before the transaction is confirmed, or is blocked by a content security policy. Open the confirmation page directly and check the browser console for script errors before assuming the platform side is at fault.
Conversions double-counted. Usually caused by the event firing on every page load or refresh rather than once per transaction. Deduplicate using the transaction ID, and if you run both a pixel and a server-side postback for the same event, make sure the platform is configured to deduplicate across the two rather than sum them.
Numbers lower than your backend by a consistent margin. This is frequently ad blockers or browser tracking prevention suppressing the client-side pixel — a gap that server-side tracking (step 6) is specifically designed to close. If the gap appeared suddenly rather than gradually, check for a recent site change (a new cookie consent banner, a CDN change) that might be interfering.
Conversions appear late or in bursts. Some platforms process server-side postbacks in batches, and browsers can delay pixel fires under aggressive tracking-prevention modes. If the delay is consistent and within a day or two, it's usually not a bug — just factor it into how quickly you judge a campaign's early performance.
FAQ
Do I need both pixel and server-side tracking?
Not on day one, but it's the more resilient setup long-term. Pixel tracking is faster to install and fine for a first pass; server-side tracking recovers the conversions that ad blockers and privacy settings hide from the pixel.
How long does it take for conversion data to become reliable?
Enough volume to judge, not just enough time — a handful of conversions a day can take a couple of weeks to show a stable pattern, while a high-traffic campaign can be reliable within days. Don't make major bidding decisions on a conversion count still in single digits.
Can I track conversions without a developer?
For a straightforward pixel on a platform like Shopify or WordPress, often yes — most ad platforms and e-commerce platforms have built-in integrations that handle placement for you. Server-side and postback tracking generally need someone comfortable with backend code.
Does conversion tracking work the same way across ad networks?
The concept is the same — attribute an action back to a click — but the mechanics differ. A network like Adsy that runs its own bidding pipeline will have its own postback format and conversion dashboard, distinct from Google Ads or Meta, so budget separate setup time for each platform you advertise on.
What happens if I change the attribution window after launch?
Historical conversions keep the attribution they were recorded with; only new conversions use the updated window. Expect a short period where reported numbers shift as the change takes effect, and avoid changing the window and the bidding strategy at the same time, or you won't know which caused a swing in results.
Conclusion
Conversion tracking setup is mostly about sequencing: choose a method, define the conversion clearly, place the code on the right event, set a window that matches your sales cycle, and verify before you let a platform optimize against the data. The most common failures — zero conversions, double counts, quiet undercounts from ad blockers — are all things a five-minute test pass at setup time would have caught.
Key takeaways
- Decide what counts as a conversion before configuring anything — one action should drive bidding, not every trackable event.
- Fire the event on the confirmed transaction, not on intent pages like cart or checkout-start.
- Match the attribution window to your actual sales cycle, not the platform default.
- Test with the platform's live tool before trusting or optimizing on the data.
- Add server-side tracking once pixel tracking is verified, to recover conversions ad blockers hide.