Ads Conversion Tracking not working

Hi all,

we are wondering why our conversions are not tracked at google ads. We are using google Tags to load piwik, and then piwik tags to load the individual google ads tracking event fired by piwik trigger. We are doing this as we cannot utilize the piwik consent layer otherwise.

Though checking in piwik debug mode as well as google tag manger debug, all tags are fired as requested.

For example a html tag is fired based on a data layer event:

<!-- Event snippet for Klick des Kaufbuttons conversion page -->
  gtag('event', 'conversion', {
      'value': 40.0,
      'currency': 'EUR',
      'transaction_id': ''

At all pages we are firing the general gtag.js upfront:

<!-- Google tag (gtag.js) -->
<script async src=""></script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-ZZZZZZZZZZ');

Does anyone got a hint, whats wrong with this approach? Have you faced similar issues? We are using epages with strato btw.

Any input is higly apprechiated :slight_smile: !


Can you see hits in the browser console / Tag Assistant or could a CSP be blocking your requests? A tag would still fire, but no data can be recorded in that case…

I just can see the tags firing, but no data stream. Is there a good way to check for CSP and the upstream to google ads? Waiting 24h to see if the converstions are counted in the ads acc. seems a bit odd.

I think I just found two major flaws of mine:

1th: I called the AW container within a custom HTML Tag. looks like that isn’t working at all. now it is inside the header directly. 2th: I used a custom HTML to call the tracking events to be send to AW, which wasn’t also working. Using the piwik ads conversion tag now, and I have a visible data stream.

Let’s hope ads now understand those steams properly :slight_smile:

Good to know - I usually avoid Custom HTML so I did never think about that.

But if a tag management system encloses custom code with an IIFE, all variables will have the wrong (local) scope and so you would have to declare everything that has to survive the short runtime of that code by defining stuff specifically in the global scope (declare window.gtag() for example). This might be the case here (but I can not check that right now).

Regarding CSP: if there is a problem you can find an error message in the browser console. should at least show you if something happens regarding outgoing GA4 or GAds requests.

Yes, this is what I meant by “Google Tag Debugger”. I can see all conversions displayed in the G-Container output with the destination AW-XXXXXX including the data stream. Assuming, this is how it should look like?

1 Like

22h later: No conversion was recorded. I checked the stream of a conversion event:

for my understanding: if the AW number and the label is the same in google ads as well as in this hit view, a conversion should be tracked in google ads.

what (the heck) am I missing? :dotted_line_face:

I can see no gclid value(?) Did you click your own ad before converting? If so, gtag could not persist it in a cookie when you landed on the site. I would check that, even a fake gclid should be visible here for testing.

If there is no reference there will be no conversion recorded.