How to Set Up Meta Conversions API on Shopify: The Step-by-Step Guide

|Dan Giura
How to Set Up Meta Conversions API on Shopify: The Step-by-Step Guide

TL;DR

Setting up the Conversions API on Shopify takes about ten minutes once you have decided which path you are taking, and the path decision is a separate question with a separate answer: Meta CAPI on Shopify, native channel versus GTM versus app works through that trade-off and this guide does not re-argue it. What follows assumes you have chosen and are ready to wire it up. You will collect a dataset ID, generate an access token, connect the two to your store, confirm what happens to consent, and verify the first purchase in Events Manager. The verification step is the one people skip and the one that catches every setup error.

Key Takeaways

  • The Conversions API needs exactly two credentials: the dataset ID from Events Manager and a Conversions API access token generated in that dataset's settings [2].
  • In practice the token dialog does not re-display the token, so copy it before you close it and store it in a password manager. The recovery path is generating a new one.
  • Server events are processed like pixel events at the dataset level [1], which is why a correctly configured server purchase can carry hashed email, phone, name, city, state, zip, and country.
  • Event match quality is scored only for Conversions API website events with the action source set to Website, on a 0 to 10 scale over the last 48 hours [4].
  • Browser events respect Shopify's Customer Privacy API signals [5].
  • Verification means one real order confirmed as one server event in Events Manager, with a match quality reading beside it.
  • Meta tracking is on the WeltPixel Conversion Tracking Plus plan at $39/mo; the free plan covers GA4 only [6].

What you need before you open Events Manager

Four things, and gathering them first saves a round trip. You need developer privileges on the Meta Business portfolio that owns the dataset. Meta hides the token generator from everyone else [2]. You need the Shopify store's admin, since the app install and the theme app embed both happen there. You need to know whether a pixel is already firing on the store, from a theme snippet, an app, or the native Facebook and Instagram sales channel, because a second uncoordinated path is how double counting starts. And you need one test purchase you are willing to place and refund.

That third item is worth thirty seconds now rather than an hour later. Open your storefront, view source, and search for the Meta pixel base code, then open Settings → Apps and sales channels in Shopify Admin and look for anything advertising Meta or Facebook tracking. Whether to keep both paths is the question the path-choice guide settles, and this guide takes your answer as given. The pixel audit walkthrough covers how to inventory what is already running.

Where do you find your dataset ID?

In Events Manager, under the data source itself. Meta renamed pixels to datasets in the interface, so the ID you are looking for may be labeled either way depending on where you land.

Open Events Manager and select the dataset for the store you are configuring. The numeric ID sits directly under the dataset name, and it appears again in the dataset's settings, where Meta lists the dataset ID. Copy it exactly, with no spaces.

If no dataset exists yet, create one from the connect-a-data-source flow, choosing the web option, and name it after the store rather than the brand. Skip the guided setup offered at that point: those flows are aimed at installing a browser pixel, which is not what you are here for and can leave a second path running.

One naming note that pays off in a year: if you run more than one store, put the store domain in the dataset name. Portfolios accumulate datasets named "Pixel" and "Main Pixel", and nobody remembers which store fed which.

How do you generate the Conversions API access token?

From the dataset's own settings, in the Conversions API section, using the token generator Meta provides for exactly this case [2].

The path is Settings tab → Conversions API section → Generate access token. Clicking Manage automatically creates a Conversions API app and system user for you [2], and Meta returns a long string. Copy it immediately. In practice the dialog does not re-display it, and the fix for a lost token is generating a replacement, which does mean updating wherever the old one lives.

Treat the token as a credential with real reach. It can write events into that dataset, and events write into your optimization and your reporting. Store it in a password manager, not a shared spreadsheet, and never paste it into a theme file, a support ticket, or a Slack thread.

The alternative route, a system user token created in Business Settings with ads permissions, is the same credential arrived at the long way. Use it when your organization requires system users to be created deliberately rather than implicitly. Everyone else should take the generator.

Connecting the dataset to your Shopify store

With an app, the connection is those two values and nothing else. You paste the dataset ID and the access token into the app's Meta settings, enable the channel, and save.

Two configuration points deserve attention while you are in there. First, if the native Facebook and Instagram sales channel is connected, decide whether it stays; the path-choice guide linked above covers that trade-off. Second, install or confirm the theme app embed if the app asks for one.

WeltPixel Conversion Tracking asks for the dataset ID and the token, keeps credentials out of browser-accessible code, and sends the purchase from Shopify's orders/create webhook rather than from the browser. Funnel events, page views through add-to-cart and checkout, are delivered server-side as well, with the optional browser page view left as a toggle. The practical difference from a browser-only setup is that a blocked script or a closed tab no longer removes the sale from Meta's view. The fundamentals of that split are in Conversions API versus browser pixel.

