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.
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
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.
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.
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.
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 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.
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.
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.
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
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.
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.
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
One installation, one key. The events you already send reach every destination you switch on.
Pricing
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
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.
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.
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.
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.
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.
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.
Install the plugin, paste one key, connect your pixel and access token. The next order reaches Meta from your server, deduplicated and matched.