Skip to main content
Shopify + Meta CAPIPlatform solution

Meta Conversions API setup for Shopify

Shopify is the platform where Meta double-counting is most common, because there are so many ways to send the same purchase: the native Meta channel app, a Customer Events pixel, a theme snippet, and a container. Each mints its own event ID. The fix is one path per event with the Shopify order ID as the shared event_id, and every other path switched off after deduplication is verified.

Free30 minutesNo obligation

Shopify + Meta CAPI · what breaks

What goes wrong on Shopify

  1. 01

    Purchase tracking stopped on a specific date

    The checkout extensibility cutover. Anything in checkout.liquid or additional scripts died silently, and the checkout kept working perfectly.

  2. 02

    Wallet payments never reach the thank-you page

    Shop Pay and PayPal can be abandoned after payment completes. The order exists in Shopify and no platform hears about it.

  3. 03

    Several apps all sending purchase

    The Meta channel app, a pixel app and a container is three conversions for one order.

  4. 04

    Refunds never reversed

    Reported revenue only climbs, diverging from your books by your entire return rate.

Shopify + Meta CAPI · the fix

What changes — Shopify + Meta CAPI

  • Purchase from the order record

    Immune to what the customer's browser did after paying.

  • One conversion per order

    Deduplicated on the Shopify order ID at every destination.

  • Refunds reversed

    From the refund webhook, so the number can fall as well as rise.

Shopify + Meta CAPI · architecture

How Meta tracking behaves on Shopify

The Meta failure mode on Shopify is almost always duplication rather than absence, because Shopify makes it easy to add a second sending path without removing the first.

  1. 1

    Count the paths before building

    Native Meta channel app, pixel apps, theme snippets and containers can all be live simultaneously.

  2. 2

    Shopify order ID as event_id

    Both paths can produce it identically without coordinating, which is exactly what deduplication needs.

  3. 3

    Purchase from the webhook, Pixel from the browser

    Both deduplicated. Removing the Pixel entirely costs you fbp and fbc and lowers match quality.

  4. 4

    Customer data normalized before hashing

    From the order record. The most common cause of a low EMQ score on any platform.

  5. 5

    Read the Deduplicated indicator over a week

    Not on the day of handover.

Shopify + Meta CAPI · diagnose

Where Shopify tracking breaks, in diagnostic order

Each check rules out a class of cause, so by the last one there is usually a single explanation standing.

  1. 01

    Find the date purchases dropped

    If it matches your checkout extensibility cutover, that's the whole diagnosis.

  2. 02

    Check additional scripts and checkout.liquid

    They often still contain tags, doing nothing.

  3. 03

    List every app that could be sending

    Then check the ones nobody mentioned.

  4. 04

    Test a wallet payment specifically

    Shop Pay or PayPal, abandoning the confirmation page after paying.

  5. 05

    Match a closed week on order ID

    Shopify web orders against each platform's purchase count.

Shopify + Meta CAPI · prove

The QA evidence — Shopify + Meta CAPI

Run on Shopify specifically, on a live conversion rather than in preview mode.

Source of truth

your Shopify order records, web orders only

  • A live order placed and the payload read field by field, not previewed.
  • Shopify order ID present as transaction_id and event_id at every destination.
  • A wallet payment tested with the confirmation page abandoned after payment.
  • Purchase count within a few percent of Shopify web orders for a closed week.
  • A real refund issued and confirmed reversing.
  • Reconciled over a fully closed window, matched per record rather than on totals.
  • Re-checked 30 days later, and after any platform update.

Shopify + Meta CAPI · free audit

What we check in the free audit

  • Find the date purchases dropped
  • Check additional scripts and checkout.liquid
  • List every app that could be sending
  • Test a wallet payment specifically
  • Match a closed week on order ID

Checked against

your Shopify order records, web orders only

Get my free conversion tracking audit

Free30 minutesNo obligation

Shopify + Meta CAPI · when not to buy

When you don't need this on Shopify

Worth reading before you buy anything, from us or anyone.

  • If your purchase count already matches your Shopify web orders within a few percent and refunds reverse, nothing here needs doing. Reconcile a closed week and find out — it takes an hour and it's free.
  • If you're a small store on a standard checkout with no wallet payments and one destination, Shopify's native channel integrations are free and genuinely sufficient. We'd rather you used those.
  • Server-side matters most when wallet payments are a real share of your orders, when your consideration window is longer than a week, or when you need refunds reversed. If none of those apply, the browser-side path may be fine.
  • Whatever you do, don't add a second sending path without removing the first. On Shopify that is the single most common cause of doubled conversions, and it makes your data worse than doing nothing.

Shopify + Meta CAPI · what we deliver

What gets built for Meta on Shopify

  • A shared event ID on both paths

    The Shopify order ID, sent as event_id from both the Customer Events pixel and the server event.

  • Standard event names, exactly cased

    Meta matches on name and ID together, so a case difference alone produces two events.

  • Customer data normalized then hashed

    Lowercase and trimmed email, phone in E.164. This is where nearly every low match quality score comes from.

  • fbc and fbp forwarded from the browser

    fbc only exists if fbclid was captured on landing — a very common gap.

Written guarantee

95%+ tracking accuracy

Measured against your Shopify order records, web orders only. Miss it and we keep working at no cost.

Get my free conversion tracking audit

Pricing

Pick the package that fits your ad spend

Browser-side starter

$400One-time fee · lifetime ownership

Repairs and verifies the browser-side setup you already have, on a live conversion. Honest about its ceiling on this platform.

  • Root cause fixed, not worked around
  • Verified on a live conversion
  • Reconciled against your own records
  • Written handover
Fix what I have

1st-party server-side

Recommended

$800One-time fee · most popular

Money events sent from your own records through a first-party container on your subdomain, so the browser can no longer lose them.

  • First-party server container on your own subdomain
  • Money events from your records, not the browser
  • Deduplicated on a shared event ID at every destination
  • First-party cookies beyond Safari's 7-day cap
  • 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Rebuild it server-side

Full 1st-party stack

$1,800One-time fee · lifetime ownership

Every paid channel server-side plus the offline loop, with monitoring so the next break surfaces in days.

  • Everything in 1st-party server-side
  • Pinterest, Snapchat, Reddit and LinkedIn CAPI
  • CRM and offline conversion loop
  • Refunds and cancellations corrected wherever each platform allows it
  • Monitoring on every destination
Get the full stack

FAQ

Shopify + Meta CAPI questions, answered

Two paths sending with different event IDs. On Shopify that's usually the native Meta channel app plus a container or a pixel app.

Free · 30 min

Get Pixel and CAPI counting once on Shopify

Free30 minutesNo obligation