Google Ads conversion tracking for WooCommerce – How to setup?
Learn to setup Google Ads conversion tracking for WooCommerce purchases using Google Tag Manager and GTM4WP.
This page describes GTM4WP 2.0.0 and newer. Where the legacy 1.x versions of the plugin behaved differently, the older behavior is marked with a bold GTM4WP 1.x: lead-in.
Easy task at first glance
Setting up conversion tracking does not seem to be a complicated task. You create your conversion tag in the ad management platform, you usually get some unique IDs. A new tag here, a pageview trigger with your “thank you” page URL there and you are all set up. Easy, isn’t it?
Well, that might be the case for many conversion events but not in your WooCommerce shop if you setup your Google Ads conversion tracking code. Let’s have a look at the Google Ads (AdWords) conversion tag options in Google Tag Manager back in 2014:
Conversion ID and label is generated by Google Ads itself. You might have one challenge with adding the end total value of the order. Now open your Google Tag Manager container for editing and add a Google Ads Conversion Tag. You will see something like this:
And then you just look at the options and you feel like this:
But no worries: this article will guide you through these options. It will show you how to setup your Google Ads conversion tracking in your WooCommerce shop with Google Tag Manager and GTM4WP.
Most of the work is already done for you. The GTM4WP container template ships a conversion tag called Google Ads – Conversion – Purchase with every field below already pointing at the right variable. What remains is to enter your own IDs and to decide which optional sections you want to keep.
Ingredients to setup Google Ads conversion tracking
Before you open the tag, go through these steps:
- Create your Google Ads conversion code and have your conversion ID and label at hand
- Open the GTM4WP plugin settings page, go to the WooCommerce section and turn on Track e-commerce in the General group. This is the master switch of the whole WooCommerce integration
- In the same section, open the Data layer content group and turn on Order data in data layer. The discount and shipping fields below read the order from the data layer, and they stay empty without it
- Import the GA4 container template as shown in the GA4 tracking setup article
GTM4WP 1.x: both plugin options live on the Integration->WooCommerce tab.
Step 1: enter your conversion ID and label
Open the Google Ads – Conversion – Purchase tag created by the import.
- Conversion ID: this ID is unique to your Google Ads account. Whenever you create a new conversion tracking code or a remarketing tag in the same account, the conversion ID will be the same. This is why it is worth storing in a “Constant” type variable. The template already does that: edit the Google Ads Conversion ID constant in the Variables section and replace the AW-XXXXXXXXX placeholder
- Conversion Label: this is unique to the tracking tag, so it is not stored in a variable. The template ships it as the literal text REPLACE_WITH_YOUR_DATA inside the tag. Nothing in the Variables list points at it, so it is easy to miss. Open the tag and type your own label over it
Step 2: purchase related variables
The next three fields are already filled in by the template. This is why ecommerce data in a data layer is so useful: you can read it in a unified way that does not depend on the site or the ecommerce platform.
- Conversion Value: the total revenue of the order. It is stored in the data layer under ecommerce.value, and the tag reads it through {{Ecommerce Value}}
- Transaction ID: this parameter de-duplicates conversion values in Google Ads and prevents tracking of the same order multiple times. It is also mandatory for conversion adjustments, which let Google Ads optimize bids towards your ROI goals rather than net revenue. It is stored under ecommerce.transaction_id and read through {{Ecommerce Transaction ID}}
- Currency Code: if your customers can buy in different currencies, it is important to let Google Ads know what currency to use when calculating the conversion value. It is stored under ecommerce.currency and read through {{Ecommerce Currency}}
Step 3: Provide product-level sales data (optional)
This step is not mandatory for conversion tracking to work, but it gives you additional reports in Google Ads. With conversion reporting with cart data you can see which product ads drove sales to which products on your site.
The template turns the “Provide product-level sales data” box on and fills in the fields below. Three of them need your own values.
- Data Source: “Custom Fields”. GTM4WP does not write the merchant ID, feed country and feed language into the data layer, so the “Data Layer” option would find nothing to read
- Merchant ID: your Google Merchant Center ID. Open your GMC account and look at the top of the page, in the account selector dropdown, next to the account name. Enter it in the Google Merchant Center ID constant
- Feed Country: the country associated with the feed where your items are uploaded, as a territory code such as US. Enter it in the Google Merchant Center Feed Country constant
- Feed Language: the language associated with the feed, as an ISO 639-1 code such as en. Enter it in the Google Merchant Center Feed Language constant
- Discount: the total amount of discount in the order, read through {{Order Data – Total Discount}} from orderData.totals.total_discount. If you want a value even when the order carries no discount, open that variable and set its default value to 0
- Items: the product IDs, prices and quantities in the order. The format is exactly the same as the product data in GA4 ecommerce, so the tag reads {{Ecommerce Items}}
Step 4: Provide new customer data (optional)
This step is optional as well, and it gives you an advantage in your Shopping and Performance Max campaigns: you can bid differently for people who have never bought from you. In your campaign settings you can attach a separate, usually higher, value to new customers.
The template turns the checkbox on and selects “Data Layer” as the data source. Nothing else is needed. GTM4WP writes the new_customer parameter at the top level of the purchase event, which is where the Data Layer option looks for it.
The plugin decides new against returning by asking WooCommerce whether the buyer has an earlier paid order.
Step 5: Provide shipping data (optional)
This section lets you show in your Shopping ads that you ship quickly and free of charge. Google validates the claim against the shipping data your conversion tag sends. It requires a Merchant Center account with products in the United States, Australia, Brazil, Canada, India, Japan, the United Kingdom or New Zealand.
- Shipping Postal Code: the postal code the goods are shipped to, read through {{Order Data – Shipping Postal Code}} from orderData.customer.shipping.postcode
- Shipping Country: the country the goods are shipped to, read through {{Order Data – Shipping Country}} from orderData.customer.shipping.country
- Shipping Cost: the amount your customer pays for the shipment, read through {{Order Data – Shipping Cost}} from orderData.totals.shipping_total
- Estimated Delivery Date: the one field GTM4WP cannot fill. It is not present in the data layer, because it depends on your carrier, your cut-off times and the destination. You will need a Custom JavaScript variable in your container to calculate it
WARNING!
The template ships the Estimated Delivery Date field as the literal text REPLACE_WITH_YOUR_DATA. This is the placeholder worth checking first. A missing merchant ID or conversion label makes the conversion fail in a way Google Ads reports back to you, but an unreplaced delivery date is a well formed string that gets sent as real data. If you are not going to use this section, turn the shipping data checkbox off rather than leaving the placeholder in place.
Step 6: Enable Restricted Data Processing if necessary
Restricted Data Processing changes how Google Ads processes data for users who opt out under the U.S. states’ privacy laws. Google’s guidance covers California, Virginia, Colorado, Connecticut and Florida, so this is no longer a California-only question.
The template leaves this setting off. There is no single correct way to turn it on, because the value depends on the consent banner on your site and the choices you offer your visitors. Each consent platform stores consent states in its own 1st party cookies, so no one solution works with all of them.
Step 7: the purchase trigger
The container template creates a trigger named Event – Purchase and attaches it to the conversion tag, so there is nothing to do here.
If you build the trigger yourself, use the type Custom Event with the event name purchase. Check your container for an existing one before creating a duplicate.

Enhanced Conversions
To setup the User-Provided data section, please read the separate guide to Enhanced Conversions.
Check your work before you publish
Open Google Tag Manager preview mode and place a test order. On the purchase event, check that the conversion tag fired and that no field still contains REPLACE_WITH_YOUR_DATA, AW-XXXXXXXXX or ADD_YOUR_GMC_ID. After publishing, the cart data diagnostics in Google Ads is the place to confirm that product-level data arrives as expected.
Google Ads conversion tracking is easy to setup
Though not all options are available immediately, most of them can be setup very quickly and without programming knowledge. Delivery time is one exception but hopefully you will have someone to help with that too.









