WooCommerce Google Ads conversion tracking usually comes down to four approaches.
You can import purchases from GA4, use the Google tag through Google for WooCommerce, set everything up in Google Tag Manager, or use a plugin that sends conversion data directly from the order.
On paper, they all do the same thing. In practice, they do not.
Most stores never make a deliberate choice. They use whatever tracking setup came with a plugin, connect it once, and move on.
A month later, Google Ads says a campaign generated $6,600 in revenue, while WooCommerce says it generated $8,000.
That $1,400 gap is not just a reporting problem.

You might cut a campaign that was actually working. And if Smart Bidding optimizes against those numbers, Google makes bidding decisions with bad data.
The right tracking method depends on your store, whether you already use GTM, need to handle EU privacy consent, run upsells, or have a customized checkout.
Each of those can change which setup makes the most sense.
We will break down all four methods, show you how to set them up properly, and, more importantly, show you how to find the problem when Google Ads and WooCommerce stop agreeing.
Jump to the step-by-step process
Table of Contents
- 1 What Google Ads Conversion Tracking Actually Measures
- 2 4 Ways to Track WooCommerce Purchases in Google Ads
- 3 Which Method Should You Use?
- 4 How to Set Up Google Ads Conversion Tracking in WooCommerce?
- 5 How to Test Google Ads Conversion Tracking in WooCommerce
- 6 How to Set Up Enhanced Conversions for WooCommerce
- 7 How to Stop Duplicate Google Ads Conversions With Transaction ID
- 8 Why Google Ads Conversions Don’t Match Your WooCommerce Orders
- 9 Troubleshooting: Not Firing, Firing Twice, or Missing Value
- 10 Frequently Asked Questions (FAQs)
- 11 Maximize Your Google Ads ROI with Seamless WooCommerce Conversion Tracking
What Google Ads Conversion Tracking Actually Measures
A conversion action is simply an outcome you have told Google to count, along with the value attached to it.
For a WooCommerce store, that usually means one thing, i.e., a completed order and the total revenue it generated.
Before you set anything up, let's get this right:
| Parameters | Conversion tracking | Google Analytics |
|---|---|---|
| Question it answers | Which ad clicks produced sales | How people behave on your site |
| Who consumes the data | Google Ads bidding algorithms | You, in a report |
| Cost of getting it wrong | Budget flows to the wrong campaigns | A misleading chart |
That last point is the one store owners tend to underestimate.
Analytics data is something you look at, and the conversion data is something Google acts on.
Smart Bidding uses the conversions you send it to decide how much to bid, where to bid, and which users are worth pursuing.
If you send Google duplicate purchases, miss some orders, or report the wrong revenue, it learns from that bad data and adjusts your bids accordingly.
And a bigger problem is that some customers will never be visible to your browser-side tracking in the first place.
According to Backlinko, 29.5% of internet users worldwide used an ad blocker at least sometimes in Q2 2025.
That works out to roughly 1.77 billion people. In the US, the figure was 32.5%.
Those users can disappear from browser-side tracking before you have made a single mistake in your setup.
Google's conversion modeling can help fill some of that gap, but it does not kick in at every level of traffic.
For consent mode modeling, Google says you need at least 700 ad clicks over seven days for a country and domain grouping before the models can be trained.
Below that threshold, Google has less data to work with. So if you are a smaller store, accurate conversion tracking is your dataset.
4 Ways to Track WooCommerce Purchases in Google Ads
There are four common ways to send WooCommerce purchases to Google Ads.
They range from almost plug-and-play to a setup where you control every piece of the data.
| Method | Best for | Difficulty | Sends order value | Needs GTM | Cost |
|---|---|---|---|---|---|
| GA4 import | Stores already running GA4 ecommerce tracking | Low | Yes, via the GA4 purchase event | No | Free |
| Google for WooCommerce | Merchants running Shopping and PMax from inside Woo | Low | Yes | No | Free extension |
| Google Tag Manager plus a data layer plugin | Stores needing product-level cart data and full control | High | Yes, from the data layer | Yes | Free |
| WooCommerce tracking plugin | Custom checkouts, order bumps, upsells, or no GTM setup | Low to medium | Yes | No | Free and paid |
Method 1: Import GA4 purchases into Google Ads
If GA4 is already tracking your WooCommerce purchases correctly, this is the quickest option.
Connect WooCommerce to GA4 and make sure the purchase event is being recorded as a key event.
Once done, link GA4 to Google Ads and import it as a conversion action.
The setup is simple, and it is the route that comes up again and again when people discuss WooCommerce conversion tracking on Reddit.
The catch is that you give up some control. Conversions come through GA4, so they inherit GA4's attribution and measurement setup.
Conversions can also be delayed before they appear in Google Ads.
If your GA4 ecommerce tracking is missing products, revenue, or purchases, importing those conversions doesn't fix the underlying problem. It just moves the bad data into Ads.
Method 2: Google for WooCommerce (official extension)
Google for WooCommerce, previously called Google Listings & Ads, is Google's official WooCommerce extension.
It connects your store with Merchant Center, syncs your products, and handles the Google tag and conversion tracking as part of the setup.
It makes the most sense if you are already using the extension to run Shopping or Performance Max campaigns.
However, the only limitation is the control.
If you need to decide exactly which events should fire, pass custom values, or keep separate conversion actions for things like leads and add-to-cart events, you will probably outgrow this setup.
Method 3: Google Tag Manager + a data layer plugin
GTM gives you control, but it cannot magically see what happened inside WooCommerce.
You need something to push the order and product data into the data layer first.
That is where a plugin such as GTM4WP comes in.
This combination gives you the most flexibility. You can pass things like:
- Product-level cart data, including your Merchant Center ID, feed country, and feed language
- The new customer parameter used by Performance Max
- Shipping data for Shopping campaigns
- Custom triggers that fire exactly when you want them to
The trade-off is that more things can go wrong. And some of those failures are hard to spot.
GTM4WP's documentation, for example, warns that its container template includes placeholder values. If you forget to replace one, the value can still look perfectly valid to Google. Nothing crashes.
But you simply end up feeding Google the wrong information.
That is the dangerous kind of tracking error because everything looks like it is working until you compare the numbers.
Method 4: A WooCommerce conversion plugin
A WooCommerce conversion plugin like FunnelKit takes a different approach.
Instead of relying on a separate GTM container to collect the order, it can read the completed WooCommerce order and send the conversion data from there.
In a basic setup, you add your Google Ads conversion ID and label, choose the events you want to track, and let the plugin handle the rest.
For many stores, this is the most practical option. It is particularly useful when your checkout does more than a standard WooCommerce checkout, such as adding order bumps, one-click upsells, or post-purchase offers.
That extra complexity matters because the final order value may not match what a basic browser-side tag captures.
Which Method Should You Use?
Four questions will usually tell you which setup to use. You do not need to solve every tracking problem on day one.
Pick the method that fits your store, get the purchase event working, then come back and improve accuracy.
- Already running Google Tag Manager?
Use Method 3 for this. Adding a second tagging system alongside GTM is how stores end up firing the purchase event twice.
- Selling to customers in the EU or UK?
Your consent platform needs to work with whichever tracking method you choose.
GTM and the Method 4 plugins give you a clean way to manage that.
- Running a custom checkout, order bumps, or one-click upsells?
Read the upsell section before you set anything up.
The standard WooCommerce purchase event may fire before your customer's final order value is actually settled.
- Need product-level data for Shopping?
You need the right cart data parameters and a linked Merchant Center account. Method 2 handles much of this for you.
With Methods 3 and 4, you will need to configure those values yourself.
How to Set Up Google Ads Conversion Tracking in WooCommerce?
For the walkthrough, we will use FunnelKit Funnel Builder.
It reads completed orders on your store and fires the conversion tag with the correct value, so you don't need to build a container or hire a developer.
With FunnelKit, you can do all this and site-wide event tracking with the help of its free version.
It also lets you create beautiful checkout and thank-you pages. The Pro version includes order bumps, one-click upsells, and A/B testing.
Make sure you've installed and activated FunnelKit Funnel Builder before following the step-by-step instructions below.
Step 1: Create the purchase conversion action in Google Ads
Sign in to your Google Ads account and go to Goals ⇨ Conversions and click on the 'Summary' option.

