top of page
  • Writer's pictureAlfred Simon

Enhanced Conversion Manual Setup with GTM - Step-by-step Guide.

Updated: May 13, 2023

Have you heard these words somewhere: privacy, cookies, and user tracking?

Well, of course, you did.


These three words have been mentioned a lot in recent years. Marketing giants like Google and Facebook face strong pushback from the public regarding user tracking and online privacy.

They are forced to find privacy-friendly solutions but keep ad targeting and tracking as accurate as possible.

One of these solutions is Google's Enhanced Conversions. A way to help Google Ads track conversions in a more privacy-friendly way.


Table of contents


No time for reading it? Watch the video!

What is Enhanced Conversion and how does it work.

The main goal of Enhanced Conversions is to improve Google Ads conversion tracking in a privacy-safe way.

It matches first-party data (exp: email) to the Google database. The provided first-party data is hashed before sending it to Google. They use the SHA-256 hashing algorithm, which converts plaintext into ciphertext.

Enhanced Conversion SHA-256 data hashing

Keeping the data hashed makes it privacy-safe.

How does it work?

  1. A user logged into their Google profile searches for "men's shoes".

  2. They click on a search ad and later make a conversion

  3. The Google Ads conversion tag captures a provided first-party data variable: email, phone number, address, etc. (Note: email is required, the rest is optional)

  4. The first-party data is hashed using the algorithm and sent to Google.

  5. Google then matches the data to their database and reports the conversion in the Google Ads account.

Enhanced Conversion Explained

But before wasting any time, let’s jump right into the setup.

How to manually set up enhanced conversions

Before starting with the setup process, make sure you have the following things ready:

  • Access to the correct Google Ads and Google Tag Manager account.

  • Make sure you can place a test order or make a test lead action.

  • Ensure first-party data is available on the page (or in the dataLayer) where the conversion tag is triggered.

  • You or your web developer is ready to make minor changes to the website or to the dataLayer events.

Step 1. Enabling Enhanced Conversions in Google Ads

Go to your Google Ads account where you want to implement the enhanced conversion (EC) and navigate to the conversion tab.

Navigate to Google Ads Conversion menu

Select the conversion action where you want to use EC.

Select Google Ads Conversion Action

When you open the conversion actions settings, look for the "Enhanced Conversions" drop-down menu.

Enable Enhanced Conversions in Google Ads

Click on "Turn On Enhanced Conversions. Accept the Google Terms and Select "Global site tag or Google Tag Manager''. Finally, click on "Next".

Use GTm method for Enhanced Conversions

Fill in your website and click on "Check URL".

Save Enhanced Conversions Setting in Google Ads

After that, you can go to your Google Tag Manager account. The rest of the setup will take place there.

Step 2. Implementing Enhanced Conversions using a CSS selector

Once we have enabled EC in the corresponding conversion, we can perform the implementation in Google Tag Manager.

Note: I assume the Google Ads Conversion Tag is already running in your GTM account. If you need help with that, check out this great guide from Analytics Mania.

Step 2.1. Make a test order to locate the correct CSS element.

Note: If you know which CSS element contains the first-party data, you can skip this step and go to step 2.2.

Make a test order using the GTM’s Preview mode.

To benefit from all the benefits of the preview mode I recommend installing the Google Tag Assistant Chrome extension.

Open GTM preview mode

To find the correct CSS element, I use SelectorGadget. This is an excellent tool for this.

A quick tutorial and the tool itself you will find on this page.

Locate the correct CSS element, copy the CSS selector and head back to the GTM account.

Find the CSS selector on Thank you page

Step 2.2. Create the CSS Selector DOM variable.

After locating the correct CSS element, we can create the CSS selector variable.

Go to Variables, then create a new variable.

Create CSS Variable

You will need a "DOM Element" GTM variable.

Create DOM Element Variable

As Selection Method you will need to use "CSS Selector" from the drop-down menu. Then paste the CSS selector, which you copied from the SelectorGadget, to the "Element Selector" field.

Finally, name your variable for something you like and save the changes.

I named mine CSS Selector - Email to keep things simple.

Use CSS selector from Thank you page

Step 2.3. Create the User-Provided Data variable.

Create a new variable.

Create the User-Provided Data variable.

Select the User-Provided Data variable.

Select User-Provided Data variable.

Under the Manual configuration, select the CSS selector variable we created in the previous step.

Manual configurate User-Provided Variable

Note: There are other first-party data options that you can share: phone number, name, address, etc. You don't have to use all of them!

