AdBlueprint
Analytics
google ads
conversion tracking
analytics

How to set up Google Ads conversion tracking (and verify it's accurate)

A Google Ads tag that's installed isn't a tag that's correct. Here's how to set up conversion tracking and the tests that prove your numbers aren't lying.

AdBlueprint Team 5 min read

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 typeCount settingPass a value?
Ecommerce storeEveryYes (dynamic order value)
Lead gen / serviceOneOptional (fixed lead value)
Bookings / appointmentsOneOptional (average booking value)
SubscriptionsOneYes (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.

Frequently asked questions

How long does Google Ads take to record a conversion?
Conversions usually appear within 3 hours, but Google allows up to 24 hours before one is considered missing. If your 30-minute test conversion still hasn't shown after a full day, the tag is broken, not slow.
Why does Google Ads show more conversions than my Shopify orders?
The three usual culprits are duplicate firing on thank-you page reloads, an event that fires on a button click instead of a completed payment, and Google's attribution window crediting conversions that happened days after the click. A gap under 15% is normal; a 2x gap is a bug.
Do I need Google Tag Manager to track conversions?
No. The gtag.js snippet works fine on its own for a simple site. GTM becomes worth it once you're juggling 4-5 tags (Google Ads, GA4, Meta Pixel, TikTok Pixel) and want to manage them without touching site code each time.