Next, click on the 'New conversion action' button.

Next, click Website and enter your website's domain URL.
Then click 'Scan'.

Now, choose the conversion actions you want to set up.
From here, choose 'Add a conversion action manually'.

Then, select a new goal and related information for your Google Ads conversion tracking.
Select a conversion type and name it. You can also set the conversion value and count there.
For example, here we have set up one conversion 'Purchase' action and selected the following information as shown below:

Make sure you've enabled enhanced conversions for this conversion action.

Click on 'Done' to save the changes.
Now that we have added our conversion goals, click the 'Save and continue' button.

Next, you’ll reach Step 2. Click on 'See event snippet' here.

Well done! This is how you can create a conversion action in Google Ads for tracking.
Step 2: Copy the conversion ID and conversion label
Clicking on the 'See event snippet' button will help you locate your Google Ads Conversion ID and Conversion Label.

The conversion ID starts with AW- and is identical across every conversion action in the account.
The conversion label is unique to each individual action, which is exactly why WooCommerce Purchase and Add to Cart cannot share one.

Copy both and write down which action each label belongs to.
Step 3: Add the conversion ID and label to WooCommerce
In WordPress, go to FunnelKit ⇨ Settings ⇨ Pixel Tracking ⇨ Google Ads and paste the conversion ID into the account field.

