Skip to content

Problem

Google Ads conversion tracking not working: how to fix it

Broken conversion tracking has three shapes, and they are fixed differently. Either nothing is recorded, or too much is recorded, or conversions are recorded but not credited to the click that caused them. Work out which shape you have by comparing a fixed week of store orders with the same week in Google Ads, then follow the tag from the click through to the order confirmation.

By CartKernel · Last reviewed 2026-09-07

Does this look familiar?

  • A conversion action shows no recent conversions or an inactive status
  • Google Ads reports far more purchases than the store recorded for the same period
  • Conversion values are missing, always identical, or in the wrong currency
  • Smart bidding cannot leave the learning period because conversion volume is erratic
  • Conversions stopped on the day a theme, checkout or tag manager change went live
  • Orders are recorded but almost none are attributed to any campaign

Causes, ranked

Why it happens, most common first

Check them in this order. The first two account for most cases we open.

  • most common

    The tag is not present on the page that confirms the order

    The conversion snippet has to run where the purchase completes. Theme updates, a move to a new checkout, or a tag added only to the storefront and not the confirmation page all break this quietly. On Shopify the checkout is a controlled environment, so tags belong in the app integration or a customer event rather than pasted into a template.

  • most common

    The linker between click and conversion is missing

    Google Ads matches a conversion to a click through a stored identifier. If the tag that writes that identifier is absent, the checkout runs on a different domain without cross domain measurement, or cookies are cleared by a consent banner before the tag loads, the order is recorded without a campaign attached.

  • common

    The conversion action counts every event rather than one per order

    A purchase action set to count every conversion, combined with a confirmation page a customer can reload or return to, records the same order repeatedly. Duplicate tags from an app and a tag manager container produce the same inflation from a different direction.

  • common

    Consent settings block the tag before it fires

    With consent mode in place, tags wait for a signal. If the default is set to denied for advertising storage and the update never arrives, or the banner blocks scripts outright rather than signalling, conversions are lost rather than modelled. Region specific defaults make this appear in some markets only.

  • occasional

    Values and currency are not passed correctly

    A conversion that fires without an order value, or with a value that includes tax and shipping when the goal is product revenue, gives value based bidding the wrong instruction. A hardcoded value from a template example is a common leftover from initial setup.

  • occasional

    The wrong conversion identifiers are in place

    A conversion ID and label from a different account, a test account or a previous agency will fire and record nothing you can see. Multiple accounts managed under one manager account make this easy to do and hard to notice.

The fix

In this order

Each step is something you can do today. Do them in sequence; skipping ahead is how a review fails twice.

Prevent it next time

  • Reconcile store orders against reported conversions once a month and keep the record
  • Treat any checkout, theme or consent tool change as a release that requires a tracking test
  • Keep one owner and one implementation for each conversion action, documented
  • Set an automated alert for a day with zero recorded conversions on a spending account
  1. Establish which shape of failure you have

    Take one complete week, count store orders, and compare with conversions in Google Ads using a click based attribution view. Far fewer means the tag is missing or blocked, far more means duplication, roughly equal but unattributed means the linker.

  2. Check the conversion action status and settings

    Open the conversion action and confirm it is set to purchase, primary, counting one per conversion for a sale, with a value taken from the transaction rather than a fixed number. Note the reported status, which will say whether any tag activity has been seen recently.

  3. Watch the tag fire on a real order path

    Use the tag debugging tools in your browser to walk from an ad click through to order confirmation, and confirm the conversion request is sent once, with the right identifiers, an order value and a transaction identifier. Repeat on mobile, where consent behaviour often differs.

  4. Repair the click identifier chain

    Make sure the Google tag and its linking behaviour load on every storefront page before the checkout, and configure cross domain measurement if payment happens on another hostname. Confirm the ad click parameter survives any redirect between the ad and the landing page.

  5. Remove duplicate sources of the same conversion

    Inventory every place a conversion could be sent: the platform app, a tag manager container, a theme snippet and any marketing app. Keep exactly one. Then set counting to one per order and add a transaction identifier so repeat page loads are ignored.

  6. Fix the consent configuration rather than removing it

    Set sensible defaults for the regions you sell in, make sure the consent tool sends an update as soon as a choice is made, and confirm the tag loads in a waiting state rather than being blocked entirely. Then verify a granted and a denied journey separately.

  7. Turn on enhanced conversions for the purchase action

    Pass hashed customer data from the order confirmation so conversions can be matched when cookies are unavailable. On most platforms this is a setting in the official integration rather than custom code. Accept the terms in the account and verify the diagnostic reports data arriving.

  8. Recheck the reconciliation a week later

    Repeat the order count comparison on a fresh week. Expect ads to report slightly differently from the store because of attribution windows and modelling, but the two should now move together. Record the normal gap so future breaks are obvious.

