52 Replies
Thatβs perfect you are consented!
If I may ask, for managing user consent, are you currently using the Zaraz consent banner (either the default or a custom version), or have you integrated a third-party CMP?
We are using the ZARAZ consent functionality... works flawlessly. www.adams-music.com
Next on my list to add 'enhanced conversions' to Zaraz... Hope this will be available soon, that would really help our campaigns in Google Ads...
I am interested in this because we have never got the "Consent mode is active" banner to appear in Google Ads with Zaraz like it does in our Google Analytics account.
Do you have the IAB TCF compliant modal enabled?
Also, did you previously have any third party CMP services enabled prior to using Zaraz?
We need everything in order the ads to work at the best (attached images) those are from account that i do not use Zaraz at all only tag manager and custom cookie bar. For now on websites that I use Zaraz i dont have the consent mode at all. It is easy for you to share the configuration of your google ads tool or any custom tool that helps to create and update the v2 signals? Thank you


IAB TCF disabled... We never had a CMP before but we used tag manager for consent instead. Setting the default consent state is a manual script on our website. So we don't make use of the automatic set Google Consent Mode v2 state in Zaraz...
All the rest is handled by Zaraz... It took some effort to figure everything out but with the great help of @yo'av we finally got it working... π
Hi there, @yo'av Would you be able to assist me in resolving the issue where I am not showing as consented in Google Ads? If you need extra info as domain, ID's etc can I DM? Thank you!!
I had to figure out a way to convert the cookie value 'true' and 'false' to 'granted' and 'denied' before pushing it to google_consent_update. This script worked for us:
<script>
document.addEventListener("zarazConsentChoicesUpdated", ()=> {
strAnalytics = zaraz.consent.get('tFYh') ? 'granted' : 'denied';
strMarketing = zaraz.consent.get('WMnQ') ? 'granted' : 'denied';
zaraz.set("google_consent_update", {
'ad_storage' : strMarketing,
'ad_user_data' : strMarketing,
'ad_personalization' : strMarketing,
'analytics_storage' : strAnalytics
});
});
</script>
I utilize a script that initially denies and then updates based on the user's preference.
<script>
zaraz.set("google_consent_default", {
'ad_storage' : 'denied',
'ad_user_data' : 'denied',
'ad_personalization' : 'denied',
'analytics_storage' : 'denied'
});
document.addEventListener("zarazConsentChoicesUpdated", () => {
var strAnalytics = zaraz.consent.get('wizf') ? 'granted' : 'denied';
var strMarketing = zaraz.consent.get('kRCU') ? 'granted' : 'denied';
zaraz.set("google_consent_update", {
'ad_storage' : strMarketing,
'ad_user_data' : strMarketing,
'ad_personalization' : strMarketing,
'analytics_storage' : strAnalytics
});
});
</script>
Ah.. yeah correct! Keep in mind that the script is not working as a Custom HTML action in Zaraz... the code needs to be in the code of the website (in the body container)
I attempted both methods and received the same outcome. Both approaches included the gcd parameter in the request to Google via the URL. Is there a particular explanation for why the website's body yields better results?
@yo'av told me that if you use a custom HTML action the code may fire too late... (or too early?). Since we put the code in the HTML body container it took a while for Google Ads and Google Analytics to pick it up.... but finally got it working.
The configuration look like that?



We were happy to see this after a couple of days...

In Analytics almost the same day converting to zaraz was consented only in Google Ads lies the problem. That's the strange issue in my occasion.

I only use one remarketing action... But I had to figure it all out myself... Don't know what's the best...
Purchase event looks like this...

Unknown Userβ’14mo ago
Message Not Public
Sign In & Join Server To View
Wait.... this is a thread right? Darn... Discord is so confusing to me sometimes... Sorry! How / where to continue?
@yo'av I apologize for not creating the thread earlier, it may have been my mistake. Would you like to continue the conversation here? There is a lot of information available.
Unknown Userβ’14mo ago
Message Not Public
Sign In & Join Server To View
I think the main issue is that when we send data using Zaraz to Google Ads. Google doesn't show that consent mode is active in the conversion goal diagnostics like it does in Analytics for the data stream.
BadgeMan is a bit of a weird situation because he is getting the consent mode enabled banner in Google Ads. Although im not quite sure if BadgeMan is running GTM and Zaraz together based on his previous messages.
I'm not really even sure if we should expect the consent mode banner to show in Google ads or not tbh. Google are so cryptic with how the Google Ads data is handled and what triggers the consent mode active message to show.
What I refer to as the Google Ads consent mode banner is in the images attached.
I have never seen these consent mode active messages in any of our ads accounts which have only ever had consent mode enabled through Zaraz.
We last received a warning email from Google saying we didn't have consent mode enabled on the 26th of July, previous to that it was 13th of June and prior to that 30th of May.
I am not sure if the lack of further emails stating that consent mode is not active indicates that Google is happy with the consent data we are sending now or they have just given up sending us further emails.
All of this specifically relates to conversion event data sent directly to Google Ads via the Google Ads Zaraz module.


