> For the complete documentation index, see [llms.txt](https://help.littledata.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.littledata.io/integrations/facebook-capi/meta-capi-faq.md).

# FAQ: Meta Conversions API

Frequently asked questions about Littledata's Meta Conversions API (CAPI) connection for Shopify. Find out what CAPI is and how it works.

### What is Meta CAPI?

The Meta Conversions API (CAPI) is server-side tracking. It works alongside the Meta Pixel to help you improve the performance of your Facebook and Instagram ads. Meta built it because browser tracking alone misses conversions, for example on iOS. See [Meta's announcement](https://www.facebook.com/business/news/navigating-change-and-improving-performance-and-measurement).

### Why do I need Meta CAPI?

Meta's ad algorithms need accurate and complete data about the customer journey to spend your budget well. Better conversion data leads to a higher return on ad spend (ROAS), especially for dynamic product ads.

Littledata connects Shopify to Meta CAPI for you, so you don't need to build it yourself. By default, Littledata sends these events to Meta:

* Page View and View Content
* Add To Cart, Initiate Checkout and Add Payment Info
* Purchase and Post Purchase Upsell

You can also add New Customer Purchase, Returning Customer Purchase, First Recurring Purchase and Recurring Purchase events as recipes in the **Event editor**. See [Recipes](https://help.littledata.io/event-editor/recipes) and [how our Meta connection works](https://help.littledata.io/integrations/facebook-capi/how-it-works-shopify-to-meta-conversions-api).

### How is this better than server-side GTM?

Server-side Google Tag Manager (sGTM) needs your own server on Google Cloud. A developer has to set it up and maintain it.

For a side-by-side of sGTM, Meta's Conversions API Gateway, Shopify's sales channel and Littledata, see [four ways to send Conversions API events from Shopify](/integrations/facebook-capi/meta-ads-tracking-guide.md#four-ways-to-send-conversions-api-events-from-shopify).

Littledata's server-side tracking works without that. We host it and keep the connection up to date. If you also use Littledata for Google Analytics, GA4 and Meta get data from the same source, with the same schema.

### How is Littledata better than Shopify's Facebook & Instagram channel?

Littledata's Meta connection sends more detail to Meta than a standard setup. That includes checkout funnel events, subscription events you can add as recipes, and lifetime value (LTV). It also sends hashed customer details with each server-side event to help Meta match events to people.

Only run one of them for the same pixel. If both send events, Meta counts purchases twice. See [Does Meta deduplicate Littledata's events against other apps?](/integrations/facebook-capi/meta-capi-faq.md#does-meta-deduplicate-littledatas-events-against-other-apps)

### How do I get the Meta CAPI integration?

Install the [Littledata Shopify app](https://apps.shopify.com/littledata) and add Meta as a destination. If you already use Littledata, add Meta from the Littledata app. See the [Meta Conversions API installation guide](https://help.littledata.io/integrations/facebook-capi/how-to-install-shopify-to-conversions-api).

### How do I switch Littledata to a new Meta pixel or ad account?

Open your Meta destination in the Littledata app and replace the **Pixel ID** and **Access token** with the ones for the new pixel. There is one Meta destination per store, so you edit it rather than adding a second one.

You don't need to change anything in Shopify's **Customer events**. The [Littledata Pixel](https://help.littledata.io/sources/shopify/littledata-pixel) there is not your Meta pixel. You only need one per store, whichever Meta pixel you send to.

If you use [Shopify Markets](https://help.littledata.io/sources/shopify-markets) in Littledata, each market keeps its own Pixel ID. Changing the default Pixel ID only applies to markets added later, so update the Pixel ID on every market in the Meta destination's markets table. If you only sell in one market, you can turn off Markets instead. Your current default Pixel ID then applies to the whole store.

Switching pixels resets the learning phase for campaigns optimized on the old pixel. See [what happens when you switch to a new pixel](https://help.littledata.io/integrations/facebook-capi/common-meta-errors#what-happens-when-you-switch-to-a-new-pixel).

### Does Meta deduplicate Littledata's events against other apps?

No. Meta only treats a browser event and a server event as the same event when they share an event ID.

Littledata sends the same event ID with its browser events (from the [Littledata Pixel](https://help.littledata.io/sources/shopify/littledata-pixel)) and its Conversions API events. For purchases, the event ID is based on the order. So Meta counts each purchase once.

Shopify's Facebook & Instagram sales channel, Shopify Campaign Autopilot, or any other tracking app creates its own event IDs. Meta can't match those to ours, so a purchase tracked by both is counted twice. That's why you should [turn off other Meta tracking](https://help.littledata.io/integrations/facebook-capi/how-to-install-shopify-to-conversions-api) when you connect Littledata.

If you use Campaign Autopilot (**Growth → Autopilot** in your Shopify admin), check whether it's connected to the same Meta dataset. It sends its own events to that dataset, including Purchase.

### What exactly can I track? Is there a full schema?

See [how our Meta connection works](https://help.littledata.io/integrations/facebook-capi/how-it-works-shopify-to-meta-conversions-api). For a more detailed schema and parameters, email <help@littledata.io>.

### Can I use Meta CAPI with Segment?

Yes. If you use Littledata's Shopify source for Segment, you have two options:

* Send data from Segment to Meta CAPI with Segment's Meta CAPI destination.
* Send data straight from Shopify to Meta with Littledata's Meta connection, in addition to the data you send from Shopify to Segment.

Read more about [Segment's cloud-mode Meta CAPI destination](https://help.littledata.io/integrations/shopify-to-segment/connect-segment-to-facebook-conversions-api).

### Does Littledata use the fbp or fbc cookie?

Yes, both. Littledata collects the Meta browser ID (fbp) and the Meta click ID (fbc) and sends them with server-side events to improve event match quality.

Not every event will have them:

* **fbp** is only available when the Meta Pixel cookie was set in the browser.
* **fbc** is only set when the shopper clicked a link from a Meta ad. Littledata only keeps fbc for the session where that click happened, so later orders (for example subscription renewals) don't include it.

Read more about [how it works](https://help.littledata.io/integrations/facebook-capi/how-it-works-shopify-to-meta-conversions-api) and [missing fbc parameters](https://help.littledata.io/integrations/facebook-capi/common-meta-errors#fbc-parameter-missing-for-some-events), or see [what fbclid, \_fbc and \_fbp are](/integrations/facebook-capi/meta-ads-tracking-guide.md#what-are-fbclid-_fbc-and-_fbp) in the tracking guide.

### What does the Meta CAPI connection cost?

Littledata pricing is based on the number of Shopify orders you track, with no setup fees. See [Choosing the right plan](https://help.littledata.io/accounts-and-billing/choosing-a-plan) and our [pricing page](https://www.littledata.io/pricing).

### What's the difference between Meta CAPI and the Meta Pixel?

Both help you measure your Meta ads, but they work in different ways. The Meta Pixel runs in the shopper's browser. CAPI sends events from a server. See [Meta Pixel vs Conversions API](/integrations/facebook-capi/meta-ads-tracking-guide.md#meta-pixel-vs-conversions-api) in the tracking guide.

### Why don't the numbers in Google Analytics match Meta?

Purchase events may be close between GA4 and Meta. Conversions and revenue will almost always differ, because each tool attributes sales in its own way.

* **Purchase events** are sent to GA4 and Meta in a similar way, so their counts can be close. Small gaps still happen because of timing and data processing.
* **Conversions and revenue** differ because GA4 and Meta use different attribution models and windows. GA4 looks at touchpoints across all channels. Meta credits sales to its own ads, using its attribution window (by default, 7 days after a click or 1 day after a view).

See [Why is Meta attribution different from GA4?](https://help.littledata.io/integrations/facebook-capi/why-is-meta-attribution-different-from-ga4)

### Why don't the numbers in Shopify match Meta?

Like GA4, purchase counts may be close between Shopify and Meta, but conversions and revenue will almost always differ.

* **Purchase events** are sent to Meta for Shopify orders, so the counts can be close. Small gaps still happen because of timing and data processing.
* **Conversions and revenue** differ because Shopify reports the actual orders, with no attribution model. Meta uses its own attribution windows, which can span several days. It can credit a sale to an ad even when the ad was not the last touchpoint.

### Related articles

* [Meta Conversions API installation guide](https://help.littledata.io/integrations/facebook-capi/how-to-install-shopify-to-conversions-api)
* [How it works: Shopify to Meta Conversions API](https://help.littledata.io/integrations/facebook-capi/how-it-works-shopify-to-meta-conversions-api)
* [Troubleshooting common Meta errors](https://help.littledata.io/integrations/facebook-capi/common-meta-errors)
* [Meta event match quality](https://help.littledata.io/integrations/facebook-capi/meta-event-match-quality)
