Open Tracked/Integrations/Facebook conversion API and Shopify

Facebook conversion API and Shopify

Shopify can send Meta server events on its own. A server container gives you more control and more platforms. Here is how to choose and set up either.

6 min read · Updated October 26, 2026

In this guide
Key takeaways
  • Shopify's Facebook & Instagram channel can send Conversions API events without a server container. It is quick but covers Meta only.
  • A server-side Tag Manager container adds control, cookies that last, stored customer data and other platforms.
  • Whichever you use, deduplicate browser and server events with a shared event ID, and test with Meta Test Events.
Shopify storeSServer eventsMeta

Shopify stores usually want the same thing: Meta should see every purchase, with enough customer data to match it. Shopify gives you two main routes, and the right one depends on how many platforms you use and how much control you want. This page explains both, the Shopify-specific traps (the checkout is separate from the storefront, and Shopify changes how scripts run there) and how to test. See Meta Conversions API vs Pixel for the basics.

Route 1: the built-in Meta channel

Install Shopify's Facebook & Instagram sales channel and connect your Meta business account and dataset. In its data-sharing settings, choose the maximum level, which sends events through the Conversions API as well as the pixel. Shopify handles the event IDs and deduplication for you.

  • Good for: a store that only advertises on Meta and wants a result in minutes.
  • Limits: you cannot control or enrich the events much, it does nothing for Google, TikTok or others, and cookie lifetimes stay at Safari's defaults.
Set up in minutes

Connected in minutes

Add your domain, install the pixel, connect your ad platforms and watch the first events land.

Route 2: a server-side Tag Manager container

Shopify has moved away from letting stores paste code into the checkout. Tracking now runs through Shopify's customer events and custom pixels, which are sandboxed. A common pattern is a custom pixel that listens to Shopify's standard events (page viewed, product viewed, product added to cart, checkout started, checkout completed) and forwards them to your tagging subdomain. The server container then sends them on to Meta and other platforms. Shopify's rules and the sandbox change from time to time, so follow Shopify's current documentation for custom pixels.

1

Set up the tagging subdomain

For example data.yourstore.com, verified with your host. See DNS configuration.

2

Add a custom pixel in Shopify

In Settings, Customer events, add a custom pixel that sends the standard events to your container, with an event ID per event.

3

Add the Meta tag in the server container

Follow how to set up the Conversions API.

4

Map the customer data

Pass hashed e-mail and phone from the checkout events, with consent.

5

Turn off the other route

If you used the built-in channel before, set it to browser-only or turn its server events off, so Meta does not receive the same purchase twice.

What a server container adds for Shopify

01

Cookies that last

Open Tracked's Cookie Keeper restores _fbp and other cookies for returning Safari visitors. It is on every plan.

02

Stored customer data

The Data Store and Enricher add stored hashed e-mail and phone to later events from the same browser.

03

More platforms

The same events can feed Google Ads, GA4, TikTok and others.

04

Control

Remove or add fields per vendor, and respect consent in one place.

Live view

Watch events arrive, live

A sample feed. In Open Tracked you see the same stream for your own store.

Shopify traps

SymptomPurchases are counted twice
Likely causeThe Shopify channel and your container both send server purchases.
FixUse one server route for Meta. Keep a shared event ID if you keep two.
SymptomCheckout events are missing
Likely causeThe custom pixel does not subscribe to the checkout events, or consent blocks it.
FixCheck the pixel's event subscriptions and customer privacy settings.
SymptomRevenue includes shipping or tax you did not intend
Likely causeThe event value is taken from the wrong field.
FixUse the subtotal or the total as you intend, and use it consistently on every platform.
SymptomMatch quality is low on purchases
Likely causeE-mail and phone are not passed.
FixRead them from the checkout event and hash them. See event match quality.

Test

  1. Open Meta Events Manager, Test Events.
  2. Place a test order on your store.
  3. Look for Purchase from the Browser and from the Server with the same event ID.
  4. Check that Meta marks one as deduplicated and that customer data shows on the server event.
  5. Compare Meta purchases with Shopify orders for a week.
0 of 6 done

Which route would we pick?

For a Shopify store that advertises only on Meta, spends a modest amount and has no one who wants to learn Tag Manager, the built-in channel is a sensible first step. Turn it on, check Test Events, and look at the match quality after a week. If the result is good enough, there is no need to add complexity. Add a server container when one of three things happens: you start advertising on a second platform, you notice that returning iPhone visitors are not matched, or you want to add data to the events that the channel does not send.

At that point the move is straightforward. Set up the tagging subdomain, forward Shopify's customer events to it with a custom pixel, add the Meta tag, and switch the channel's server events off so Meta does not receive two copies. Do it on a quiet day, compare Meta purchases with Shopify orders for the week before and after, and keep a note of the date so you can explain any change in the numbers.

Terms you will see

Customer events
Shopify's system for tracking what visitors do, used by custom pixels.
Custom pixel
A script you add in Shopify that listens to customer events.
Data sharing level
The setting in the Meta channel that controls whether server events are sent.
Checkout extensibility
Shopify's newer, app-based way to customise checkout.
Dataset
Meta's name for the place events arrive.
Works worldwide

Runs on your domain, anywhere

Your tracking runs on your own domain, so a visit from any country is handled the same way.

Frequently asked questions

Does Shopify support the Meta Conversions API?

Yes. The Facebook & Instagram channel can send server events when you choose the maximum data-sharing level.

Do I need a server container for Shopify?

Not for Meta alone. A container helps when you use several platforms, want longer cookies or want to control the data.

How do I avoid duplicate purchases?

Use one server route for Meta, and share an event ID between pixel and server.

Can I add scripts to the Shopify checkout?

Shopify limits custom scripts in the checkout. Use customer events and custom pixels, following Shopify's current documentation.

Does Open Tracked work with Shopify?

Yes. Open Tracked hosts the server container that receives events from your Shopify store, from the free plan upwards.

Do I need spreadsheets to read my results?

No. Once tracking is live, the Open Tracked analytics shows spend, revenue, ROAS and profit, and you can ask Ari, the built-in AI assistant, questions about your own numbers in plain words. Ari's allowance depends on your analytics plan.

Is Open Tracked different from Open Track or Open Space Track?

No. Open Tracked is the official name of our server-side tracking platform, and the website is opentracked.io. Many people search for it as Open Track, OpenTrack or Open Space Track. All of them lead to the same product: server-side Google Tag Manager hosting, first-party analytics and a CRM pipeline.

Fix your tracking at the source

Open Tracked hosts your server-side Tag Manager, keeps first-party cookies alive and shows what each ad is really worth.

Open Tracked
Written by

The Open Tracked team

We build Open Tracked: server-side tracking hosting, analytics and the tools around them, for stores that spend on ads. Questions about this guide, or an idea for the next one?

Write to us Read the docs

Was this article helpful?

Comments

Loading comments...

Turn better tracking into better marketing performance

Start free