As mentioned by @ItsTobias, the previous screenshots are from one of my Google Ads accounts that are consented by google. On the websites I use Zaraz for the consent/events, none of them has been characterized as consented (like the images), even though they were previously consented before being migrated to Zaraz. This issue only applies to Google Ads, as the accounts in Google Analytics are shown as consented. However, in debug mode, even though I am accepting all in the banner, the non_personalized_ads are always set to 1 (when accepting must be 0). This may be relevant, but I am unsure.
Long story short:
When I check the network for Google Ads request from the page, I see two requests to Google (https://www.google.gr/pagead/ and /googleads.g.doubleclick.net/pagead/viewthroughconversion/) that have the gcd parameter (e.g. gcd=11v1v1v1v5). However, in Google Ads -> Goals -> Summary -> Diagnostics, it shows that I am unconsented.
After speaking with a Google agent, they suggested that there may be an issue with the Zaraz configuration or something else about the Zaraz consent, but they were unable to provide further advice as they could not test it due to a lack of gtag and tag manager.
Sorry for the long story, I hope to find something to solve that.
I am not using GTM anymore since we completely migrated to Zaras. It took some time to figure out how to setup the consent in Zaraz, but we finally got it working (in GA4 and ADS). Maybe @yo'av can compare our configuration with yours?
Tool settings.... (not much going on there...) & remarketing action (not much going on there either).


I am not sure that if the 'include event properties' is enabled... do we still have to add the properties on the bottom? (currency, discount, items, transaction_id and value) or will those be sent automatically?

Do i still have to create a purpose in zaraz for tools with auto detect to be able to get the ids here
var strAnalytics = zaraz.consent.get('wizf') ? 'granted' : 'denied';
var strMarketing = zaraz.consent.get('kRCU') ? 'granted' : 'denied';
Or there is a better way?
Unknown Userβ’13mo ago
Message Not Public
Sign In & Join Server To View
Hi Tobias, I wonder if you know why Google Ads doesn't pick up any conversions anymore after switching the consent to TCF compliant? I am grasping at straws here...
Sorry no, I've never used the TCF compliant consent modal, however, looking at your screenshots I would be looking into that weird character appearing in front of the currency info:

I would re-arrange the order of the properties in the zaraz action, and see if the new property you put first gets corrupted also.
Correct... that's why I made that part yellow π Seems like a bug in Zaraz? If I can't get it to work by tomorrow (already missing 10 days of conversions in Ads) then we have to roll back to the none compliant consent banner (which is working).
you could try putting a dummy property in first, let that get corrupted and seeing if it fixes the request
however if the bad character is causing the entire request to get dumped at Googles end then there might not be anything you can do.
I already tested without the currency property for a couple of days... Still no conversions
do you still see corrupted GET param keys if you remove the currency property?
I think the currency property is a required field so I am not sure removing it will help but if you can prevent it getting corrupted that may help.
Nope... without currency property it's fine (no corrupted query)
what about if instead of adding the property directly in the action, you send the currency as part of the Zaraz track request?
Same result if I add the property to the tool setting...
Without currency it looks like this:
https://www.googleadservices.com/pagead/conversion/1057452780/?guid=ON&rnd=1758793781892&fst=1758793329941&cv=9&sendb=1&num=1&u_java=false&url=https%3A%2F%2Fwww.adams-music.com%2Fsaxofoon%2Falt%2Fnieuw%3Fgclid%3Dabc.123&tiba=Een+alt-saxofoon+kopen+voor+de+scherpste+prijs%3F+Inruil+is+mogelijk.+&u_tz=120&u_his=10&u_h=1201&u_w=1386&u_ah=1440&u_aw=2560&ig=1&label=IkbmCPSI3IcYEOzlnfgD&id=1SXANYMHSO&value=1695&gcd=11r1r1r1r5&gdpr=1&gdpr_consent=CQYQA0AQYQA0AGxABAENB9FAAPLAAAAAAAAAIzQAgF5gRmAAAAAA.IIzQAgF5gRmA
But for an unknown reason Google Ads rejects all these events.... and then I mean ALL events π
Tiktok, Meta, Google Analytics, Bing Ads is all receiving correct data... except for Google Ads
I am guessing that because the actual currency parameter is not present in either requests its getting rejected due to lack of currency parameter
but I am not 100% sure on that
I also have absolutely no idea why enabling the IAB TCF modal would affetc the currency parameter in this way, seems incredibly strange
Yeah right? Or maybe our config in Zaraz is corrupted? I really don't know π
Hope that Zaraz can fix it soon if it's a bug.... Marketing department is breathing in my neck π
Thanks anyway Tobias!
ohhh
I have had corrupted configs in zaraz before
I have had situations where the only way to get Zaraz working again was to use an earlier backup via the import config function
How did you notice it was corrupted?
it hasnt happened to me for a while but I used to regularly export the configurations for my domains here and re-import known working ones whenever Zaraz was playing up

The issues we were facing were a little different, we make use of the HTTP Events API, and we could have this enabled yet Zaraz would refuse to respond to requests, the only way to fix it was to wipe the config and re-import a working one.

Yup, I know where to find that.... I can navigate through zaraz blindfolded.... LOL
I see...
We have no idea what was causing the issue, but if you imported a known broken config it would break the HTTP Events API
which was very confusing to us as the export is just a json object, we could never work out what was causing the issue to happen.
Darn... I was hoping to export the current config and importing it again would fix the config.... Don't have an old config available....
I went through each parameter in the json object trying to identify the one that was breaking it but never managed to, it seemed to be a combination of parameters that caused it for no clear reason.
Annoyingly when I encountered this situation the best approach I had was simply to wipe the existing config, rebuild it and then export it
However, we are ultimately taking a guess that its a corrupted zaraz config and that it would be resolved in the same way I resolved that situation previously which is quite a leap of faith without some evidence to back it up
so you may be unwilling to invest that much time into it :S
Already spent a week searching for a solution.... at this moment it's all I can do... build the config from scratch and light a candle...
I would encourage you to do an export whenever you have a "working" configuration
The JSON file looks fine... the lower case 'currency' gets corrupted and the one with the capital C is fine. I don't know if Google accepts 'Currency' as property name though... pfff

interestingly when we had the corrupted config issue, it wasnt anything to do with the config for the actual HTTP Events API, it was something else, or a combination of something elses.