Running more than one Google Ads account against the same store is common for agencies and multi-brand sellers.
Hit 'Add Another Account' to register additional conversion IDs, and events fire to each one.

Save before continuing so the events section loads against the right account.
Step 4: Enable the events you want to track
Turn on the events that match the conversion actions you created, then add the matching label beside each one.
For the eCommerce store, that means the purchase event gets the Woo Purchase label, while add to cart gets Woo Add to Cart.

Site-wide events cover page view, view item, and add to cart across the whole store, funnels or no funnels.
Funnel events go further:
Sales Page Event
- Page View
Optin Page Events
- Page View
- Lead (Add conversion label)
Order Bump Events
- Add to Cart
- Order Bump Conversion
Checkout Events
- Page View
- Add to Cart
Purchase Events
- Page View
- Conversion
Track Steps (Custom Funnel Step events)
Advanced
- Send parent product ID for variable products
- Content ID prefix and suffix
- Exclude shipping from total
- Exclude taxes from total

Click on 'Save Changes' once done.
Give every event its own conversion label. FunnelKit lets you set separate labels for add to cart, lead, and purchase for a reason. Reusing one label can wreck your conversion data.
For example, if you paste the purchase label into the add-to-cart field, Google Ads can treat every cart addition as an $89 purchase.
Your conversion count goes up. Reported revenue goes up.
And Smart Bidding starts optimizing for people who add something to their cart and never actually buy it.
If you do not need an event, leave its field blank. Do not reuse a label just to fill the box.
Then check the advanced options. These can change the value and product data Google receives.
You can exclude shipping and taxes from the conversion value.
You can send the parent product ID for variable products when your Merchant Center feed doesn't include variants.
You can also add a content ID prefix or suffix when your product IDs need to match the feed.
These settings are easy to overlook. They can also cause an $89 WooCommerce order to suddenly show up as $97.40 in Google Ads, leaving you wondering where the extra $8.40 came from.
If your funnel includes a post-purchase offer page, check our guide on disabling the purchase event on offer pages before you go live.
Otherwise, the same purchase can fire again when the customer reaches the offer page.
How to Test Google Ads Conversion Tracking in WooCommerce
To test the Google Ads conversion implementation on your website, use Google Tag Assistant.
Here’s how you can do it:
Step 1: Add the domain to Google Tag Assistant
Go to Google Tag Assistant and click on the 'Add domain' button.
Enter your website’s URL and hit 'Connect'.

