Google Ads

How to Set Up Google Ads Conversion Tracking the Right Way in 2026

By Adgenix 12 min read
Data flow diagram showing direct Google Ads conversion tracking versus GA4 import

Most Google Ads accounts run with broken conversion tracking. Not “the pixel isn’t firing” broken. The pixel fires fine. What’s broken is what gets imported, what gets double-counted, and what counts as a conversion in the first place.

On accounts inherited from agencies, freelancers, or in-house setups, conversion data is wrong roughly 6 times out of 10. The numbers in Google Ads don’t match the numbers in Shopify. The numbers in Shopify don’t match the numbers in the bank. Bid strategies optimise toward conversions that aren’t conversions. And nobody catches it for months because the dashboard shows conversions going up.

This is a setup guide written from the operator side. The work you’re actually deploying matters more than which checkbox you tick first. Here’s how to do it properly.

Why most tracking problems are import problems, not pixel problems

When tracking fails, the first instinct is to check the pixel. Is it firing? Is the event registering? Did the GTM container load? These are real checks but they’re usually not where the problem lives.

The actual breakage happens at the import layer. A few patterns we see constantly:

The Google Ads account has a Google Ads conversion action installed AND a GA4 conversion imported. Both register a purchase. The dashboard shows two conversions per actual order. Smart Bidding optimises against double-counted volume. Target CPA goals get hit on paper while actual cost per acquisition is twice what’s reported.

The purchase conversion action has no transaction ID, so duplicates are not removed. A customer who reloads the order confirmation page counts as a second conversion for the same order. Volume looks healthy, average order value looks deflated, bid strategies misallocate.

Add-to-cart is set as a conversion action, not just an event. Add-to-cart fires 10x more often than purchase. The reported conversion count is inflated 10x. CPA looks artificially low. Bid strategies overbid because the signal looks much cheaper than it is.

The pixel is fine in all three cases. The architecture is wrong.

The two conversion tracking architectures and which one fits

There are two paths for getting conversion data into Google Ads. Most accounts run both. They should run one.

Path A: Direct Google Ads Conversion + Enhanced Conversions. Conversion actions are created inside Google Ads. Tags fire directly into Google Ads. Enhanced Conversions pass hashed customer data alongside the conversion event for better attribution. This is the cleaner architecture.

Path B: GA4 Conversion Imported into Google Ads. Conversion events are configured in GA4. Google Ads imports them via the linked GA4 property. This is the path Google’s documentation often recommends for “unified” reporting.

For ecommerce, Path A is the right default. Path B sounds tidier in theory but introduces problems for ecommerce that don’t apply to lead generation.

The GA4 import path adds attribution lag. GA4 needs time to process the event, apply attribution modelling, then send it across to Google Ads. For high-volume ecommerce accounts with Smart Bidding strategies that need fast feedback loops, that lag matters. Direct Google Ads conversions arrive in minutes. GA4-imported conversions can take hours.

GA4 conversions also count differently to Google Ads conversions in ways most setups never reconcile. GA4 counts unique users converting in a session. Google Ads native counts every conversion event. For lead generation where one form fill is the goal, these align well enough. For ecommerce where a customer might return and convert again, the counting logic creates discrepancies that look like tracking bugs but aren’t.

Path B fits lead generation accounts where the conversion is binary (form, call, demo booking) and the volume is low enough that the lag doesn’t damage Smart Bidding. For ecommerce, run direct Google Ads conversions with Enhanced Conversions and skip the GA4 import entirely. Tracking Facebook and Instagram leads works the same way, covered on our Facebook ads specialist page.

If you’ve inherited an account running both, the first cleanup task is removing the GA4-imported purchase from the Google Ads conversions list while keeping it for reporting in GA4 itself. Most accounts can’t survive an immediate switch without bid strategy disruption, so the transition needs sequencing rather than a clean cut. Cleaning up tracking like this is a standard first step in ecommerce Google Ads management.

Setting up Direct Google Ads Conversions properly

The configuration is straightforward. The errors are in the defaults.

Create the conversion action inside Google Ads. Choose Website as the source. Pick the conversion category (Purchase for ecommerce). The defaults to watch are these:

Count setting: choose “Every” for ecommerce purchases. This is Google’s recommended setting for sales, because each purchase is a separate conversion with its own value. Pass a transaction ID with every purchase event so a reloaded confirmation page can’t count the same order twice. Multiple line items in a single order should count as one purchase, not many.

Conversion window: default is 30 days for click-through and 1 day for engaged-view. For ecommerce DTC brands with shorter consideration cycles, this is fine. For higher consideration items where decisions stretch beyond 30 days, push the click window out to 60-90 days.

Attribution model: default is data-driven attribution. Keep it. Last-click attribution is legacy and undervalues mid-funnel touchpoints. Data-driven attribution is the default for new conversion actions and has had no minimum conversion requirement since 2021.

Include in “Conversions” column: yes for purchases. This signal feeds Smart Bidding. The “Conversions” column is what bid strategies optimise toward. Anything you don’t want bid strategies chasing should be tracked as a secondary action (more on this below).

