SEO 3 min read

When Google Ads and WooCommerce disagree on purchases

Google Ads and WooCommerce show different purchase counts. Thank-you page, duplicate tags, consent mode, and value fields I check before blaming the ads account.

When Google Ads and WooCommerce disagree on purchases

Google Ads shows spend and clicks. WooCommerce shows orders. The conversion column barely moves, or it double-counts, or it went quiet the day someone published a new GTM container. That gap burns budget and makes Smart Bidding look drunk.

I treat this as tracking plumbing, not ad strategy. Fix the leak first. Then argue about creative.

Make sure the purchase actually hits the thank-you page

Some gateways redirect oddly. Some thank-you URLs get cached. Some "custom thank you" plugins replace the order-received endpoint and drop the data layer. Place a real test order with a known total and watch Tag Assistant (or the Network tab in your browser tools) on the success page.

If the customer never lands on order-received, no amount of GTM polish invents a conversion. Fix the redirect path before you rewrite tags.

One source of truth for purchase

Common mess on inherited stores: a Google plugin plus a GTM purchase tag plus hard-coded gtag on the thank-you template plus Enhanced Conversions half set up. Pick one path. Pause the extras on staging first, then on live once you have proof.

Document which tag owns purchase. Duplicate purchase tags inflate or confuse the Ads UI depending on how you count. Renamed containers and old conversion labels are a quiet killer too.

Consent mode and blocked tags

In basic consent mode, if consent defaults to denied and the update never runs, the tag never fires. In advanced mode Ads only gets cookieless pings and modelled numbers. Either way the column looks wrong. Check your cookie banner (CMP), the consent default in GTM, and whether purchase tags require ad_storage granted. A banner that looks fine in the theme can still leave tags dead.

Also watch page builders and cookie plugins that rewrite the thank-you markup after GTM loads. Order of scripts matters more than people admit.

Value, currency, and false wins

Conversion value missing or in the wrong currency makes bidding decisions worse, not better. Confirm the data layer (or tag fields) pass order total and currency matching the Ads conversion action. Refunds and failed orders shouldn't fire purchase.

Attribution can lag. If Tag Assistant shows the conversion tag firing with the right ID and value, wait before tearing everything out. If it never fires, don't wait.

When it's bigger than a tag tweak

Sometimes the store is fine and the Ads setup is a pile of leftover conversions from three agencies ago. Sometimes checkout itself is broken and tracking is the wrong conversation. I say which lane you're in before burning hours on micro-edits.

If you want help, I run tracking tidy-ups on the tracking technical cleanup page, and awkward WooCommerce / WordPress rescues sit under WordPress and WooCommerce support.

Want a straight read on your setup? Use the form on dawsony.com and send the GTM container ID (not passwords), the Ads conversion label, and one recent test order number. I'll say if it's a half-day tidy or a rebuild.

Need a hand with this?

Get help with a broken order journey, custom store features or ongoing WooCommerce care.

A related project

A custom price history feature for WooCommerce

Bespoke plugin work to record product price changes and present the history by date, delivered through an agency.

Talk directly to Adam

Share this article

Back to Blog