Drop GAds traffic and Consent Mode V2: all my conclusions

Drop GAds traffic and Consent Mode V2: all my conclusions


In this article I want to share my tests and my conclusions about Google Consent Mode V2 and drop traffic.

Two weeks ago I wrote a post asking for help to everyone worked with Google Ads remarketing.

First of all I want to say thank you for all community that responded to me..

I believe in karma and now it's the my turn to share my experience.


Article content

Why did I create this post?

Because after implementing v2 consent mode some customer feedback I saw a drop on the Gads audience.


Article content
The drop after March 13th

Note: I'm working A LOT with GTM Server-Side. We are partner of Stape.io (hi Denis Golubovskyi ) and we highly recommend this service, so the 95% of our GAds tracking works with server-side.


Before go ahead with all our tests and considerations, we need to explains some important concept (if you already know them, please skip forward to "The Google Consent Mode parameters in the GA4 and GAds hit" paragraph)


The Google Consent Mode V2

As you probably know since 7th March the Digital Market Acts is applied and it means if you want to use Google Ads you must implement Google Consent Mode V2.

What is Google Consent Mode V2? This is a short video:

You can use a Google-certified consent management platform (CMP), enable consent mode in your banner settings or you can paste in the web page the code.

Here an example.

<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID">
</script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  gtag('js', new Date());
  gtag('config', 'TAG_ID');
</script>

<!-- Create one update function for each consent parameter -->
<script>
  function consentGrantedAdStorage() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
  ...
  <button onclick="consentGrantedAdStorage">Yes</button>
  ...
</body>        

You can enable Consent Mode V2 in basic and advanced mode.

Basic = block all service if the consent is denied

Advanced = GAds conversions and GA4 hits will send without identifier parameters if the consent is denied

Consent Mode V2 advanced in a nutshell

If you want to use GAds Conversion, you must send 2 new parameters

  • ad_user_data
  • ad_personalization

Of course the thing is: Google wants always the conversion.

Wait a minute... what about the remarketing hit?

Answer: It only works if the user has given consent.

Simple. Easy. Crystalline


The official documentation about the Google Consent Mode parameters

How the official documentation explains these new parameters in Google Ads?

Let's see it together

Tag Manager documentation

This is the Tag Manager documentation: https://support.google.com/tagmanager/answer/13695607?hl=en

Article content
The new parameters explained in the official Tag Manager documentation

Important note:

Disabling personalized advertising using allow_ad_personalization_signals, yields the same results as using ad_personalization. If you set both parameters with conflicting values, personalization is disabled. To honor user choices, implement ad_personalization.

So now we have 2 parameters for the ad personalization:

  • allow_ad_personalization_signals
  • ad_personalization

If you use together, take care about their values, if they are in conflict the value is denied

Google Ads documentation

This is the Google Ads documentation:

https://support.google.com/google-ads/answer/9606827?hl=en

Article content
Spoiler alert created by ChatGPT


SPOILER ALERT: The documentation never mentions the new ad_personalization parameter but only the "old" parameter allow_ad_personalization_signals


Article content

In this first piece of documentation Google Ads tells me how to use allow_ad_personalization_signals to disable the ad personalization

The great key: this parameter IS TRUE BY DEFAULT.

This parameter doesn't disable the Google Ads Conversion (yeah, makes sense).

Article content

A code example to understand how to set up the false value. And if you use Google Tag Manager... there isn't the parameter or a configuration to handle allow_ad_personalization_signals.

You can do it only with Google Tag.

Article content
The allow_ad_personalization_signals

The small problem... this parameter is only valid for this hit and will not be handled by the next Google Ads Tags triggered after.

Ok.

But what about ad_personalization parameter? Is the same thing explained in the Tag Manager documentation?

Answer: boh, I don't know (for now).

So let's go to the next step.

The Google Consent Mode parameters in the GA4 and GAds hit

In the Consent Mode V2 we have a lot of parameters

  • gcs (Google Consent Status)
  • gcd (Google Consent Default)
  • gcu (Google Consent Update)
  • gcut (Google Consent Update Type)
  • dma (Digital Markets Act)
  • npa (Non Personalized Ads)

The npa (Non Personalized Ads)

