Shopify Meta Pixel GTM integration

Hi there,

Usually, all looks good when we set up Meta Pixel in web/server GTM. We are switching off the Data Sharing option in the Facebook & Instagram app, and the Pixel is performing well for both web/server events.

Currently, I am struggling to determine what prevents Purchase browser events from being logged normally. For 2 weeks, we are having 1-2 browser events logged vs 10-20 server each day.

The set up is regular and is built on the Web Facebook Pixel tag (based on the dataLayer purchase event push fired from the customer events script) + server Stape Facebook CAPI tag with proper deduplication. The GA4 purchase event is built on the same trigger and records approximately the same number as the Meta server.
Facebook Pixel Purchase tag in web GTM is adjusted with consent mode, ad_storage signal, however I have played around with triggers to enable trigger group and just purchase push trigger, disabled consent check, disabled Advanced Matching both in the GTM and Pixel settings, and even created a new Pixel. And nothing helps.

Recently, I’ve found that the pixel itself in the Events manager was connected to Shopify inside the Integrations section and reports some events there. So, we’ve disabled it, but it also does not help.

And with that, when I am doing tests, I can see the web purchase everywhere in the Meta Pixel helper, server GTM preview, and purchase Request URL to Facebook in the Network in the DevTools console.

Has anyone encountered this performance? and can help to find out what is blocking the Pixel web event.

Thanks in advance

If you’re seeing the web purchase fire perfectly in DevTools and the Pixel Helper during your own tests, your GTM/Shopify setup is actually fine.

The massive drop in live web events vs server events is exactly why we use CAPI. Most of your customers are likely using ad blockers, iOS Safari, or Brave browser, which block the client-side Facebook requests completely. Your server-side setup via Stape bypasses these client-side blocks.

Also, double check your consent banner. If users ignore or reject cookies, your web GTM might be blocking the tag, while the server tag might still be firing depending on how you configured it.

Honestly, if your server events are catching the 10-20 purchases accurately and deduplication is set up, the system is doing exactly what it’s supposed to do. I wouldn’t stress the web drop-off.

IF you configured the pixel through GTM which custom pixel datalayer did you use?

when you test from event manager test event do you get proper event from browser?

I’ve tried many manual methods for GTM integrations in the past, but they often caused issues. One of my agency friends recommended this app to me, and it has been very helpful. You can give it a try as well.

hi, it’s a custom script with the dataLayer with begin_checkout and purchase events, it works 100 %, GA4 events are normally recorded, with the InitiateCheckout for Meta web/server.
I can see in the Test Events tool my test purchase event also

hi, thanks for helping.
Initially I thought regarding some strict Adblockers or browsers like Brave but if you can see the Events Manager stats, we have switched to the GTM on about 24th of Feb, before this date you can see the Pixel normally recorded browser events with the Facebook & Instagram app.
Additionally, GA4 purchase event is recorded normally, it’s adjusted on the same trigger except it’s using Advanced consent mode. Meta web InitiateCheckout works normally also. So it’s very low probability that all Meta web events are blocked by the adblockers. That’s is some issue which I can’t solve.
Meta CAPI tag for purchase is adjusted with the Marketing consent also, I can see the gcs parameter is passed to the server GTM via Stape logs.
I know that if server events are logged with the deduplication and _fbp, _fbc cookies are passed it can be enough but this looks like an issue in the Pixel so I want to find a solution to solve this. I am encountering this the first time although has worked with lots of Shopify stores

you must have to user Server Side on that Adblock won’t effect

Hi all, finally I’ve found the solution of this unusual behavior.
Sharing for all who will encounter this.

This looks very weird and at the same time very simple.
Whenever the Pixel is created within the Meta Business via the Shopify section (see below), even if you drop integrations everywhere, in the Meta Events Manager itself, in the Shopify - nothing will help. Perhaps this is due to the initial Meta Business/Ads connection to Shopify from within the Meta interface.
You’ll need to create a totally new pixel with the option Set up manually.

Hi @Mitrodol, this is probably a signal prioritization and deduplication issue inside Meta. Your browser events are firing since Pixel Help confirm it, but Meta is discarding them in favor of server events from CAPI. This usually happens when deduplication isn’t perfectly aligned or when Meta’s EMQ favors server-side signals. Since your GA4 matches server counts, your dataLayer is fine.
You just need to make sure both browser and server events use the same event_id for proper deduplication, and verify that the browser event isn’t delayed or missing key parameters (value, currency). Also check Aggregated Event Measurement priorities in Meta.
Let me know if you need further help.