How do you set up Google Ads Enhanced Conversions Server Side?
The discussion of online data protection has been booming in recent years. With restrictions on third-party cookies, obtaining targeted advertising data is becoming increasingly challenging. Many companies are therefore opting to use first-party data. In this context, Google has introduced Enhanced Conversions. We'll show you how to set up Google Ads Enhanced Conversions Server Side in Google Tag Manager.
What are Enhanced Conversions?
Enhanced Conversions is a feature within Google Ads that improves the accuracy of conversion metrics. It allows advertisers to send additional data, such as email addresses and phone numbers. This data is hashed via a one-way hashing algorithm (SHA256) to ensure user privacy.
Why Have Enhanced Conversions Launched?
With the demise of third-party cookies, Google has less access to conversion data. Enhanced Conversions make it possible to move from third-party data to first-party data, reducing Google's reliance on outside parties.
No Cookies, Yet Data?
Enhanced Conversions work even if a website visitor decides not to accept cookies. By using the "URL pass-through" option, the necessary data can still be sent to Google.
The Benefits of Enhanced Conversions
There are several benefits to using Enhanced Conversions:
- It is more privacy friendly
- Makes campaigns more efficient
- Provides insight into conversions that would not otherwise be measured.
In addition, it uses first-party data and CRM data for conversions.
Curious about the entire Google Ads SST set up? Then check out the Google Ads Server Side Tracking page.
How does Enhanced Conversions respect users' privacy?
Enhanced Conversions allows otherwise identifiable data to be securely transmitted to Google. Data is secured with a one-way hash algorithm called SHA-256.
The reason the data is hashed is to ensure that Google can only use the data for users who have already created a Google account. If the hashed data we send matches the hashed data of a user that Google already recognizes, Google can aggregate that user's journey until conversion.
If the hashed data we send does not match the hashed data of a recognized user, Google cannot reverse the hash to obtain the original email address, phone number or address, so the user's privacy is perfectly maintained.
Enhanced Conversions for Leads and Web
There are two variants of Enhanced Conversions: for the Web and for leads. The former focuses on improving online conversions, while the latter links offline conversions to online leads.
Enhanced Conversions for Web
Example:
- A user, logged into their Google account, sees your ad.
- They then visit your Web site via another route and complete a purchase or action.
- The conversion tag collects user data and sends it to Google.
- The hashed website data is compared with Google's data.
- If there is a match, the conversion can be attributed to your ad.
Enhanced Conversions for Leads
Here's another example:
- A user clicks on your ad and lands on your website.
- After browsing, the user decides to fill out a form to become a potential customer (lead).
- The details of this lead are stored in your Customer Relationship Management (CRM) system.
- When the lead converts, you can upload the first-party data to Google.
- Google then compares the uploaded first-party data with the hashed user data.
- If there is a match, the conversion can be attributed to your ad.
Google Ads Enhanced Conversions Server Side Setting GTM
In this article, we explain how to set up Google Ads Enhanced Conversions for web Server Side in Google Tag Manager. In this example, we use Purchase as the event, but this can theoretically be done on any event, as long as there is user data.
1. Check Enhanced Conversions Google Ads.
The Enhanced Conversions checkbox must be checked for the event where you want to add this. Within Google Ads, go to Conversions --> Details --> Enhanced Conversions. Make sure the Turn on Enhanced Conversions is checked.
2. Data Layer variable creation (Web Container).
When this is checked we are going to create a Data Layer Variable in GTM. Go to Google Tag Manager Web Container --> Variables --> New. Then give the Variable a name, for example User properties.
3. Data Layer variable setting (Web Container).
Next, choose Data Layer Variable as Variable Type by clicking Variable Configuration. Under Data Layer Variable Name, enter the name of the variable you want to read. In a standard GA4 setup, this often refers to user properties, meaning that the data layer contains information about users. In many cases, this is referred to as user_properties. It is important to check this, though, because the exact name can vary.
Example data layer with user properties with data layer information:
window.dataLayer.push({
'event': 'purchase',
'ecommerce': {
'transaction_id': 'T12345',
'affiliation': 'Online Store',
'value': 69.98,
'currency': 'EUR',
'tax': 5.00,
'shipping': 5.00,
'coupon': 'TESTCOUPON',
'items': [{
'item_id': 'SKU12345',
'item_name': 'Cool T-Shirt',
'item_category': 'Apparel',
'item_variant': 'Blue',
'price': '19.99',
'quantity': 1
}],
'user_properties': {
'email': '[email protected]',
'phone_number': '+11234567890',
'address': {
first_name: 'John',
last_name: 'Doe',
street: '123 Lemon',
city: 'Some city',
region: 'FR',
country: 'NL',
postal_code: '12345',
},
}
}
});
To be sure how your data layer is structured, you need to test it. Open GTM's preview mode and run a test to see how the variables in your data layer are named. Test and go to the Event --> Container Loaded --> Data Layer and then check how it reads. This way you can confirm if it is indeed user_properties or if another name is used. Then click Save to save the Variable.
4. Creating User-Provided Data Variable (Web Container).
Once you have created the Data Layer Variable you need to link it to another variable. Again, create a Variable. Then give it a name, for example: All user data.
5. Setting User-Provided Data Variable (Web Container).
Under Variable Type, choose User-Provided Data. Then under Type, choose Code and add the Variable you just created here (Step 3) under Data source.
6. GA4 Event Tag (Web Container).
Go to Tags and go to the Event where you want to use Enhanced Conversions. In this case, we'll use the Purchase Event. Haven't created an event yet? Then check out our blog on how to create e-commerce events in Google Tag Manager.
7. GA4 Event Tag setup (Web Container).
Scroll to Event Parameters and then add user_data and as Value the variable you just created (step 4). The work in the Web Container is now complete.
Thanks to the new update to Google Ads, you don't have to set this up separately in the server container anymore.
10. Testing Preview mode
When you want to test Enhanced Conversions Server Side, you start by running a Test Event on your website. After activating this event ( Purchase, for example), navigate to the Event Data section in Google Tag Manager's Preview Mode. Within this data, search specifically for the term user_data. It is important that the information you see under user_data is displayed correctly as shown in the screenshot below. This confirms that the data is configured correctly and being sent to Google Ads in the correct way. The display of this data should match the example below.
11. Checking Enhanced Conversions in Google Ads.
To check if Enhanced Conversions is working, you can go to Google Ads --> Conversions --> Conversion (purchase) --> Diagnostics. Here you will then see the status of Enhanced Conversions. Note that it may take 24 to 48 hours before you see a different status here.
Conclusion
Now that you have Google Ads Enhanced Conversions Server Side set up, you have the opportunity to take your ad campaigns to the next level. This feature, aimed at optimizing conversion metrics, emphasizes first-party data. In doing so, it provides an answer to the complications created by the elimination of third-party cookies.
Frequently Asked Questions
Enhanced Conversions does not work through the server container
This is often the solution: add User_data parameter to GA4 event tag(s) in web container