The Meta Pixel is a tracking code on your website that reports visitor actions such as add to cart and purchase to Meta from the browser. The Conversions API (CAPI) sends the same events from your server or store platform. You set up both and deduplicate them with an event ID (event_id), so sales lost to browser restrictions get measured.
Accurate measurement is the foundation of Facebook and Instagram ads: if the platform can't tell which ad drove a sale, sales campaigns can't learn who to show ads to. This article explains both tools, why they're used together, and how to set them up on Shopify and WooCommerce. Interface names are described in general terms as of October 2026.
The Meta Pixel is a piece of JavaScript placed on your site that sends visitor actions to Meta as events. Meta's Meta Pixel help page covers the tool in detail.
The standard events most used in ecommerce:
- PageView: A page view.
- ViewContent: A product page view.
- AddToCart: Adding to cart.
- InitiateCheckout: Starting checkout.
- Purchase: A purchase; must be sent with the amount and currency.
With these events, the pixel does three jobs: it measures ad results, feeds optimization for events like purchases, and lets you build retargeting audiences from site visitors.
What is the Conversions API (CAPI)?
The Conversions API is an integration method that sends events directly from your server or store platform to Meta's servers instead of from the visitor's browser. Because it travels server to server, it isn't affected by browser ad blockers, cookie restrictions or a page being closed halfway.
CAPI can also send events the browser never sees, such as an order whose payment is confirmed later or a sale completed over the phone.
You should use the pixel and the Conversions API together because each covers the other's blind spot. The pixel is good at capturing browser behavior and browser-specific information; CAPI provides a reliable second channel that isn't affected by browser restrictions.
Browser-side measurement has become harder in recent years:
- Ad blockers can stop the pixel code from running.
- Browser limits on third-party cookies and tracking make it harder to recognize users.
- iOS App Tracking Transparency limits cross-app tracking when users don't grant permission, which affects measurement of visitors arriving from the Facebook and Instagram apps.
Because of these restrictions, a pixel-only setup may never report some of your sales to Meta. Shopify's data-sharing help page states this plainly: browser-based ad blockers can stop the pixel from sharing data, while events sent server to server aren't affected by them.
How does event deduplication work?
Event deduplication means counting the two copies of the same event, one from the pixel and one from the Conversions API, as a single event; Meta does this when the event name and event ID match. Without deduplication, each purchase may be counted twice and your reports will look better than reality.
According to Meta's deduplication documentation, the recommended method works like this:
- Same event name: The pixel event name (e.g. Purchase) must match
event_name in CAPI. - Same event ID: The pixel's
eventID must match event_id in CAPI. An order number or a unique ID generated for each event is typically used. - Time window: For the same pixel ID, a second event with the same
event_id arriving within a set period (48 hours in the documentation) is treated as a duplicate and discarded.
Example: A customer completes order 10482. The browser pixel sends the Purchase event with eventID: "order_10482", and your server sends event_name: "Purchase" with event_id: "order_10482". Meta matches the two and counts one sale.
Why does match quality matter?
Events sent through the Conversions API include customer information (such as email and phone) in hashed form so Meta can match the event to the right person. Events Manager shows a match quality indicator for each event. Better matching means more sales are attributed to the right ad. When sharing this data, make sure you meet the requirements of your privacy policy and applicable data protection laws.
Setup depends on your store platform; if you use a hosted ecommerce platform, the official integration is the easiest and least error-prone route. The general flow is:
- Create a dataset (pixel) in Events Manager and connect it to your business portfolio.
- Verify your domain. Verifying your site's domain in the brand safety section of your business portfolio lets you manage event configuration.
- Add the pixel to your site. Via a platform integration, a tag manager or manual code.
- Connect the Conversions API. Via a platform integration, a partner integration or a direct integration from your own server.
- Set up deduplication. Make sure the browser and server send the same event name and event ID for every event.
- Add value to the purchase event. Without
value (amount) and currency, ROAS can't be calculated. - Test. Run a real flow on your site using the Test Events tool in Events Manager.
How do you set it up on Shopify?
On Shopify, setup runs through the Facebook & Instagram sales channel app. After installing the app and connecting your Meta account, business portfolio and pixel, you choose a level in the data-sharing settings. According to Shopify's help page, there are three levels:
- Standard: Only the Meta pixel is used.
- Enhanced: The pixel and Conversions API are used together; purchase events are sent server to server and customer information is shared for matching.
- Maximum: The pixel and Conversions API are used together, updated with Meta's latest ad technology.
To reduce measurement loss, it makes sense to choose a level that includes the Conversions API rather than Standard. If an old pixel code was added manually to your theme, remove it so events aren't sent twice.
How do you set it up on WooCommerce?
On WooCommerce, the official route is the "Meta for WooCommerce" extension. According to its documentation, it supports pixel setup and comes with the Conversions API integrated out of the box. After installing it and connecting your Meta account, check in Events Manager that events arrive from both browser and server and are deduplicated. If you also use another pixel plugin, keep only one active to avoid conflicts.
What are the most common pixel setup mistakes?
The most common mistake is installing the same pixel through several routes: when code added to the theme, a plugin and a platform integration all run at once, events are sent two or three times. Deduplication is designed only to match browser and server copies; events arriving twice from the same browser can corrupt reports.
Other common mistakes:
- The Purchase event firing again when the thank-you page is refreshed: If the customer refreshes or comes back, the same sale can be counted again. Using the order number as the event ID reduces this risk.
- Wrong currency: Sending sales in a different currency than the one you actually charge makes revenue and ROAS reports meaningless.
- Inconsistent amounts: Sending amounts that include shipping in one place and exclude it in another creates unexplained gaps between your store and ads dashboard.
- Checkout on a different domain: If checkout moves to another domain, make sure events fire there too.
- Test events mixing with live data: Run setup trials with the Test Events tool so they don't mix with real orders.
- Forgetting the cookie consent flow: If your site uses cookie consent, make sure the pixel respects consent choices.
These mistakes share the same outcome: the ads dashboard doesn't reflect reality and budget decisions rest on bad data. Fixing measurement before scaling a campaign is far cheaper than the budget you'd lose afterwards.
How do you check that the setup is correct?
You check the setup by running a real shopping flow on your site and confirming the events land in Events Manager with the right name, the right value and only once.
Checklist:
- Is every event arriving? ViewContent, AddToCart, InitiateCheckout and Purchase.
- Are the amount and currency on the Purchase event correct? Shipping included or excluded, and consistent?
- Do events arrive from both browser and server and get deduplicated?
- Is match quality reasonable?
- Does the order count in your store roughly match purchases in Meta? Don't expect an exact match, but a big gap signals a problem.
Once measurement is in place, metrics like ROAS and CPA become meaningful; we cover them in our guide on what ROAS is and how to calculate it. Ad tools like 14ads also read sales and revenue data in their reports from these events.
Summary
- The Meta Pixel sends events to Meta from the browser and the Conversions API from the server; you should set up both.
- Ad blockers, cookie restrictions and iOS permission settings cause lost sales in pixel-only measurement.
- For deduplication, the pixel and CAPI must send the same event name and the same event_id.
- Use a data-sharing level that includes the Conversions API in Shopify's Facebook & Instagram app, and the Meta for WooCommerce extension on WooCommerce.
- Always add amount and currency to the Purchase event, and verify the setup with the Test Events tool in Events Manager.
Frequently asked questions
What is the difference between the Meta Pixel and the Conversions API?
The Meta Pixel is code that runs in the visitor's browser and sends events to Meta from there. The Conversions API sends events directly to Meta from your server or store platform. Because server-side sending isn't affected by browser restrictions such as ad blockers, the two are used together.
Will sales be counted twice if I use the Pixel and Conversions API together?
Not if they're set up correctly. Meta counts the browser and server copies of the same event as one event when the event name and event ID (event_id) match. If those two fields don't match, events can be double-counted and your reports will be inflated.
How do I set up the Meta Pixel on Shopify?
The easiest way on Shopify is to install the Facebook & Instagram sales channel app and connect your Meta account. In the app's data-sharing settings, the Standard level uses only the pixel, while the Enhanced and Maximum levels add the Conversions API on top of the pixel.
How can I tell if my Meta Pixel is working?
Use the Test Events tool in Meta Events Manager, browse your site and go through the purchase steps to see whether events arrive in real time. The Meta Pixel Helper browser extension can also check the browser side. Make sure each event arrives from both the browser and the server and is deduplicated.
Can I run Meta ads without a pixel?
You can, but Meta won't know which ad drove a sale. Sales and revenue reports stay empty, ROAS can't be calculated, and campaigns optimizing for purchases can't learn who to target. For sales-focused ads, the pixel and Conversions API are effectively required.