It’ll successfully connect and open up the website on another tab in your browser.
Click on 'Continue'.

From there, you can interact with your website and see all the events being fired in Tag Assistant.
Step 2: Interact with your website and see fired events in Tag Assistant
Now, we’ll verify the Google Tag implementation by interacting with the website.
Go to your product’s catalog, view, or add any item to your cart.
Viewing an item and adding it to the cart

These are the events that get captured:

As you can see, it shows various events related to the product you view and add to the cart.
To see more details about any event, click on the block, and a sliding window will appear with all the details:

As you can see, the product details, page URL, platform, system details, etc., are for this page view event.
Initiating the checkout and making a purchase

Now, proceed to the checkout and make a test purchase by filling in all the details on the checkout form.
Once done, you’ll reach the order confirmation page and see these events in the previous tab.

As you can see, events such as Checkout, Page View, Purchase, and Thank You page have been fired.
Since all events fired successfully, Google Ads is effectively tracking conversions in your WooCommerce store.
How to Set Up Enhanced Conversions for WooCommerce
Enhanced conversions give Google more information to match a purchase when the browser cannot.
The tag sends customer data, such as a hashed email address, alongside the conversion, giving Google another way to connect the order to an ad interaction.
Google says enhanced conversions can recover additional conversions that would otherwise be missed because of browser restrictions, with some of the biggest gains coming from cases affected by Apple's ITP.
The setup is basically two switches.
- Turn it on in Google Ads
Go to Goals ⇨ Conversions ⇨ Settings, expand Customer data use, turn on Enhanced conversions, and accept Google's customer data terms.