Tag deployment depends on the platform. For Shopify, native Google channel handles purchase tracking once Enhanced Conversions are configured. For custom builds, GTM with the Google Ads conversion tag plus an event snippet on the thank-you page is the standard pattern. Hardcoded gtag.js directly in the source is also valid but harder to maintain.

The single most important check after deployment: fire a test purchase, wait 15 minutes, check the conversion action shows status “Recording conversions” with at least one event. If status stays at “No recent conversions” for 24 hours after a confirmed purchase, the tag isn’t firing or isn’t firing correctly. That’s where actual pixel troubleshooting begins.

Enhanced Conversions is where most setups go wrong

Enhanced Conversions passes hashed first-party customer data (email, phone, address) alongside the conversion event. Google uses this to match conversions back to logged-in users across devices, dramatically improving attribution accuracy in a privacy-restricted world.

For ecommerce on Shopify, this should be on. For lead generation collecting email or phone, this should be on. The setup is straightforward and the attribution lift is real. But the configuration tier matters.

Three configuration options exist:

Google Tag (gtag.js) automatic detection: Google reads form fields on the page and hashes the data automatically. Works for standard checkout flows. Often misses fields on multi-step checkouts or single-page-application stores.

Google Tag Manager with manual variable mapping: explicitly maps customer data fields from the page DOM or data layer to Enhanced Conversions parameters. More work but more reliable.

Google Ads API for direct uploads: server-side, most accurate, requires development resources. The right answer for accounts that have outgrown client-side limitations.

For Shopify stores, the Google sales channel handles Enhanced Conversions via the native integration. For custom builds, GTM with explicit variable mapping is the standard. Automatic detection looks easier but fails silently when checkout forms don’t match Google’s expected patterns. Manual mapping is more setup but you know it works because you wrote the mapping.

The verification step that most setups skip: open the conversion action in Google Ads, scroll to Enhanced Conversions, and check the diagnostics. Google reports whether enhanced data is being received and at what match rate. If diagnostics show “No data” or low match rate (under 50%), Enhanced Conversions isn’t actually working even if everything looks configured.

GA4 vs Google Ads discrepancy: when it’s a problem and when it isn’t

Comparing GA4 and Google Ads conversion numbers and finding them different is normal. They count different things, attribute differently, and have different lag windows. Expect 10-30% variance even when both are working correctly.

When the discrepancy crosses into actual problem territory:

GA4 reports 5x more conversions than Google Ads. The Google Ads tag isn’t firing for all conversions or the conversion action is filtering them out. This is a Google Ads tag problem.

Google Ads reports 3x more conversions than GA4. Almost always double-counting in Google Ads. Two conversion actions firing, purchases counted without a transaction ID, or add-to-cart being tracked as a conversion.

The two report similar volume but different revenue. Currency settings differ, transaction value passes correctly to one but not the other, or tax inclusion logic differs. Usually fixable by checking the value parameter on each tag.

Both report similar volume but Google Ads attributes far more to non-brand keywords than expected. Enhanced Conversions is working better than expected (this is the goal, not a problem). View-through conversion attribution kicking in. These usually represent real attribution improvements, not bugs.

A reasonable operator framework: if Google Ads volume is between 70% and 130% of GA4 volume for the same conversion type, the setup is probably fine. Investigate when the ratio moves outside that band.

Where server-side tracking actually matters

Server-side tracking is the future, and for very specific accounts it’s already the present. For most accounts, it’s an expensive distraction.

The clearest cases for server-side tracking right now:

Accounts with significant European traffic where consent mode and cookie restrictions damage client-side tag firing. Server-side tracking via Consent Mode v2 plus modeled conversions recovers meaningful attribution.

High-volume accounts ($50k+/month spend) where the marginal attribution improvement from server-side adds up to real money. The cost of setup and maintenance is justified by the bid strategy improvement.

Accounts with complex cross-domain flows where client-side tracking constantly breaks at session boundaries.

For most Australian SME accounts running Shopify and spending $5-30k/month, server-side tracking is not the difference maker. Getting Enhanced Conversions right matters more. Removing the GA4 import to stop double-counting matters more. Setting count to “Every” on purchase actions and passing a transaction ID matters more. These fixes deliver attribution improvement at zero ongoing cost.

The conversation order matters. If a vendor pitches server-side tracking before confirming Enhanced Conversions is working and no double-counting exists, they’re selling complexity instead of solving the actual problem.

The 10-point conversion tracking audit

