# Meta Conversions API for WooCommerce: What It Fixes, What It Doesn’t, How to Set It Up > The browser pixel misses a third of your conversions. Meta's Conversions API fixes that — if you deduplicate correctly and respect consent. A practical WooCommerce guide. *Source: https://plugins.viglan.com/meta-conversions-api-woocommerce/* Meta’s own numbers say it plainly: browser-pixel-only tracking misses a large share of conversions to ad blockers, iOS privacy features and cookie loss — and Meta’s delivery optimization is only as good as the conversion data it receives. The Conversions API (CAPI) is Meta’s answer: send events from your server as well, and let Meta merge the two streams. ## What CAPI actually fixes - **Blocked pixels.** Your server is not running an ad blocker. Purchases that happened but never produced a browser event now reach Meta. - **Signal quality for optimization.** Campaigns optimizing on purchases perform measurably better when the purchase stream is complete — this is the practical reason to bother. - **Match quality.** Server events can carry hashed customer identifiers (email, phone) that improve Meta’s ability to attribute the conversion to the right ad account user. ## What it does NOT fix - **Consent obligations.** GDPR applies to your server exactly as to the browser. An EEA customer who declined marketing consent must not have their purchase sent to Meta — CAPI is not a consent bypass, and treating it as one is a compliance incident waiting to be found. - **Attribution for never-tracked users.** If someone blocked the pixel from the first click, Meta may receive your server event but have no click to join it to. - **Bad product feeds, weak creative, wrong audiences.** Better plumbing, same water. ## The one thing you must not get wrong: deduplication When both the browser pixel and CAPI send the same purchase, Meta keeps one copy — but only if both carry the same `event_name` and the same `event_id`. Get this wrong and every ROAS number doubles overnight, which feels great for a week and then destroys trust in the account. For WooCommerce the natural shared `event_id` is the order number: the browser pixel attaches it on the thank-you page, the server attaches the same on the order hook. Test in Meta’s Events Manager: the event should show “Deduplicated” across both channels. ## Setup routes for WooCommerce 1. **Direct integration (code):** hook order completion, build the payload (event_id, hashed user data with SHA-256, value/currency/items), POST to the Graph API with your dataset’s access token. Full control; you own consent gating, hashing, retries and refund handling. 2. **A GTM server container:** flexible, but you now run infrastructure and still need a correct client feed into it. 3. **A plugin that ships CAPI turnkey** alongside the rest of the funnel — the sane default unless you have special requirements. Look for: consent gating, event_id dedup, hashed-only identifiers, and TikTok/GA4 server events from the same pipeline (one integration, three platforms). ## Hashing and privacy, concretely Meta requires customer identifiers normalized then SHA-256 hashed (lowercase email, E.164 phone). Hashing is not anonymization under GDPR — hashed identifiers are still personal data. The correct order of operations: check marketing consent → only then build hashed user_data → send. Your privacy policy must name Meta as a recipient. If a plugin sends identifiers unconditionally, that is a defect, not a feature. ## Verify like you mean it Events Manager → your dataset → Test events: place a test order and confirm (1) the server event arrives, (2) it deduplicates against the pixel event, (3) match quality shows the hashed fields, and (4) declining consent on a second test order produces *no* server event. That fourth check is the one everyone skips. *TrackPilot Pro sends the purchase to Meta CAPI (and TikTok Events API, and GA4 Measurement Protocol) server-side — consent-gated, SHA-256 hashed, deduplicated against the browser pixel via a shared event_id. [See TrackPilot →](https://plugins.viglan.com/plugins/trackpilot-for-woocommerce-ga4-gtm-tracking-pro/)*