Email is a must. The rest is optional. The more, the better.

I found that when you fill in the first name, you have to enter the other details otherwise it doesn't work properly. When I used only email, it worked just fine.

Name your Tag and then save it.

Step 2.4. Add the User-Provided Data variable to the Conversion tag.

Go to the Tags and select your Google Ads Conversion Tag where you want to implement it.

In the conversion tag's settings, tick the box: Include user-provided data from your website.

Add the enhanced conversion variable we created in step 2.3.

Add Enhanced Conversions variable to Conversion Tag

Save the changes, and test them.

Step 3. Test the new implementation.

There are two easy ways to test the newly implemented enhanced conversions.

The second option comes in handy if you have little or no experience with GTM and have asked someone to implement enhanced conversions and want to make sure it works.

Method 1. Testing the enhanced conversions using GTM's preview mode.

Make a new test order using the GTM's preview mode.

Test Changes in Preview mode

Locate the dataLayer event which triggers your conversion tag.

In my case, it is the Pageview event, so when someone visits the thank you page.

Find the triggered Conversion Tag

Click on the tag. In the details, make sure you select values.

You will see in the tag details that the cssProvidedEnhancedConversionValue contains the email address.

Check Tag Details in Preview mode

The implementation is ready.

You can publish the new GTM version.

Method 2. Testing the enhanced conversions using the developer console in Google Chrome.

Open the developer console in Google Chrome.

Right-click on the page > Inspect.

Make a test order. After that, navigate to the Network tab in the developer console. Copy and paste your Google Ads conversion label into the search tab.

Look for the conversion event. Usually, the initiator is conversion.async.

Test changes in Developer Console

Click on the event, and under the Payload tab look for the em parameter. The parameter should have the hashed first-party data. In my case, the email address.

If the em parameter is empty, that means the implementation is not working, and you don't send the enhanced conversion data to Google.

Check em: paramater value

Step 4. Publish the new Google Tag Manager container version.

After the successful implementation, we have only one step left.

To publish the new container version with the changes.

Publish GTM container version


The strict privacy rules are making the job of PPC specialists and other online marketing gurus a lot harder. Besides the smaller companies, giants like Google and Facebook also struggle with the rising online privacy concerns.

New features and efforts such as enhanced conversions help us, marketers, to have valuable data.

Let me know if this guide was valuable to you. If you get stuck or struggle to get this working, feel free to contact me. I'm more than happy to help.

Have a good one,


1,788 views7 comments

7 komentářů

Kostas Efthymiou
Kostas Efthymiou
07. 1. 2023


Followed all the steps and I got a message in Google Ads

"Setup has incorrect data formatting

User data (email, phone number, and address) isn't correctly formatted and hashed."

Any ideas?

Many thanks,


To se mi líbí
Alfred Simon
Alfred Simon
09. 1. 2023
Reakce na

Hi Kostas, Thanks for reaching out! This error message comes up when you use the wrong variable as email, or you send hashed data directly. I would make sure that the variable you sue for the e-mail is correct. Make sure to test it properly in debug mode. Also make sure that you use unhashed data. You don't need to hash the e-mail. That will be done by Google before they store the e-mail on their servers. Hope this makes sense! Let me know if you still have issues! Thanks you, Alfred

To se mi líbí

Alfred Simon
Alfred Simon
25. 11. 2022

Hi, Sounds like you have some issues with the variables. If I read your reply I get the feeling that something is going wrong with the CSS selector and the way you try to capture the email and phone number from the website. If you want, feel free to drop a small recording or screenshots from your setup via the contact form. So I can take a better look at it. Happy to help, Alfred

To se mi líbí
28. 11. 2022
Reakce na

Thanks for your answer.

I know very little about programming so it is not clear to me what the problem is or what I should do.

In any case, I appreciate that you took the time to respond.

Thank you very much again.

To se mi líbí

24. 11. 2022


Thanks for the tutorial. I turned on advanced conversions and set it up in Google Tag Manager.

Google Ads then gave me the error "Missing user data fields". I called Google support and they indicated that they did not come what the problem was but that they could not provide support.

After a few days, without making any changes, the error that appeared in Google Ads changed to "Settings have incorrect data format" User data (email, phone number, and address) is not in the correct format or the proper hash encoding."

When I testing the conversion in Tag Manager, this appears: in the cssProvidedEnhancedConversionValue object field

{email: "null", phone_number: "null", _tag_mode: "MANUAL"}

I don't understand why the parameter is…

To se mi líbí
bottom of page