The fastest way to verify a tracking setup is working as intended:

  1. Open Google Ads → Goals → Conversions → Summary. Count how many conversion actions exist. For a single-product ecommerce account, you should see one or two purchase actions, not five.
  2. Check the count setting on each. Purchases should be “Every”, with a transaction ID passed so repeats are deduplicated. Lead generation events should be “One.” Engagement events should be “Every” if tracked at all.
  3. Check the status of each action. “Recording conversions” with a recent event is healthy. “No recent conversions” for an active action is a red flag.
  4. Identify whether any GA4-imported conversions are duplicating direct Google Ads conversions. Two purchase events at similar volume usually means double-counting.
  5. Open one conversion action and check Enhanced Conversions diagnostics. Match rate above 50% is healthy. Below 50% means the setup needs work.
  6. Compare GA4 and Google Ads purchase volume for the same date range. Verify ratio is within 70-130% band.
  7. Check that add-to-cart, page-view, and other micro-events are NOT set as primary conversions feeding bid strategies. Secondary action status is fine, primary is wrong. For which actions belong in primary and which in secondary, see what should count as a conversion.
  8. Verify the conversion value passes correctly. Run a test purchase, check the conversion event shows the correct revenue value.
  9. Cross-reference Google Ads purchase volume against actual store volume for the same period. If Google Ads claims 50 purchases but Shopify reports 100 attributable to paid traffic, attribution is undercounting. If Google Ads claims 50 and Shopify reports 25, attribution is double-counting.
  10. Check the attribution model on each primary conversion action. Data-driven is the default and has no minimum conversion requirement.

For deeper audit context, the senior operator’s Google Ads audit checklist covers the broader account health checks that conversion tracking sits inside.

Edge cases worth knowing about

Multiple conversion windows. If you change the conversion window on an existing action, historical data doesn’t retroactively reattribute. New conversions follow the new window, old conversions stay attributed under the old window. This creates apparent volume changes that aren’t real changes.

Cross-device conversions. Enhanced Conversions improves cross-device attribution significantly. A customer who clicks an ad on mobile and converts on desktop is more likely to be matched correctly with Enhanced Conversions active.

Multi-account or franchise setups. If multiple Google Ads accounts share the same store, conversion tracking can attribute the same purchase to multiple accounts. The solution is conversion actions configured at the manager account level with proper allocation.

Conversion lag for high-consideration purchases. Items that customers research for weeks before buying create conversion lag that distorts current-period reports. Your conversion volume from clicks in October may still be arriving in late November. Smart Bidding accounts for this if attribution windows are set wide enough.

Refunds. Refunded purchases don’t automatically remove from Google Ads conversion data unless you implement refund tracking via offline conversion upload. Most accounts don’t, which means conversion revenue is slightly overstated. For most SME accounts this is acceptable; for high-refund-rate categories (apparel, jewelry) it matters more.

When to DIY and when to hire

For Shopify stores, conversion tracking setup is mostly a configuration exercise. The native Google sales channel handles the basics. Enhanced Conversions configuration is straightforward. Most founders can verify the setup is working using the 10-point audit above. DIY is realistic.

For WooCommerce, custom builds, headless commerce, or multi-domain setups, the technical complexity rises. GTM configuration with explicit variable mapping, custom event triggers, server-side considerations. These benefit from someone who has set up the same architecture before. A contractor familiar with the specific stack is faster than learning it from documentation.

For lead generation businesses with multiple form types, call tracking, offline conversion uploads from CRM systems, or complex multi-touch attribution requirements, the setup work itself is the small piece. The data architecture decisions (which conversion counts as primary, how to handle lead-to-close offline conversions, attribution lag for sales cycles measured in months) is where senior operator input pays back.

The honest test: if you can complete the 10-point audit above and pass on all items, your tracking is working. If you can complete it but two or three items fail, the fixes are usually one-off configuration changes that don’t need ongoing support. If completing the audit reveals you don’t actually know what’s been set up and where, that’s the point where hiring help saves more money than it costs.

We handle conversion tracking diagnostics and fixes as part of every senior Google Ads management engagement and as a standalone scope when accounts need tracking cleaned up before optimisation work begins.

FAQ

How long should I wait for conversions to start showing after setup? Test conversions appear in Google Ads within 15 minutes of the event. Real conversion volume should show within 24-48 hours of campaign traffic. If you’ve waited 48 hours and the status still shows “No recent conversions,” the tag isn’t firing.

Should I track add-to-cart as a conversion? No, not as a primary conversion. Add-to-cart is useful as a secondary action for engagement signals but it inflates conversion volume by 10x or more and damages Smart Bidding. Track it as a secondary action if you want the data; don’t let bid strategies optimise toward it.

Why do my Google Ads and Shopify numbers never match exactly? They count different things over different windows with different attribution rules. A 70-130% variance band between Google Ads and Shopify for the same period is normal. Investigation is warranted when variance exceeds that band consistently.

Is Enhanced Conversions worth setting up for a small account? Yes. Setup is straightforward, attribution improvement is real, and the lift is independent of account size. Match rates and attribution recovery often improve more for smaller accounts that previously relied on shorter-window cookie attribution.

Do I need server-side tracking? For most Australian SME ecommerce accounts under $50k/month spend, no. Get Enhanced Conversions working, fix double-counting, set count to “Every” and pass a transaction ID. These matter more than server-side migration. Reconsider server-side when European traffic, complex cross-domain flows, or sufficient spend volume justify the implementation cost.

Want to see what we'd find in your account?

Get a free Revenue Leak Report: a 48-hour audit showing exactly where your ad spend is leaking and what to fix first.