All things Shopify and commerce
Hello everyone,
I would like to report a bug related to Web pixel extension API, and more precisely to "Custom web pixels".
The problem is that Google Ads conversion exports are not working in the "Custom web pixels" environment.
Here's an example code snippet that loads gtag.js script and exports a single Google Ads conversion:
// Load gtag.js script.
const script = document.createElement('script'); script.src='https://www.googletagmanager.com/gtag/js?id=AW-587263117'; script.async = true; document.head.appendChild(script);
// Configure gtag.js script. window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-587263117');
// Export Google Ads single conversion. gtag('event', 'conversion', { 'send_to': 'AW-587263117/vEM1COuix84YEI3Zg5gC', 'value': 1.0, 'currency': 'DKK' });
When this script is used within "Custom web pixels" feature, the gtag.js script is loaded, but the conversion is NOT exported.
When this script is used within a theme, the gtag.js script is loaded and the conversion is successfully exported.
It means that the sandbox environment used by "Custom web pixels" feature prevents the gtag.js script from exporting Google Ads conversions. This is a critical issue, since Google Ads is the most popular marketing platform and "Custom web pixels" feature is here to faciliate integrations with marketing platforms.
I would like to report this issue to the Shopify support team. In order to make debugging this problem easier, I created two test stores that illustrate this problem:
1. https://reaktionteststore.myshopify.com/ (password: admin123)
This store uses the above code snippet in theme.liquid file. The conversion is successfully exported.
2. https://reaktion86.myshopify.com/ (password: admin123)
This store uses the above code snippet in "Custom web pixels" feature. The conversion is NOT exported.
Best regards,
Patryk Tucki
I have the same issue, the Shopify Pixel is not working.
We are having the same issue.
Did you guys find the solution?
Sadly not yet
I'm having the same issue as well.
How did you end up working around this issue? Did you just scrap the custom pixels for now and go back to the old way of doing it? (installing in the theme code & addtional scripts for checkout)
This is what we did for now 😞
We are also experiencing this. I reported it to Shopify Plus customer report and they asked me to reach out to Google instead. I did this and, as you would expect, they basically said that it's a Shopify issue.
I've tried implementing the conversion as both a GTM "Google Ads Conversion Tracking" tag as well as an HTML tag, like in the original post.
What is confounding to me about this issue is that I don't see any errors in the console from either tag approach though I do see the tags being rendered in the DOM. Instead, there is just a lack of the expected network requests to googleadservices.com and doubleclick.net.
Like @pashadev, we're also going to workaround by implementing through Additional Scripts.
You can't load gtag.js within a pixel event. It's trying to get it through googletagmanager.com, and it's hitting a cross-domain restriction within the sandbox environment.
One way to do it is to send the data to the main window using postMessage, catch that, then trigger your event within the theme itself. The top window doesn't have this restriction in place. Small guide to do that here: https://jpallard.com/en/using-shopify-customer-events-for-analytics/
There are other ways to do it if you use server GTM, but that's the quick and dirty way!
Hi, Google shipped a fix for this last week.
The Ads tag code was attempting to read the document location from the top level window because it's not correctly detecting that the iframe it's within is sandboxed.
You should be seeing conversion captured on the ads side now.
Dave | Shopify
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Mark it as an Accepted Solution
Thanks for the update @Dave232! I can confirm that we're seeing conversions again now.
How did you manage to connect Google ads conversion scripts inside Custom Pixel? If possible, please share an example of your code
I'm using the "Google Ads Conversion Tracking" GTM tag. And I'm loading GTM via a Custom Pixel similar to what's described here: https://help.shopify.com/en/manual/promoting-marketing/pixels/custom-pixels/gtm-tutorial
Could you please share the code you are using here?
Hi Weotch, so I create a conversion linker and google ads conversion tracking tag inside the GTM and publish it and that's it? I don't need to add anything to the pixel? How did you implement the google dynamic remarketing?
Hi @Dave232
Great news!!
Thank you very much for the update.
Google events tracking is working inside the custom pixel now.
It looks like there is a new issue. We are now seeing the following error in the Google Ads custom web pixel we've been using for conversion tracking:
Uncaught (in promise) DOMException: Failed to execute 'joinAdInterestGroup' on 'Navigator': May only joinAdInterestGroup from an https origin.
at https://td.doubleclick.net
Is anyone else seeing the same thing? From Googles documentation it seems like running this in a sandbox is unsupported.
Hi all, are there any news on this? Is google ads working?
Thanks
Miguel
Yes. Google ads pixels are working now.
We're still seeing the following error in the Google Ads custom web pixel we use for conversion tracking.
Uncaught (in promise) DOMException: Failed to execute 'joinAdInterestGroup' on 'Navigator': May only joinAdInterestGroup from an https origin.
at https://td.doubleclick.net
Unfortunately, we have not yet found a solution to correct this problem.
Has anyone found a solution ?
I ran into the same thing. This took several hours to figure out but I got something working:
gtag('config', 'AW-1234', { allow_interest_groups: false });
Do not use the common config for all properties, you have to pass this config specifically to this property, there is a hidden error if you use irrelevant config properties for AW properties that you can only see in the console logs of the deprecated google analytics debugger chrome extension. If there is an error in the config, the AW config is ignored, as if you had not configured anything, no matter what properties you try. Do not naively reuse the GA4 config for the AW config. Do not use the common config call. Make two separate specific config calls and specify a specific property id as the second parameter each one, then only specify the relevant properties in the AW one.
After doing this (while having GTM setup in an iframe Shopify custom web pixel with an AW property also receiving events via send to), I no longer see the promise rejection from joinAdInterestGroup.
This worked, thank you!
Adding my 2 cents, I have imported GA4 conversions that I have as secondary (back up events)
I switched these to primary because they seem to be capturing more data right now.
So you have build some customer events that are sending successfully conversion events so GA4? If yes, can you provide this here ? 🙂
Starting a B2B store is a big undertaking that requires careful planning and execution. W...
By JasonH Sep 23, 2024By investing 30 minutes of your time, you can unlock the potential for increased sales,...
By Jacqui Sep 11, 2024We appreciate the diverse ways you participate in and engage with the Shopify Communi...
By JasonH Sep 9, 2024