When to get help

Bring in help when the checkout runs on a separate domain, when the store uses a headless front end, or when tracking has to satisfy consent rules across several regions, because those cases need a measurement design rather than a tag fix. It is also worth help when smart bidding has been running on inaccurate data for a while, since the bidding models need a deliberate reset once the tracking is correct rather than being left to recover on their own.

Get a Growth Analysis

Free. We reply within one business day.

Questions

Asked alongside this problem

By CartKernel · Last reviewed

Why does Google Ads show conversions that GA4 does not?

They count differently. Google Ads credits a conversion to the date and campaign of the click, includes modelled conversions and uses its own attribution window. GA4 credits by session and channel using its own model. Both can be configured correctly and still disagree, so reconcile each against store orders rather than against each other.

Should conversion tracking use the store integration or a tag manager?

Either works, but not both for the same conversion. The official platform integration is simpler and survives theme changes. A tag manager container gives more control over consent and event data. Choose one, document it, and remove the other so nothing is counted twice.

Do I need to pass a transaction identifier?

Yes for purchases. It lets the platform ignore repeated fires of the same order when a customer reloads or revisits the confirmation page, and it makes reconciliation against store orders possible. Without it, duplication is difficult to detect and difficult to prove.

Will fixing tracking change my historical reports?

No. Past conversions stay as they were recorded, so the before and after periods are not directly comparable. Note the date of the fix in the account, and compare performance from that day forward rather than trying to reinterpret earlier data.

Related problems, answers and terms

All problems
ProblemGA4 purchase event not firing: how to fix itA GA4 purchase event not firing leaves ecommerce reports empty while orders keep arriving. Trace the event from checkout to property and repair it.OpenProblemConversions dropped after Consent Mode: how to fix itConversions dropped after Consent Mode is usually a configuration choice, not a legal ceiling. What to check, and how to keep reporting honest.OpenProblemGoogle Ads ROAS dropped: how to fix itWhen Google Ads ROAS dropped, decide first whether revenue fell or measurement changed. The order of these checks saves weeks of wrong fixes.OpenProblemPerformance Max not converting: how to fix itPerformance Max not converting usually means the campaign is starved of signal, assets or eligible products. Diagnose in order before restructuring.OpenAnswerWhy does Google Ads report more conversions than my store?Google Ads counts conversions against the click date, inside a window, including modelled ones. The five reasons the number runs ahead of your orders.OpenAnswerHow do you set up enhanced conversions for Shopify?Enhanced conversions on Shopify are usually enabled through the Google channel or a customer event. The routes, the requirements and how to verify it works.OpenGlossaryEnhanced conversionsEnhanced conversions send hashed customer details with a Google Ads conversion so more orders can be matched. Setup, a worked field list, and pitfalls.OpenGlossaryConsent ModeConsent Mode is how Google tags read a visitor's consent choice and adjust behaviour. The signals, basic against advanced, and what it does to reporting.Open

Stop the leak.

A free Growth Analysis finds what is broken and ranks it by the revenue it costs you.