The most important parameter is npa

  • 0 = Google can personalized Ads = remarketing works = conversions are happy
  • 1 = Google cannot personalized Ads = remarketing doesn't work = conversions are not so happy but they work

Article content
In GA4 DebugView the non_personalized_ads is 0 if user doesn't accept the cookie marketing


Do you remember the allow_ad_personalization_signals and ad_personalization conflict value? Great. If they have not the same values npa is 1 (no, this is no good for you).

PS: I don't know why Google loves the negative parameters (like non-interaction hit for GA3), but that's how it works.

The gcs (Google Consent Status)

The gcs is the Consent Mode parameter for the analyitcs and Ads storage

  • 100 = no Analytics and Ads cookies
  • 101 = yes Analytics cookie and no Ads cookie
  • 111 = yes Analytics and Ads cookies (that's great)
  • 110 = no Analytics cookie and yes Ads cookie (I never saw this case).

for more details: https://support.google.com/analytics/answer/9976101


gcd (Google Consent Default)

The gcd is one of the new parameters of Consent Mode V2. There are a lot of articles that explain the values (read this article of Simo Ahava and 📊 Markus Baersch).

So we know what meaning of the value (for example gcd=11v1v1v1v5), but not the last value (in this case 5).

Gianluca Campo shared a really useful post about gcd: https://www.linkedin.com/posts/gianluca-campo_ga4-googleanalytics-analytics-activity-7162885977299005440-BSoJ


Article content
A summary table of all gcd parameters.

I want to say thanks to David Vallejo for the tool https://consentcheck.analytics-debugger.com/ and the chat at the last MeasureCamp Italy

Article content
Me, Denis Golubovskyi and David Vallejo at MeasureCamp Italy in Bologna

PS: there some news about gcd parameters: https://www.linkedin.com/posts/david-vallejo-sanz_so-it-seems-google-analytics-changed-again-activity-7181232727411560448-a7Aa


Ok, what the meaning of the last value?

The David answer: ads_signals

Article content
The Consent String of David presentation

These are the values

  • 1 - Consent Not Defined + Ads Signals Not Defined
  • 2 - Consent Not Defined + Ads Signals Set True
  • 3 - Consent Not Defined + Ads Signals Set False
  • 4 - We don't know yet
  • 5 - Consent Defined + Ads Signals Not Defined
  • 6 - Consent Defined + Ads Signals Set True
  • 7 - Consent Defined + Ads Signals Set True

Please keep in mind the number 5 and 6, they will use in the next step.

Ok, now we have all elements to understand our tests.


First drop case: No Consent Mode V2 implemented

If you have a great drop in GAds remarketing, than 99% you don't use the Consent Mode v2.

Article content
Drop Google Ads without Consent Mode
Article content
Drop segment without Consent Mode V2
Article content
Bye bye remarketing


There are no many things to share: you have to implement Consent Mode v2


Real case: the hits drop in GAds report

In this case we have some feedback of our clients (because all clients after Consent Mode check the GA4 and GAds reports!)

Article content

All Google Ads Tag have a drop on the last 3/4 days.

Ok, we have a drop case after implementing Consent Mode V2.

Could it be related to the implementation?

We can test it :)

In this specific case we have the Google Ads client side tracking with GTM. We use the GTM Google Ads Tag to handle remarketing.

Article content
The GTM Google Ads remarketing client-side

If we check the hit we can see:

  • in the Event Data the custom parameters ecomm_pagetype, ecomm_prodid and ecomm_totalvalue
  • the gcs=G111
  • the gcd=13r3v3r2r5

Article content
The hit client-side

We have the GTM Server-Side also with the dynamic remarketing.

Article content
The GTM Google Ads remarketing server-side

If we check the hit we can see:

  • in the Event Data the custom parameters ecomm_pagetype, ecomm_prodid and ecomm_totalvalue
  • the gcs=G111
  • the gcd=13p3t3p2p6

Article content
The hit server-side

So what are the differences?

  1. the gcd client have always the final parameter 5
  2. the gcd server have always the final parameter 6

The parameter is 6 with the server-side because we use the hits of GA4 and work correctly with the parameter of the google signal.

The question is: is the 5-parameter Google Ads Remarketing working (despite the things previously highlighted in the various guides)?

The answer is: NO

