Have you heard these words somewhere: privacy, cookies, and user tracking?
Well, of course, you did.
Everywhere!
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.
Keeping the data hashed makes it privacy-safe.
How does it work?
A user logged into their Google profile searches for "men's shoes".
They click on a search ad and later make a conversion
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)
The first-party data is hashed using the algorithm and sent to Google.
Google then matches the data to their database and reports the conversion in the Google Ads account.
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.
Select the conversion action where you want to use EC.
When you open the conversion actions settings, look for the "Enhanced Conversions" drop-down menu.
Click on "Turn On Enhanced Conversions. Accept the Google Terms and Select "Global site tag or Google Tag Manager''. Finally, click on "Next".
Fill in your website and click on "Check URL".
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.
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.
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.
You will need a "DOM Element" GTM 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.
Step 2.3. Create the User-Provided Data variable.
Create a new variable.
Select the User-Provided Data variable.
Under the Manual configuration, select the CSS selector variable we created in the previous step.
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.
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.
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.
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.
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.
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.
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.
Conclusion
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,
Alfred
Hello,
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,
Kostas
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
Hello,
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…