How to run multiple Facebook pixels on one Shopify store

Updated

Shopify’s built-in Facebook sales channel accepts exactly one pixel ID, so running a second one means installing through the Web Pixels API instead, either with your own custom pixel code or with a pixel app that manages the list for you. Once several pixels are live, the part that decides whether your reporting stays usable is which events you send to each.

Why one pixel stops being enough

Three situations account for most of it. An agency runs ads from its own Business Manager and needs its own pixel. You sell across two brands or two regions from one store and want separate audiences. Or you are migrating between ad accounts and need both collecting during the overlap.

In each case a single pixel forces a compromise: either the agency reports on data it cannot access, or you hand over your own pixel and lose control of it later.

The Business Manager side comes first

Create each pixel in the Business Manager that will actually run the ads. A pixel cannot be moved between Business Managers after the fact, and the usual workaround, sharing partner access, still leaves ownership where it started.

Give each one a name you will recognise in six months. "Pixel" and "Pixel 2" become unusable the moment a third arrives. Something like "Storename - Agency A" costs nothing and saves a support ticket.

Installing more than one

Shopify Settings, Customer events, lets you add custom pixel code. You can register a second fbq('init') call there by hand. It works, but every pixel you add is another block of JavaScript to maintain, and the sandbox gives you limited debugging when something misfires.

A pixel app is the practical route. Pixelfy holds an unlimited list of Facebook, Meta and Instagram pixel IDs, each with its own event assignment, and installs all of them through the Web Pixels API in one registration.

The Conversions API matters more here than on a single-pixel store. Server-side events are sent per pixel, so a blocked browser event does not selectively starve one ad account while feeding another. Without it, two pixels can report different conversion counts for the same day and neither number is right.

Decide what each pixel receives

Sending every event to every pixel is the default and it is rarely what you want. An agency running cold traffic campaigns needs the full funnel: ViewContent, AddToCart, InitiateCheckout, Purchase. A partner pixel used only for a retargeting audience may need ViewContent alone.

Splitting events also keeps ad accounts out of each other’s learning phase. Two pixels both optimising on the same Purchase events will bid against you in the same auction.

One thing to avoid: do not send different event values to different pixels for the same order. When the numbers stop matching, nobody can tell which one is broken.

Check every pixel independently

Meta Pixel Helper lists each pixel ID separately on a page load, so a product page should show every ID you installed. Missing IDs there mean the event assignment excluded that pixel, not that the install failed.

Place one test order and then open Events Manager for each pixel in turn. The Purchase event should appear once per pixel, carrying the same value and currency. If one pixel shows two Purchases, that pixel is receiving both a browser and a server event without a shared event ID.

Questions

Does running multiple pixels slow down my store?
Barely, when they are installed through the Web Pixels API. Shopify loads that code asynchronously in a sandboxed worker, so additional pixel IDs add network requests rather than blocking the page render.
Can two pixels share one Meta ad account?
Yes. An ad account can select any pixel it has access to, and a pixel can be used by several ad accounts. The constraint is Business Manager ownership, not the ad account.

Related guides