If we drill down to ecomm_ parameters we can see the hits.

So, the final parameter of gcd doesn't block the Google Ads hits. The important parameter is npa=0

Article content
The Google Ads hits with ecomm parameters and gcd=13r3v3r2r


Ok, and the allow_ad_personalization_signals can be set true in Google Tag?

The answer is yes if you use: allow_ad_personalization_signals : true

Article content
The gtag script with the
Article content
The gcd is 13v3v3v2v6
Article content

Buy by default or if you don't explain the value in gtag script the final value is always 5.


Article content
The gtag script without the


Article content
The gcd is 13v3v3v2v5
Article content

We realized that this parameter does not affect the remarketing of Google Ads and no longer need to manage it.

But... why is there a DROP in the Google Ads tag remarketing?

I waited a few days with many tests in different accounts... and this is the answer.

This is the first day, please take a look the 40k horizontal line

Article content
first screenshoot March 15th


Article content
Second screenshot March 19th

As you can see it seems a UI delay in this specific report.

Before was under 40k, on the March 19th we have 45,570.

Let's check the next days:

Article content
Third screenshot March 22th

On the March 22th the number increases to 55,134.

So there is a 4/5 delay days.

If we check the segment we don't have the drop.

Article content
Segment in Google Ads audience

After few days we can say: it's only a delay

Article content

Cool. So it was a false alarm.

Mmm yes, but I found another interest thing


The data parameter in the hit

Our client asked us to understand why there is a drop anyway. In January the hits were about 150k.

In fact, looking at GA4 hits and user ratings, we should have a lot more hits.

We understood that there is a delay, so we just look 4/5 days back to understand the real number of hits.

We tried client-side and server-side but the problem remains. We decided to use server-side (of course).

We analyze the results on the browser and noticed that for standard remarketing (not dynamic) there was actually a problem.


This is the Gogole ads dynamic remarketing of view_item_list.

We have the &data=event%3Dview_item_list[...]

https://googleads.g.doubleclick.net/pagead/viewthroughconversion/11940439905/?random=1044014013&fst=1710924360697&cv=10&fmt=3&bg=ffffff&guid=ON&u_w=1920&u_h=1080&gtm=45j91e43e1v890374961z8812529564z9896602627za200&url=https%3A%2F%2Fwww.example.com&ref=https%3A%2F%2Ftagassistant.google.com&item=(26.99*1*it_163482**)(19.99*1*it_164103**)(24.99*1*it_164300**)(39.99*1*it_165279**)(27.99*1*it_165292**)(24.99*1*it_165326**)(19.99*1*it_164446**)(44.99*1*it_164493**)(29.99*1*it_164012**)(49.99*1*it_164621**)(29.99*1*it_164697**)(29.99*1*it_164092**)(19.99*1*it_162637**)(14.99*1*it_162630**)(24.99*1*it_162269**)(29.99*1*it_162246**)(19.99*1*it_163166**)(14.99*1*it_163157**)(19.99*1*it_163605**)(23.99*1*it_161657**)(19.99*1*it_164203**)(14.99*1*it_164424**)(24.99*1*it_164542**)(24.99*1*it_164533**)(19.99*1*it_164686**)(49.99*1*it_162410**)(49.99*1*it_162405**)(59.99*1*it_162407**)(24.99*1*it_163833**)(34.99*1*it_163330**)(39.99*1*it_163321**)(39.99*1*it_163325**)(29.99*1*it_163327**)(34.99*1*it_163705**)(47.99*1*it_161563**)(24.99*1*it_164148**)(39.99*1*it_164128**)(49.99*1*it_164900**)(24.99*1*it_156028**)(24.99*1*it_155775**)(16.99*1*it_161810**)(39.99*1*it_161805**)(19.99*1*it_162758**)(24.99*1*it_156797**)(24.99*1*it_156796**)(19.99*1*it_144160**)(24.99*1*it_159950**)(12.99*1*it_163904**)&data=event%3Dview_item_list%3Bgoogle_business_vertical%3Dretail%3Bid%3Dit_163482%2Cit_164103%2Cit_164300%2Cit_165279%2Cit_165292%2Cit_165326%2Cit_164446%2Cit_164493%2Cit_164012%2Cit_164621%2Cit_164697%2Cit_164092%2Cit_162637%2Cit_162630%2Cit_162269%2Cit_162246%2Cit_163166%2Cit_163157%2Cit_163605%2Cit_161657%2Cit_164203%2Cit_164424%2Cit_164542%2Cit_164533%2Cit_164686%2Cit_162410%2Cit_162405%2Cit_162407%2Cit_163833%2Cit_163330%2Cit_163321%2Cit_163325%2Cit_163327%2Cit_163705%2Cit_161563%2Cit_164148%2Cit_164128%2Cit_164900%2Cit_156028%2Cit_155775%2Cit_161810%2Cit_161805%2Cit_162758%2Cit_156797%2Cit_156796%2Cit_144160%2Cit_159950%2Cit_163904%3Bga_session_consent_mode%3Dtrue%7Ctrue%7Ctrue%3Bsite_lang%3Dit%3Bgtm_utm_source%3D%3Bgtm_utm_medium%3D%3Bgtm_utm_campaign%3D%3Bgtm_gclid%3D%3Bsite_type%3Dd%3Bgtm_utm_content%3D%3Bgtm_utm_term%3D%3Bpage_type%3Dhomegenere&userId=&us_privacy=1---&auid=1206575893.1710496165&uaa=x86&uab=64&uafvl=Chromium%3B122.0.6261.129%7CNot(A%253ABrand%3B24.0.0.0%7CGoogle%2520Chrome%3B122.0.6261.129&uamb=0&uam=&uap=Windows&uapv=10.0.0&uaw=0&gdid=dMWZhNz&dma=1&dma_cps=sypham&npa=0&gcs=G111&gcd=13v3v3v2v6&pscdl=noapi        

