Facebook & Instagram app vs server-side GTM: which should send your Meta events?

Shopify’s free Meta app and its data-sharing levels compared with server-side GTM, and the mixed setup to avoid.

Shopify’s Facebook & Instagram app can send purchases to Meta through the Conversions API for free. Server-side Google Tag Manager can do the same, with much more control. Which one should your store use? Here is how they compare, and the situations where each one wins.

What the Facebook & Instagram app does

  • Syncs your catalog to Meta for Advantage+ catalog ads and Instagram and Facebook Shops.
  • Installs the Meta pixel, and sends events through the Conversions API depending on your data-sharing level.
  • Handles deduplication between the pixel and the Conversions API for you.
  • Follows the visitor’s consent through Shopify’s Customer Privacy API.

The data-sharing setting has three levels. Standard uses the browser pixel only. Enhanced adds the Conversions API, sending purchases from Shopify’s servers to Meta’s. Maximum uses the pixel and the Conversions API, with Meta’s latest advertising features. You find it in the app’s settings, under data sharing.

What server-side GTM does

A custom pixel sends Shopify events to your own server-side GTM container. The container sends them to Meta’s Conversions API with the browser pixel’s event ID, so Meta deduplicates them, and feeds GA4, Google Ads and TikTok from the same stream. You control every event, parameter and value.

Side by side

Facebook & Instagram appServer-side GTM
CostFreeSetup plus monthly hosting
Setup timeMinutesDays to weeks
Conversions APIYes, at Enhanced or MaximumYes
DeduplicationAutomaticSet up once with a shared event ID
Custom values (profit, new customer)NoYes
Custom events (lead, quiz, subscription)NoYes
Control over customer data sentLowFull
First-party cookies on your domainNoYes
Other platformsMeta onlyAll, from the same stream
Catalog and ShopsYesNo (keep the app for this)

When the app is enough

  • Meta is your main paid channel, with moderate budgets.
  • You optimize on purchases and revenue, nothing custom.
  • Nobody maintains GTM for you.

Set the app to Enhanced or Maximum, check that it sends to the dataset your campaigns use, and remove any other Meta pixel from the theme or other apps.

When server-side GTM pays off

  • You want to optimize on more than revenue. Sending profit, margin or a new-customer flag needs custom values the app doesn’t send.
  • Your Event Match Quality is low. With your own container, you choose which hashed customer details to send and keep fbp and fbc cookies on your own domain.
  • You need custom events. Leads, quiz completions, subscriptions or back-in-stock sign-ups.
  • You advertise on several platforms. One stream keeps Meta, Google and TikTok consistent, with the same order IDs.
  • You need to debug. When Meta and Shopify disagree, you can see exactly what was sent for each order.

The mistake to avoid: mixing both

The setup I fix most often is the app sending pixel and Conversions API events, while server-side GTM sends its own Conversions API events too. The event IDs don’t match, so Meta counts every order twice, and ROAS looks better than it is. Sometimes it’s the reverse: the app’s pixel in the browser and GTM’s server events, which never deduplicate.

Pick one source for Meta events. If you move to server-side GTM, keep the app for the catalog and Shops, and set its data sharing so it no longer sends the same events. More in duplicate purchase events on Shopify.

Frequently asked questions

Which data sharing level should I choose in the Facebook & Instagram app?

Maximum, if your consent setup allows it: it enables the Conversions API alongside the pixel and shares the most matching data. Check Event Match Quality and deduplication in Events Manager afterwards.

Can I run the Facebook & Instagram app and server-side GTM at the same time?

Only if they don’t send the same events to the same dataset. Two sources for Purchase means duplicates unless both use the same event ID, which is hard to guarantee across tools. Pick one source per event.

Does the Meta app respect my cookie banner?

It follows the visitor’s choice stored in Shopify’s Customer Privacy API, so it works if your banner writes to that API. Test it with the five-minute cookie banner test.

My recommendation

Start with the app at Enhanced or Maximum if Meta budgets are modest. Move to server-side GTM when Meta becomes a large budget line, when you want to bid on profit or new customers, or when you run ads on several platforms. If Meta reports far fewer or far more purchases than Shopify, check Meta Pixel not tracking purchases on Shopify first.

My Professional Shopify tracking package includes Meta Conversions API through server-side GTM, deduplicated and checked order by order against Shopify. See also Meta Conversions API on Shopify, or book a free 30-minute call.

Elliot Latil

Full Stack Web Analytics expert: GA4, GTM, server-side tracking and Shopify. About me