WooCommerce plugin + Meta Conversions API, EU-hosted

Meta Conversions API for WooCommerce, deduplicated with your pixel

A WordPress plugin that sends the WooCommerce order to the Meta Conversions API from your server, stamped with the same event_id as the pixel so Meta merges them. It reads the order through HPOS, survives the caching and optimiser plugins that silence browser events, and hashes identifiers inside your site.

The problem

Why Meta sees fewer WooCommerce sales than WooCommerce does

A WordPress store runs a dozen plugins that touch the front-end. The Meta pixel is the one that pays for it, because it is the last to load and the first to be deferred.

The pixel is at the mercy of the stack

A cache plugin serves a page without the tag, an optimiser defers the script past the redirect, a consent plugin blocks it longer than it should. The order completes, Events Manager stays empty.

Two integrations, two purchases

Adding a Conversions API call next to the pixel without a shared event_id makes Meta count the same sale twice. Reported revenue climbs, ROAS looks great, and every decision built on it is wrong.

Identifiers left on the table

WooCommerce holds the email, the phone and the name of a validated order. A browser-only pixel usually sends none of them, and Event Match Quality stays low for no good reason.

The fix

The order as source of truth, the pixel as a second opinion

The plugin sends the purchase from your server when WooCommerce validates the order, with the same event_id as the browser event, and with the identifiers hashed inside your site.

Deduplicated on the order id

Both events carry event_id derived from the WooCommerce order, Meta’s documented deduplication key. The purchase is counted once whichever path arrives, or both.

Immune to the plugin that broke your pixel

The server event leaves WordPress on the order hook, not from the browser. Caching, deferral and blockers stop mattering for the event that carries your revenue.

Hashed in your site, never in clear

Email, phone and name are hashed before they leave your server. Meta gets what it needs to match, you keep the plaintext, and the retry queue replays a failed delivery instead of dropping it.

Setup

Three steps, and Meta CAPI starts receiving

  1. Install the connector

    A WordPress plugin installed from the admin, with a retry queue and an Activity panel so you can see what left and what did not.

  2. Paste your connection key

    One key from your DataFirefly console identifies the site. It is the only thing your shop holds: no destination credential ever lives in your store.

  3. Add Meta CAPI as a destination

    Your Meta CAPI settings go into the console, stored encrypted on our side. Rotating them later touches nothing in the shop.

The same connector feeds every other destination from the same events, so Meta CAPI is a starting point rather than a silo. See the WooCommerce connector in detail or the Meta Conversions API across all platforms.

Same connector

Your other destinations from WooCommerce

One installation, one key. The events you already send reach every destination you switch on.

Pricing

Included in every plan, free plan included

10,000 events a month free, no card. Paid plans from 39 €/month when your volume grows. Every destination is included in every plan: Meta CAPI is never an add-on.

FAQ

Frequently asked questions: WooCommerce and Meta CAPI

Will WooCommerce purchases be counted twice in Meta?

No. The browser event and the server event share an event_id derived from the WooCommerce order id, which is the deduplication key Meta documents. It merges them and keeps the richer one. Double counting is what happens when a Conversions API call is added by hand without that key.

Should I keep my existing Meta pixel plugin?

Keep a pixel for browsing signals, but make sure only one integration sends the purchase. The simplest setup is to let our plugin own the whole funnel; the alternative is to disable the purchase event of your other plugin.

Is it compatible with HPOS?

Yes. Compatibility with custom order tables is declared and the order is read through the WooCommerce API, so the purchase reaches Meta the same way whichever storage your store uses.

How does this improve Event Match Quality?

The validated order carries hashed email, phone and name, plus the _fbp cookie and an _fbc rebuilt from the fbclid when the pixel never wrote one. Those are the fields Meta uses to match, and they are exactly what a browser-only pixel usually omits.

What if Meta is unreachable when the order is placed?

The event is queued and replayed. Meta accepts conversions for several days after the fact, so a passing outage costs nothing, and the Activity panel in your WordPress admin shows the queue.

Where is the Meta access token kept?

Encrypted on our side, never in your WordPress database and never in a theme file. Your site holds only the connection key, revocable in one click from the console.

Stop losing WooCommerce sales to a deferred script

Install the plugin, paste one key, connect your pixel and access token. The next order reaches Meta from your server, deduplicated and matched.