The usual WooCommerce setups, and where each one fires
There are three common ways to get WooCommerce purchases into Google Ads. Google for WooCommerce, the free extension published by WooCommerce, adds the Google tag, tracks sales conversions and can add enhanced conversions; it also syncs your product feed to Merchant Center and runs Performance Max campaigns from your dashboard (plugin listing, checked October 2026). Plugins like PixelYourSite Pro turn the WooCommerce purchase event into a Google Ads conversion once you paste a conversion label. And many stores import the GA4 purchase into Google Ads instead.
All three are reasonable. What they usually share is that the purchase is reported by a tag in the buyer's browser, on the order-received page. That's the weak spot on WooCommerce.
Where WooCommerce loses Google Ads conversions
- Payment methods that leave your site, such as PayPal, iDEAL through a bank app, Klarna or a hosted card page. The buyer pays, closes the tab, and the order-received page never loads.
- Ad blockers and privacy browsers that block Google's tags.
- Cookie banners: without consent, Google's tags run in a limited mode or not at all, depending on your consent setup.
- Caching and script-delay settings in optimization plugins that hold the tag back until the visitor interacts, which buyers on a thank-you page often don't.
- Buyers who click an ad on Monday and buy on Friday, after Safari's cookie limits have already shortened how long the click is remembered in the browser.
Which WooCommerce orders should count in Google Ads
Smart Bidding learns from the purchases you send it. If unpaid orders count, Google looks for more people who start a bank transfer and never finish it. A clean setup only reports paid orders:
- Processing or Completed after a successful payment: count it.
- On hold (bank transfer, cash on delivery): wait until the order is actually paid.
- Pending payment, Failed, Cancelled or a checkout draft: don't count it.
- A status change from Processing to Completed is the same order. It must not create a second conversion.
How server-side purchases reach Google
The Settl Tracking plugin saves the gclid (and Google's iOS click ids, gbraid and wbraid) when a visitor lands from an ad, keeps it for 90 days and stores it on the order at checkout. It also reads the GA4 client and session id from the _ga cookies your existing Google tag sets.
When WooCommerce marks an order paid, the plugin passes it to Settl, which sends a purchase to your GA4 property through Google's Measurement Protocol, from the server. It carries the order id as transaction id, value, currency, products, the gclid, hashed email, the GA4 session and the consent signals from the visit. Sending the session matters: without it, GA4 files a server purchase as Unassigned and an imported GA4 conversion never credits the ad.
If you connect your Google Ads account, purchases from buyers who came from a Google ad are also uploaded straight to Google Ads as click conversions, with the order id and hashed email and phone (enhanced conversions). Settl sends these through Google's Data Manager API. If the account hasn't accepted Google's customer data terms yet, Settl sends the purchase again with only the click id, value, currency and order id, so it still counts.
Avoid double counting in Google Ads
WooCommerce stores often collect Google purchase tags over the years: one from Google for WooCommerce, one from an analytics plugin, one in Google Tag Manager, plus an imported GA4 purchase. If two purchase conversion actions are set as Primary, Google counts each sale twice and Smart Bidding chases a ROAS that doesn't exist.
Open Goals, then Conversions in Google Ads and look at every purchase action. Pick one as Primary for bidding: Settl's direct upload or the imported GA4 purchase. Set the others to Secondary, or remove them. Whatever you keep, send the order id as transaction id so a reloaded thank-you page doesn't count again.
Your options on WooCommerce (checked October 2026)
Google for WooCommerce is the obvious start if you run Shopping or Performance Max campaigns: the product feed, campaign setup and Google tag come in one free extension. Its conversion tracking runs in the browser, and one reviewer on its plugin page reports a conflict with their own Google Tag Manager setup, so check you don't end up with two purchase tags.
PixelYourSite Pro is a good fit if you want many event options across many platforms from one plugin; you map WooCommerce events to Google Ads conversion labels in its settings.
Settl focuses on the purchase itself: paid orders only, sent from the server with the saved click, to GA4 and directly to Google Ads, with an hourly check that no paid order of the past week was missed. The same plugin covers Meta, TikTok, Snapchat, Pinterest, X, Microsoft Advertising and Reddit. You can keep Google for WooCommerce for your feed and campaigns next to it; just make sure only one purchase action is Primary.
How to check it works
Place a real test order with a payment method that leaves your site, and close the tab right after paying. In GA4, open the realtime report or DebugView: a purchase with your order number as transaction id should still arrive.
In Google Ads, open Goals and then Conversions. The purchase action you made Primary should show a status like Recording conversions. Imported GA4 conversions can take several hours to appear, so check the next day. After a week, compare Google's purchase count with your paid WooCommerce orders from Google clicks, not with all your orders.