The interface has changed recently. Google now combines its web and leads enhanced-conversions settings in one area.
- Send the customer data
Turning on the setting in Google Ads doesn't automatically add customer information to your conversion.
Your tracking setup needs to send user-provided data with the purchase.
Email is the most important field, but you can also send phone number, name, and address when you collect them.
Most WooCommerce tracking plugins can pull this information automatically from the billing fields.
With GTM, you map those fields to user-provided data variables on the conversion tag.
Google uses SHA-256 hashing for the data.
When using gtag, it can handle the hashing for you before sending the data over HTTPS.
- Verify
Do not stop when the plugin says enhanced conversions are enabled.
Open the conversion action in Google Ads and check the Diagnostics tab.
If Google doesn't show enhanced conversions as active there, they aren't working yet.
Turning on the setting doesn't prove data is actually being received.
If you sell into the EU or UK, check the ad_user_data consent dependency.
If a visitor does not grant the required consent, Google cannot use their customer data for enhanced conversions.
Your tracking can be configured perfectly and still have no enhanced-conversion match for that visitor.
That is why enhanced conversions are not just a Google Ads setting.
You need the Ads setting, the conversion tag, the customer data, and the consent signal all working together.
How to Stop Duplicate Google Ads Conversions With Transaction ID
If Google Ads is reporting more purchases than WooCommerce, duplicate conversions are one of the first things to check.
The fix starts with one value: transaction_id.
Send the WooCommerce order ID as the transaction_id on every purchase event.
Google can use that ID to recognize that two purchase events belong to the same order and count it only once.
Combined with the conversion count setting from Step 1, this closes one of the biggest gaps in WooCommerce tracking.
Then check these three common duplication points:
| Duplication point | What it looks like | Fix |
|---|---|---|
| Thank-you page reloads | Customer refreshes, bookmarks, or hits Back | Send transaction_id; check custom thank-you page URLs |
| Two systems firing | GTM and a plugin both send purchase | Pick one system, switch the other off |
| Order status changes | Fires at payment_complete and at completed | Confirm which status change triggers your tag |
The rule is simple: one order, one transaction ID, one purchase conversion.
Why Google Ads Conversions Don’t Match Your WooCommerce Orders
Google Ads and WooCommerce are not supposed to match perfectly. They measure different things.
The useful question is "Can I explain the difference?" instead of "Why are these numbers different?"
Here are the seven causes worth checking, starting with the ones we would look at first.
| Cause | How to confirm | Fix |
|---|---|---|
| Conversions are dated to the ad click, not the order | Compare a fixed date range in both systems, then shift the Google Ads range back by your conversion window | None needed. Compare on click date or accept the lag |
| Only ad-driven orders appear in Google Ads | Check Woo order sources: direct, organic, email, and returning customers are all absent from Ads | None needed. Google Ads is not a sales report |
| Ad blockers and browser tracking prevention | Gap concentrated in Safari and Firefox traffic in GA4 | Turn on enhanced conversions. Consider first-party tag serving |
| Consent denied in the EEA and UK | Consent mode status and modeling uplift in the Diagnostics tab | Advanced consent mode, so denied users still send cookieless pings |
| The tag fired twice | Google Ads count is higher than Woo, often close to double | Pass order ID as transaction_id, set count to one, remove the duplicate tag |
| Value includes or excludes tax and shipping | Compare conversion value against order subtotal, then against order total | Decide which number you want to bid on and make the tag send it consistently |
| Refunds and cancelled orders still count | Conversion value stays flat while Woo revenue drops | Upload conversion adjustments for refunds, or accept a known overstatement |
As a rough benchmark, we would expect Google Ads to report somewhere around 70% to 100% of the ad-driven orders WooCommerce recorded.
The exact gap depends on things like consent rates, browser mix, and how much traffic you are buying.
If you are consistently above 100%, look for duplicates.
If you are consistently below 50%, stop blaming attribution or modeling. Something is probably broken.
Troubleshooting: Not Firing, Firing Twice, or Missing Value
- The tag never fires
The usual culprit is a URL trigger watching /checkout/order-received/ when the store uses a custom thank-you page.
The URL you are watching may never load. Switch to an event-based trigger instead.
- It fires on PayPal but not Stripe, or vice versa
Payment gateways don't all return customers to your store the same way.
Some send the customer back through a different URL. Some may not return them at all. Test each gateway separately.
This is where order-based tracking has an advantage.
If the conversion is tied to the WooCommerce order rather than a page view, it is much less dependent on what happens in the browser after payment.
- The conversion shows a value of 0
Usually, the value variable is empty, or the tag fires before the order data is available.
Do not just check whether the tag fired. Check the actual payload and confirm the order value is being sent.
- The currency is wrong
Your WooCommerce store may have USD as its base currency while the customer actually paid in EUR or GBP.
Send the currency and amount actually charged, not whatever the store default is.
- Everything looks right, but Google Ads shows nothing
Check the conversion action itself. Make sure it is included in the goals your campaigns are using for bidding.
A perfectly configured tag won't help if Google Ads isn't using that conversion action.
Check the goal assignment before you start rebuilding your tracking.
Frequently Asked Questions (FAQs)
Not by default. The base tag records that a conversion happened, but you must pass the order total to it dynamically for it to report revenue.
A data layer plugin or a WooCommerce tracking plugin supplies that value.
Yes. GA4 import, Google for WooCommerce, GTM4WP and FunnelKit’s free version all support Google Ads purchase tracking at no cost.
Paid tiers generally add server-side tracking and support, not basic conversion tracking.
A plugin is enough for purchase and add-to-cart tracking.
Reach for GTM when you need product-level cart data for Shopping campaigns, custom triggers, or one container shared across several tracking platforms.
Allow up to 24 hours for reporting to update because it takes longer when importing from GA4.
Conversions are credited to the click date, so a sale today can land against a click from last week.
It depends on the method. Tags triggered by a thank-you page URL routinely miss orders where the customer closes the tab before returning from the gateway.
Server-side tracking that reads the completed order handles redirect checkouts far more reliably.
You can drop the gtag snippet into your thank you page template with a hook, passing the order total and order ID as the value and transaction ID. We do not recommend it.
The snippet breaks on theme updates, and you lose enhanced conversions and consent handling unless you build those yourself.
For most stores, our answer is no.
Server-side tracking moves tag execution out of the browser, so it can recover conversions that ad blockers, Safari, and other browser restrictions would otherwise lose. But you pay for that recovery.
You need a server-side container to host, a domain to configure, and another layer of tracking that someone on your team has to understand when it breaks at 11 pm.
There is a middle option now.
Google Tag Gateway serves Google tags as first-party scripts from your domain, solving part of the problem without a full server-side build.
Go server-side when a 10% measurement gap is worth four figures a month to you, when you are already running Meta server-side, or when your traffic skews heavily to Safari and ad-blocker-heavy segments.
If you advertise to visitors in the EEA or UK, Consent Mode v2 is effectively part of the setup now.
Since March 2024, Google has required the updated consent signals for certain advertising and measurement features in those regions.
If you don't send them, Google may limit some Google Ads features and conversion measurement for that traffic.
Consent Mode passes four signals from your consent banner to Google tags: ad_storage, analytics_storage, ad_user_data, and ad_personalization.
When a visitor denies consent, Google tags can still send limited, cookieless signals instead of going completely silent.
Google can then use those signals for conversion modeling to estimate conversions it couldn't directly observe.
Google says advanced Consent Mode can recover significantly more modeled conversions than basic implementation, and its Consent Mode modeling documentation explains the eligibility requirements and thresholds.
Install a Google-certified consent platform, make sure it sets the default consent state before your Google tags load, and verify that all four signals pass correctly.
Then check the Diagnostics tab for your purchase conversion action.
If Consent Mode isn't showing a status there, a common cause is setting the consent state after the Google tag has already loaded. By then, Google has already missed the initial consent signal.
Maximize Your Google Ads ROI with Seamless WooCommerce Conversion Tracking
Set this up properly and Google Ads has much better data to work with.
Your bids, budget shifts, and Performance Max decisions are based on the orders and revenue you actually send it, not a conversion count with half the story missing.
The setup does not need to become a week-long project.
Add the transaction ID, turn on enhanced conversions, and run one reconciliation against your WooCommerce orders.
Give it a few weeks, and you will have a much clearer answer to the question that matters: is the gap normal measurement loss, or is something actually broken?
One last thing matters if your store has a more complicated checkout.
If you use custom checkout pages, order bumps, or post-purchase upsells, FunnelKit Funnel Builder can fire the purchase conversion from the completed WooCommerce order instead of relying on a page URL.
That makes the tracking less dependent on what happens in the browser after payment and helps keep the final order value intact.
It also lets you create high-converting checkout pages and sales funnels, and track conversions from Google Ads to your WooCommerce website.
Plus, FunnelKit’s site-wide event tracking lets you track user activity from the moment they land on your website.
Don’t leave your ad dollars to guesswork. Elevate your WooCommerce store with FunnelKit Funnel Builder today and unlock the true potential of your Google Ads campaigns! 🚀

Editorial Team
September 23, 2026A tripwire funnel is one of the most powerful tools in digital marketing, and also one of the most misunderstood. In our experience helping thousands of WordPress businesses build sales...

Editorial Team
September 22, 2026WooCommerce checkout with Elementor can match the rest of your store, but making it convert well takes more than a design change. Think about a store that redesigns its checkout...

Editorial Team
September 21, 2026A lead generation funnel is the path a stranger takes from their first click to becoming a contact you can follow up with, and eventually, ideally, a customer. Most businesses...