In the Standard Remarketing we have this hit:

https://googleads.g.doubleclick.net/pagead/viewthroughconversion/11940439905/?random=1431885296&fst=1710924360631&cv=10&fmt=3&bg=ffffff&guid=ON&u_w=1920&u_h=1080&gtm=45j91e43e1h1v890374961z8812529564z9896602627za200&url=https%3A%2F%2Fwww.example.com%3Fgtm_debug%3D1710923946046&ref=https%3A%2F%2Ftagassistant.google.com&data=gtm_referrer%3Dhttps%3A%2F%2Ftagassistant.google.com%2F%3Bgtm_date_now%3D1710924354805%3Bga_session_consent_mode%3Dtrue%7Ctrue%7Ctrue%3Bsite_lang%3Dit%3Bevent_id%3D1702631862799_17109248990332440%3Bgtm_utm_source%3D%3Bgtm_utm_medium%3D%3Bgtm_utm_campaign%3D%3Bgtm_gclid%3D%3Bfbp%3Dfb.1.1710498644396.264836562%3Bsite_type%3Dd%3Bgtm_utm_content%3D%3Bgtm_utm_term%3D%3Bpage_type%3Dhomegenere%3Bcustomer%3Dfalse%3Bbrand_listing%3Dfarfallina%2Csolada%2Cfh%2Cdaystar%2Cvanita%2Cflight%20finery%2Cfrenetika%2Csexy%20sense%2Cluna%26miele%2Cmira%C2%B0belle%2Ci%20jeans%2Cqueen%20helena%2Csissi%20miss%2Cmartin%20pescatore%2Csolo%20soprani%2Cmarquiiz%2Cinblu%2Claura%20biagiotti%2Ccoconuda%2Cinfiore%2Csielei%2Clonsdale%2Caki&userId=&us_privacy=1---&auid=1206575893.1710496165&uaa=x86&uab=64&uafvl=Chromium%3B122.0.6261.129%7CNot(A%253ABrand%3B24.0.0.0%7CGoogle%2520Chrome%3B122.0.6261.129&uamb=0&uam=&uap=Windows&uapv=10.0.0&uaw=0&gdid=dMWZhNz&dma=1&dma_cps=sypham&npa=0&gcs=G111&gcd=13v3v3v2v6&pscdl=noapi        

Have you noticed something weird?

There is data parameter but there isn't the event value.

