---
title: "Meta Pixel events have no event ID on Shopify"
description: "Your Shopify store sends Meta Pixel events without an event ID, so Meta cannot deduplicate them with Conversions API events. When it matters and how to fix it."
updated: "2026-10-04"
url: "https://ispixelworking.com/guides/meta.missing_event_id/shopify"
---

# Meta Pixel events have no event ID on Shopify

Fix guide · Shopify · medium · about 45 min · updated 2026-10-04

For the finding “Meta events have no event ID” (`meta.missing_event_id`).
Also for: [Any website](https://ispixelworking.com/guides/meta.missing_event_id/generic), [WordPress](https://ispixelworking.com/guides/meta.missing_event_id/wordpress), [Webflow](https://ispixelworking.com/guides/meta.missing_event_id/webflow), [Framer](https://ispixelworking.com/guides/meta.missing_event_id/framer).

## What this means

Each event from the Meta Pixel (still often called the Facebook Pixel) can carry an **event ID**, a unique label for that one action. Your events arrive without one.

Whether this costs you money depends on whether your store **also sends events from a server** through the Meta Conversions API (CAPI):

- **Yes, or you are not sure:** the event ID is how Meta recognizes that a browser event and a server event describe the same purchase. Without it, Meta cannot merge them reliably, and the same conversion may be counted twice. We report this as **high** when we see signs of server-side tracking for Meta.
- **No, browser pixel only:** there is nothing to deduplicate yet, so we report it as **low**. It matters the day you add the Conversions API.

We cannot see server-to-server traffic from a browser, so we cannot tell whether your Conversions API works; we only check the browser events.

On Shopify, the Conversions API is usually switched on in Meta's **Facebook & Instagram** app: the **Enhanced** and **Maximum** data sharing levels use the Conversions API next to the pixel, while **Standard** uses the pixel only. Meta's help says partner integrations such as Shopify's handle the deduplication parameters automatically, and in our tests the browser events sent by the Facebook & Instagram app carried an event ID. So events without an ID on a Shopify store usually come from a different copy of the pixel: theme code, a custom pixel, or a GTM tag.

## How to confirm it yourself

1. Open your store in a **private (incognito) window**, open developer tools (F12), go to **Network** and filter by `facebook.com/tr`.
2. Accept cookies, then trigger your key events: open a product page and add a product to the cart.
3. In each request's payload, the event ID is the field **`eid`**. No `eid` means no event ID.
4. Look at the `dl` field (the page address the pixel reports) of a request without `eid`. If it contains `/web-pixels@` and `/sandbox/`, it comes from a **custom pixel**. If it shows your normal page address, it comes from code on the page: your theme, an app embed or GTM loaded by the theme.
5. IDs that start with `ob3_plugin-set_` are set by Meta's own pixel code, not by your store. Meta does not document whether they can be matched with Conversions API events. Your server does not know these IDs, so server events you send with your own `event_id` will not match them.

In Meta Events Manager, the **Test events** tool (**Data sources** > your pixel or dataset > **Test events**) shows which browser and server events were received and which were deduplicated.

## How to fix

Meta merges a browser event and a server event when both have the **same event name** and the **same event ID**, received within 48 hours of each other. On Shopify you have three realistic routes.

**Route 1: the Facebook & Instagram app does both sides (most stores).** This is also how you set up the Meta Pixel and the Conversions API together on Shopify: both are switched on in the app's data sharing settings.

1. In your Shopify admin, go to **Sales channels > Facebook & Instagram**, click **Settings** and open **Data sharing settings**.
2. In the **Customer data sharing** section, turn on data sharing, choose **Enhanced** or **Maximum**, and make sure the pixel you advertise with is selected. Shopify notes that these levels share more customer information with Meta (such as name, email address and phone number) and asks you to make sure your customers understand how their information is collected and processed.
3. Remove every other copy of the same pixel: Meta code in `theme.liquid`, custom pixels under **Settings > Customer events**, Meta tags in GTM, and app embeds that add a pixel. Otherwise those copies keep sending events without IDs, and every event is also sent twice (see "Duplicate Meta Pixel events on Shopify").

If you use another Conversions API app instead, follow its documentation. Such tools set matching IDs for the browser events they send themselves, so the app's pixel must be the only copy.

**Route 2: a custom pixel plus your own server events (developer).** Shopify's custom pixel example does not pass an event ID. Every Shopify customer event has an `id`; pass it to the pixel as `eventID`:

```js
analytics.subscribe("product_added_to_cart", (event) => {
  fbq('track', 'AddToCart', {
    currency: event.data?.cartLine?.merchandise?.productVariant?.price?.currencyCode,
    value: event.data?.cartLine?.merchandise?.productVariant?.price?.amount,
  }, { eventID: event.id });
});
```

Your server must then send exactly the same value as `event_id` with the same event name, so it has to receive that ID, for example from the custom pixel. For `Purchase`, the `checkout_completed` event includes the order ID (`event.data.checkout.order.id`), which your server also knows; whatever you choose, both sides must use the identical string.

**Route 3: Google Tag Manager with server-side GTM.** Put a variable that produces a unique ID per event into the event ID field of your Meta tag, and send the same value to your server container, which maps it to `event_id`. If GTM runs as a custom pixel, push Shopify's `event.id` into the data layer together with each event and use it as the ID.

## Common causes

- The pixel was pasted into `theme.liquid` with Meta's standard base code, which does not add event IDs.
- A custom pixel was built from the standard example, which does not pass `eventID`.
- The Conversions API was turned on in the Facebook & Instagram app, but browser events still come from another copy of the pixel.
- The ID is generated separately in the browser and on the server, so the two never match.

## How to verify the fix

1. In the Network tab, every `facebook.com/tr` request for your key events carries an `eid`, and it changes between actions.
2. In Meta Events Manager, open **Test events** and trigger the action: the tool shows which events were received and which were deduplicated. Regular reports can take some time to update.
3. Re-run the check on IsPixelWorking. The issue should be gone.

## Sources

- Shopify Help Center, Facebook data sharing (Standard, Enhanced and Maximum; Conversions API; data shared): https://help.shopify.com/en/manual/promoting-marketing/analyze-marketing/meta-data-sharing
- Shopify Help Center, Meta pixel (more than one pixel can result in duplicate or incorrect data): https://help.shopify.com/en/manual/reports-and-analytics/facebook-pixel
- Shopify Help Center, Create custom pixel code (Meta pixel example): https://help.shopify.com/en/manual/promoting-marketing/pixels/custom-pixels/code
- Shopify.dev, `page_viewed` event (every customer event has an `id`): https://shopify.dev/docs/api/web-pixels-api/standard-events/page_viewed
- Shopify.dev, `checkout_completed` event (order ID): https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_completed
- Meta for Developers, Handling duplicate Pixel and Conversions API events (event ID, event name, 48-hour window): https://developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events
- Meta Business Help Center, About deduplication for Meta Pixel and Conversions API events (partner integrations such as Shopify handle deduplication parameters): https://www.facebook.com/business/help/823677331451951
- Meta Business Help Center, Test events tool: verify app and web browser events for Meta: https://www.facebook.com/business/help/2040882565969969
