Shopify to Meta Conversions API, in detail
How the Shopify Meta Conversions API connection works.
By Shopify’s own description, its Facebook & Instagram app sends only the purchase through the Conversions API, even at the Maximum data sharing level: page views, add to carts and checkouts stay browser pixel events. Upstack sends all five standard events from its servers as well as the browser, each pair sharing an event_id, so Meta keeps one copy and still gets the event when the pixel is blocked.
Shopify’s data sharing has to go
Shopify’s Facebook & Instagram data sharing emits no event_id that matches Upstack’s, so Meta can’t deduplicate the two and counts purchases twice. Turn it off, along with any other Meta pixel in your theme, apps or Google Tag Manager.
Deduplication with event_id
With the default Browser + Server tracking method, Upstack loads the Meta Pixel and sends the same events from its servers, and both copies carry the same event ID, so Meta keeps one. Another sender on the same pixel, such as a platform’s own Meta integration, Meta’s Conversions API Gateway or a third-party CAPI app, has no matching ID, so turn it off.
Purchases that miss the thank-you page
Shopify fires its checkout completed event once, on the thank-you page or on the first upsell page, and not at all if that page fails to load. Upstack also receives every order directly from Shopify, even when the pixel doesn’t fire.
Upsells and renewals
When a post-purchase offer tagged AfterSell Upsell raises an order’s total, Upstack sends the extra amount as a separate upsellPurchase custom event, not a second Purchase. Subscription renewals are tracked as their own event and aren’t sent to Meta as purchases.
Event Match Quality
Every event carries every available match key: em, ph, fn, ln, ct, st, zp and country, plus fbc, fbp and external_id, with personal data hashed with SHA-256. Meta scores each event type separately once it has enough real events, usually within 24 to 48 hours.
Health and wellness stores
If Meta restricts your store under its health and wellness rules, use a new dataset and turn on Restricted Category Mode with a domain alias. Upstack then skips the browser pixel, sends events through the Conversions API only and removes product details.