Enhanced Conversions Server-side Google Ads not working

I’ve been implementing Server-side tracking for one of our clients, everything seems to be working FACPI, GA4 SS container and Google Ads Conversion tracking. However I cannot seem to send Enhanced Conversion data to my Server-side Google Ads conversion action.

I used the following guide Server side Conversion tracking in Google Ads for implementation. But I believe the video’ and information in this guide is not adequate. The video cuts short at the end where I believe we are supposed to test the Enhanced Conversions implementation and see the correct event_data + user_data for the purchase hit.

From what I’ve gathered I think the problem is as followed for my implementation:
[sGTM] = Web Google Tag Manager
[server] = Server-container

  1. We use the GA4 SS Configuration tag in the [sGTM] container to send user_data to the server-container.
  2. In the [server] container we use the Google Ads Conversion tag + Conversion Linker, with the ‘include user-provided data’ setting enbaled.
  3. Google Ads Conversion tag is currently being fired on the following trigger: Client = Data Client Event = purchase
    a. Before I had this trigger on the normal GA4 SS purchase event. However I tried using the Data Client to
    resolve this issue.

[sGTM] GA4 SS Configuration

[sGTM] Data Client

[server] Google Ads tag

[server] Pageview on order page containing user_data

[server] Purchase not containing user_data GA4 SS Ecommerce Events

Google Ads (Enhanced Conversions is enabled in this tag + the EULA is accepted in the account)

Problem:
user_data is defined on the GA4 SS Configuration tag and not the GA4 SS Ecommerce Events tag. So user_data is available in the event_data for the pageview, but not for the purchase event.
However this is how every guide for Enhanced Conversions for Server-side explains how to implement it.
(In my case the only difference is that now I am using the Data Client instead of the GA4 Client, but I’ve tried the GA4 Client and had the same problem)

Possible solution?:
Fire the [server] Google Ads Conversion Tracking tag on the page_view containing the user_data, however because the purchase data is defined after, this is not possible without a workaround. I could store the user_data maybe and once the purchase event has fired append this user_data to the purchase data?

Could anyone possibly explain what the best solution would be to get Enhanced Conversions working for this implementation? If more information is required please ask and I will do my best to provide this information.

Kind regards,

Ruben

1 Like

add tag sequencing for ga4 purchase and you’ll be good to go.

the reason for your lack of user_data on GA4 purchase hits, is because most likely it fires before Config, you can also explicitly add your user-collected variable under user_data key in GA4 purchase tag

@NeoSEM_B.V , did you find any possible solution? Setup Google Ads Enhanced Conversion Tracking on both sides (Browser & Server-Side). Create DLV for ‘user data’. Create a ‘User-Provided Data’ variable. But don’t map the ‘user-data’ manually in the ‘User-Provided Data’ variable. Check ‘the Automatic’ option. And also check ‘Include User-Provided Data’ in Server Container (Google Ads Enhanced Conversion). Set GA4 as Client in Server Container.

User-Provided Data in Web Container

Hope it’ll help you & solve your issue…

Hey Raju,

Thank you for the reply. Automatic collection only seems to match a string for an email, so this will not add other user_data such as firstname, lastname etc.

As you can see here:

I’ll be testing the above solution from Dan as of today, I made a small mistake before the weekend of not changing the Client from the Data Client back to the GA4 client. I’ll report on any changes in the next few days.

Thanks again,

Ruben

Hey Dan,

I’ve implemented the suggested solution, after adding tag sequencing I do see the user_data in the [server] purchase event. I’ve also changed the client back to the GA4 client.

I’ll monitor the solution for the next few days and report back if I see any changes.
Thank you for the swift reply.

Kind regards,

Ruben

1 Like

Solution seems to be working.

1 Like