Conversion tracking is the one thing every founder installs once and never looks at again. That's the problem. A broken tag doesn't throw an error. It just reports numbers that look completely normal. 14 conversions, ฿320 cost per conversion, all green. Meanwhile half of them are page reloads and the other half fired twice. You optimize against that data for a month. Then you wonder why your "best" campaign isn't making money. Tracking that's installed and tracking that's correct are two different things.
What "tracking" actually means
Google Ads conversion tracking has two pieces, and founders usually get one and miss the other.
The Google tag (gtag.js) goes on every page of your site. It's the base layer. It knows a visitor exists. The conversion event is a separate snippet that fires once, at the exact moment a sale or lead happens: the thank-you page, the order-confirmation screen, the "message sent" state.
Miss the tag and nothing tracks. Miss the event, or fire it on the wrong page, and you track the wrong thing. Both look identical in the dashboard until you check.
Install it without the four mistakes
1. Tag everywhere, event on the success page only
The Google tag belongs on all pages. The conversion event belongs ONLY on the page that loads after the action completes. If your event snippet sits on the product page or the checkout page, it fires on every visit. Your "conversions" become traffic.
2. Pick "One" vs "Every" on purpose
Every conversion action has a count setting. One counts a single conversion per click. That's right for leads, bookings, and sign-ups, where the same person filling the form twice isn't two customers. Every counts all of them. That's right for ecommerce, where one buyer placing three orders is three sales. Google defaults to "Every." A service business that leaves it there inflates its lead count.
3. Pass a real conversion value
A conversion with no value tells you how many but not how much. For ecommerce, pass the dynamic order value into the event so Google sees a ฿4,500 sale differently from a ฿290 one. Without it, Smart Bidding optimizes for cheap conversions, and cheap conversions are rarely your profitable ones.
4. Send a transaction_id to kill duplicates
If a customer refreshes the thank-you page, the event fires again. Pass a unique transaction_id with every purchase event. Google uses it to drop the repeats. No transaction_id, and one habitual refresher becomes three sales in your report.
Verify it actually works
Installing is step one. Proving it works is step two, and it's the step everyone skips.
Google Tag Assistant. Open the Tag Assistant extension, walk through your own site to the success page, and watch the conversion event fire exactly once. If it fires zero times or twice, stop and fix it.
The conversion status column. In Google Ads, go to Goals → Conversions and read the Status column. "Recording conversions" is what you want. "No recent conversions", "Tag inactive", or "Unverified" means the data feeding your campaigns is incomplete.
The 72-hour cross-check. After three days live, compare Google Ads conversions against your real back-end: Shopify orders, your CRM, your inbox. They won't match perfectly because attribution windows differ. But they should land within 10-15% of each other. A 2x gap means something is wrong.
The trap nobody talks about
The most expensive tracking failure isn't no data. It's plausible data that measures the wrong moment.
The classic case: the conversion event fires on a button click — "Add to cart", "Buy now" — instead of the completed purchase. Every report looks healthy. Conversions roll in. But you're counting intent, not money. The 40% of people who click "Buy now" and abandon at the payment screen all count as sales.
Same story with a thank-you page visitors can reach by typing the URL or opening a bookmark. Every accidental visit is a free fake conversion.
The fix is the same both ways. The event must fire on the result, not the attempt. Confirmed payment. Server-side confirmation if you can manage it. Never a click.
Quick reference
| Business type | Count setting | Pass a value? |
|---|---|---|
| Ecommerce store | Every | Yes (dynamic order value) |
| Lead gen / service | One | Optional (fixed lead value) |
| Bookings / appointments | One | Optional (average booking value) |
| Subscriptions | One | Yes (first-month or LTV value) |
What to do next
Run the 30-minute test today. If it passes, do the 72-hour cross-check this week. If your numbers are off by more than 15%, your tracking is feeding bad signal into every bid Google makes for you.
Once the data is clean, generate a blueprint and check the Conversion goal field. AdBlueprint builds the campaign objective and bid strategy around the conversion action you're actually tracking. Clean tracking in, smart recommendations out. Broken tracking in, and even the best strategy is optimizing against a lie.