Shopify Custom Pixel is incompatible with Google Ads conversions (bug report)

Topic summary

A critical incompatibility exists between Shopify’s Custom Web Pixels feature and Google Ads conversion tracking. The gtag.js script loads successfully within Custom Pixels but fails to export conversions, while the same code works properly when implemented directly in theme files.

Root Cause & Resolution:

  • Initial issue stemmed from cross-domain restrictions in the Custom Pixel sandbox environment preventing gtag.js from loading via googletagmanager.com
  • Google shipped a fix addressing the Ads tag’s inability to correctly detect sandboxed iframes
  • Conversions are now being captured successfully for most users

Ongoing Issue:
A new error has emerged: Failed to execute 'joinAdInterestGroup' on 'Navigator' from td.doubleclick.net. One working solution involves disabling interest groups:

gtag('config', 'AW-1234', { allow_interest_groups: false });

This requires separate, property-specific config calls rather than common configuration.

Alternative Approaches:

  • Using postMessage to send data from Custom Pixel to main window
  • Loading GTM via Custom Pixel with “Google Ads Conversion Tracking” tags
  • Creating custom dataLayer events that push conversion data to GTM
  • Temporarily reverting to Additional Scripts implementation

The discussion includes test stores and screenshots demonstrating the problem and various workarounds.

Summarized with AI on October 29. AI used: claude-sonnet-4-5-20250929.

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.

  1. 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

9 Likes

I have the same issue, the Shopify Pixel is not working.

1 Like

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 :disappointed_face:

2 Likes

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.

1 Like

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.

1 Like

Thanks for the update @Dave232 ! I can confirm that we’re seeing conversions again now.

1 Like

Hi @Dave232

Great news!!

Thank you very much for the update.

Google events tracking is working inside the custom pixel 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

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.

2 Likes

Could you please share the code you are using here?

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 ?

2 Likes

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?

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.