Enhanced Conversions for Google Ads with WooCommerce – How to setup?
What is this article about?
Measuring conversions with cookies alone has become less reliable. Browser tracking protections, shorter cookie lifetimes and consent requirements all mean that some of your conversions can no longer be connected to the ad click that produced them. Google’s answer is Enhanced Conversions, which measures conversions rather than complete user journeys. You can read more about this feature in the Google Ads Help Center.
It is worth correcting one common misconception about why this feature exists. Google confirmed in 2025 that it will not remove third-party cookies from Chrome, so Enhanced Conversions does not replace cookie-based measurement. It recovers the conversions that cookie-based measurement misses.
This article focuses on configuring Enhanced Conversions using WooCommerce 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.
WARNING!
This guide doesn’t consider whether you’re utilizing a Consent Management Platform (CMP). The steps to ensure the privacy of your measurement setup often rely on your chosen CMP. Reach out to your CMP’s support team for assistance. Remember: just because you are using a cookieless solution, you might be still required to obtain user consent.
If you use Google Consent Mode, user-provided data is subject to the ad_storage consent state. You must also accept the customer data terms in your Google Ads account before Google processes any user-provided data.
How does Enhanced Conversions work?
By employing this method, you can incorporate user identifiers collected as first-party data in your conversion tracking tag. Google can then utilize these identifiers to link a user’s paid ad click with the conversion action occurring on your site.
As you’ll observe, we are sharing personal data with Google, and therefore, even though the data will be encoded before sharing, you may need to obtain consent from your user before proceeding. This article won’t guide you on setting up enhanced conversions exclusively for consented users, as the configuration relies on the operation of your Consent Management Platform (CMP).
When a user clicks on a Google ad, Google can verify if this user has an active logged-in Google session in the same browser, storing the ad click information in the user’s Google profile without utilizing any cookies. If the ad directs the user to your website, they can navigate through your pages, and if needed, complete a conversion, typically placing an order (a purchase conversion action) in WooCommerce.
Enhanced Conversions mandates the inclusion of personal data from the converting user in the conversion tag. You must send at least the email address, and if possible, include the phone number, first and last name, and zipcode (postcode). This enhances Google’s chances of locating the corresponding user in its profile directory.
It’s crucial to note that sensitive data, such as email addresses, phone numbers, and names, undergo encoding before transmission to Google. You can also provide the encoded values directly if you prefer not to rely on the conversion tag’s encoding mechanism, and this is what GTM4WP does: the plugin hashes these fields on your server, so the plain values never reach the browser. The encoding employs the widely accepted SHA256 algorithm, ensuring that the data remains secure. Hashing, a specific form of encoding, ensures that the encoded data is consistent for a given input but cannot be decoded into the original data.
Why is this important?
This process is significant because it guarantees that Google doesn’t acquire new data while tracking conversions on your website. If the submitted email address isn’t present in Google’s profile directory, Google won’t have access to the email address of this unknown user. Only if the email address exists in Google’s directory can they encode the same email address and compare the encoded data. In the event of a match, Google identifies an existing data point without gaining access to the actual data.
How to setup Enhanced Conversions in your Google Ads Conversion Tag?
This guide assumes that your Google Ads conversion tracking is already configured, at a minimum, using your conversion ID, label, and order value. The inclusion of cart tracking and other advanced options is not necessary for Enhanced Conversions to function.
Step 1: Turn on customer data in the data layer
Enhanced Conversions needs identifiers that belong to the person who placed the order. GTM4WP builds them from the order and writes them into the data layer as a ready-made user_data object, but only when the following options are on.
- Open the GTM4WP plugin settings page and go to the WooCommerce section
- In the General group, check that Track e-commerce is on. It is the master switch of the whole WooCommerce integration, and nothing below reaches the data layer without it
- Open the Data layer content group
- Turn on Customer data in data layer
- Save the plugin settings
The label of the second option is easy to misread. It also adds the stored account details of logged-in customers to every page, but it is the same option that attaches user_data to the purchase event. That object is built from the order rather than from a customer account, so guest checkouts are covered too.
With the option off there is no user_data in the data layer, the variable you import in the next step stays empty, and your conversion sends no user-provided data. Google Ads does not report this as an error. Open Google Tag Manager preview mode on an order received page and check that user_data is present on the purchase event.
GTM4WP 1.x: the user_data object does not exist. Turn on the “Order data in data layer” option on the Integration->WooCommerce tab instead, and build the User-Provided Data variable by hand as described at the end of Step 3.
Step 2: Import the container template
Import the container template linked in the first step of the GA4 setup guide. If you downloaded it before August 2026, download it again, because the current file ships the variables and the tag this guide uses.
The import creates a variable called User Data (Enhanced Conversions), which reads the user_data object, and a variable called User-Provided Data, which is the one the Google Ads tags accept. It also creates the “Order Data -” variables used by the manual route described below.
Step 3: Check the User-Provided Data variable
The container template ships this variable already configured, so there is nothing to fill in. Open it and confirm two things: the mode is Code, and the data source is {{User Data (Enhanced Conversions)}}.
Code mode passes the object to Google as it is, with no row by row mapping. GTM4WP writes user_data in the shape Google documents: sha256_email_address, sha256_phone_number, and an address block containing sha256_first_name, sha256_last_name, street, city, region, postal_code and country. The email address, phone number and names are hashed with SHA256 on your server. The address components travel as plain text, which is what Google expects for those fields. Any field that is empty in the order is omitted rather than sent as a blank value.
If you would rather decide field by field what leaves your site, switch the variable to Manual Configuration and select the imported “Order Data -” variables row by row. That route reads the orderData object, so it needs the “Order data in data layer” option instead of the one in Step 1. The email address is the one row you cannot leave empty.

Step 4: Send the data with your conversion
The data can reach Google Ads in two ways, and the container template already sets up the first one.
The template contains a tag named Google Ads – User-provided Data – Purchase. It sends the user-provided data on its own and needs nothing from you beyond your conversion ID, which it reads from the “Google Ads Conversion ID” constant. It fires on the “Event – Purchase” trigger, the same trigger as the conversion tag.
Do not connect the conversion and user-provided data tags with tag sequencing. Both belong on the purchase trigger. If the user-provided data tag ran as a setup tag, anything that stopped it, including a consent tool blocking it, could stop the conversion from firing as well.
Publish your container changes and you are done!
What changes in 2026
Google is consolidating how enhanced conversions are configured. From April 2026, Google Ads accepts user-provided data from website tags, Data Manager and API connections at the same time, so you no longer need to choose a single implementation method. From June 2026, the interface stops separating enhanced conversions for web from enhanced conversions for leads. Existing setups are migrated automatically, so a working Google Tag Manager configuration requires no manual change.