Since an April 2026 announcement, Meta has offered a one-click, Meta-hosted server connection configured from Events Manager with no app credentials [7]. Trade coverage describes it as web-only, mirroring what your pixel already fires, with no custom parameters.

What happens to consent when events go server-side

The precise claim, and the one to hold onto: browser events respect Shopify's Customer Privacy API signals [5]. Shopify's Customer Privacy API exposes the visitor's analytics and marketing preferences to pixels running on the storefront, and a browser-side Meta event checks that signal before it fires.

In a consent-banner market, a browser-only configuration records fewer events. Decide what you are entitled to send before you decide where you send it from. A server path is not a way around a shopper's choice, and no honest tracking setup is sold that way. Write your consent policy first, configure your data sources to match it second, and document which events you send from where. Your future self, or your auditor, will ask.

How do you verify the first purchase arrived?

With one real order and three screens. Do this before you tell anyone the setup is done.

  1. Place a live order on the storefront. Use a real payment method and a real email, then refund it afterwards.
  2. In Events Manager, open the dataset's overview and watch for the Purchase event. It should appear within seconds to a couple of minutes.
  3. Open the event's detail panel and confirm the connection method shows a server event. This is the screen that proves the API leg works, rather than the pixel quietly carrying the whole thing.
  4. If you are running a second Meta path alongside the app, check the deduplication indicator; with a single path there is nothing to deduplicate and one server Purchase is the healthy result. The mechanics of the two-path case, and what to do when the copies do not collapse, are in how event_id prevents double counting.
  5. Note the event match quality score on the Purchase event. Remember it is calculated on the last 48 hours [4], so a single test order gives you a rough reading rather than a verdict.

If the Purchase never appears, the usual causes are a mistyped dataset ID, a token generated on a different dataset, or an order type your plan or your app settings exclude, such as a draft order or a POS sale.

What to check in week one

Give it seven days, then look at three things rather than the whole dashboard.

Compare the purchase event count in Events Manager against your Shopify order count for the same closed window and the same time zone. A near match means delivery is working. Read the purchase event match quality score once the volume is real, since a 0 to 10 score on 48 hours of data needs actual traffic to mean anything [4]. And confirm your ad sets still report on their usual attribution setting, so the week-over-week comparison you make next month is valid.

The rest of the post-install checks that apply to any tracking setup, not just Meta, are collected in the 10 things to verify after install.

Once purchases arrive server-side with the hashed customer record attached, the number in Ads Manager stops moving for reasons you cannot explain. To get there on your store, install WeltPixel Conversion Tracking and paste in the two credentials above.

FAQ

Do I need both the Meta pixel and the Conversions API?

Running both is the standard configuration, and Meta documents server events as processed like pixel events at the dataset level [1]. The requirement is that duplicate copies of one purchase share both the event name and the event ID [3]. A server-only setup is possible and costs you browser-side signals that never reach the order record.

Where is the Conversions API access token in Events Manager?

In the dataset's Settings tab → Conversions API section → Generate access token [2]. In practice the dialog does not re-display the token, so copy it before you close it. If it is lost, generate a new one and update it wherever it is stored.

Does the Conversions API work with Shopify checkout extensibility?

Yes, because a server-side purchase is built from the order rather than from a script on the thank-you page. That independence is the reason server delivery survived the checkout changes that broke script-based tracking.

How long until events show up in Events Manager?

Purchase events built from the order webhook typically appear within seconds. The event match quality score takes longer to be useful, since it is calculated on the trailing 48 hours of data [4].

Sources

  1. Meta for Developers, "Conversions API", developers.facebook.com/docs/marketing-api/conversions-api/, accessed August 26, 2026
  2. Meta for Developers, "Conversions API: Get started", developers.facebook.com/docs/marketing-api/conversions-api/get-started, accessed August 26, 2026
  3. Meta for Developers, "Deduplicate pixel and server events", developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events, accessed August 26, 2026
  4. Meta Business Help Center, "About event match quality", facebook.com/business/help/765081237991954, accessed August 26, 2026
  5. Shopify, "Customer Privacy API", shopify.dev/docs/api/customer-privacy, accessed August 26, 2026
  6. WeltPixel Conversion Tracking, Shopify App Store listing, apps.shopify.com/weltpixel-conversion-tracking, accessed August 26, 2026
  7. PPC Land, "Meta's free one-click Conversions API is now live", ppc.land/metas-free-one-click-conversions-api-is-now-live-no-developer-needed/, April 2026

Ready to upgrade your tracking?

Server-side tracking for Magento and Shopify — accurate data, better attribution, full privacy compliance.