data=gtm_referrer%3Dhttps%3A%2F%2Ftagassistant.google.com%2F%3Bgtm_date_now%3D1710924354805%3Bga_session_consent_mode%3Dtrue%7Ctrue%7Ctrue%3Bsite_lang%3Dit%3Bevent_id%3D1702631862799_17109248990332440%3Bgtm_utm_source%3D%3Bgtm_utm_medium%3D%3Bgtm_utm_campaign%3D%3Bgtm_gclid%3D%3Bfbp%3Dfb.1.1710498644396.264836562%3Bsite_type%3Dd%3Bgtm_utm_content%3D%3Bgtm_utm_term%3D%3Bpage_type%3Dhomegenere%3Bcustomer%3Dfalse%3Bbrand_listing%3Dfarfallina%2Csolada%2Cfh%2Cdaystar%2Cvanita%2Cflight%20finery%2Cfrenetika%2Csexy%20sense%2Cluna%26miele%2Cmira%C2%B0belle%2Ci%20jeans%2Cqueen%20helena%2Csissi%20miss%2Cmartin%20pescatore%2Csolo%20soprani%2Cmarquiiz%2Cinblu%2Claura%20biagiotti%2Ccoconuda%2Cinfiore%2Csielei%2Clonsdale%2Caki        

That's WHY we don't have the hits in GAds. The event is a mandatory value, without it Google Ads can not accept the hit.

Question: Why we don't have the event? It's available on the GA4 hit!

Check the Server-Side configuration:

Article content
The Google Tag Google Ads in the server-side configuration

We use Event data as custom parameters and we have too much custom parameters in the GA4 hits!

First solution:

Use custom configuration and set event and only the necessary parameters.

Article content

Second Solution

Use the server-side transformation to exclude all parameters.

My suggestion is to use both :)

The result

Remarketing data returned to 150k, reaching 300k.

Remember: the last 3/4 days we have the delay in the UI graph

Article content
First change: March 20th
Article content
Article content

Conclusion

  • Google Consent Mode v2 has an impact on remarketing if you do not agree the cookie banner.
  • The parameter allow_ad_personalization_signals has an impact only for GA4 hits on segments that import on gads.
  • Google Ads remarketing tag does not take into account the allow_ad_personalization_signals parameter
  • We have a delay on the UI of Google Ads Tag (Audience sources) of 4/5 days
  • Pay attention to mandatory remarketing parameters


I hope this article will help you to better understand some case studies. If you want to share something leave me a comment and if you want to have more insights follow me.


Happy Tagging!

Article content


Monikaben Lala

Founder | Product MVP Expert | Fiction Writer | Find me @Dubai Trade Show

2w

Matteo, thanks for sharing!

Hi Matteo, this is a long shot, but I enjoyed your article a lot and I feel like I am getting close to solving a mystery: Me and a few more people I found out there are struggling with sGTM blocking the Remarketing Pixel from firing altogether. It also seems to block the requests that sGTM is meant to send back to the browser and over to double-click when GA and Google Ads are integrated. The status on the remarketing tag is simply: failed. No more explanation. Does this ring a bell?

Like
Reply
Pietro Mingotti

Technical Marketing & Neural Science Researcher. #SEO , #PPC, and #Analytics. Husband, creative, data freak. Founder at Fuel Lab. "Hope is not a Strategy".

1y

Hi Matteo, I did experiment a bit with the steps you've shown to verify if also on the accounts we handle we could see a significant uptick in hits coming to the Google Ads Tag. And yes, same result as yours. But did you also notice any specific KPI bettering their performance when re-gaining those hits volume? Any KPI. Cost, Impressions, Cliks, not just conversion data. Just curious to learn about your findings on this one.

Like
Reply

Hi Matteo, How do I solve the following: Do you remember the allow_ad_personalization_signals and ad_personalization conflict value? Great. If they have not the same values npa is 1 (no, this is not good for you). help!!

Arif Ahmed

I help agencies/companies measure performance and KPIs | Google Analytics 4 | Google Tag Manager

1y

Thanks for sharing great insights. I have a quick question with regards to consent mode - if a user moves from Site A to Site B that is linked through cross domain tracking, where he has accepted consent on Site A, will his preferences be saved on Site B? Or do we need to pass the same preferences received by Site A to Site B by customizing the google tag with updated gcd and gcs values? Thanks in advance.

Like
Reply

To view or add a comment, sign in

Others also viewed

Explore content categories