“Your conversion tracking is probably broken, and you might not even know it.” That’s not paranoia—it’s the opening line of Usercentrics’ guide to Facebook CAPI. You set up server-side tracking. GTM preview mode shows your tags firing. But Events Manager tells a different story: fewer conversions than your WooCommerce dashboard, low Event Match Quality scores, and diagnostic warnings you can’t explain.
Something is failing between your server and Meta. The frustrating part? You have no way to see what.
Traditional debugging doesn’t work here. Browser DevTools is useless—CAPI events go server-to-server, not through the browser. Preview mode confirms the tag fired but cannot confirm Meta accepted it. Events Manager shows aggregate diagnostics—you see “event issues” but not which specific events failed or why. The visibility gap between “tag fired” and “Meta received” is invisible by default.
The Debugging Gap: What You Can’t See
When a Facebook Pixel fires client-side, debugging is straightforward. Open DevTools, check the Network tab, look for facebook.com requests. You see exactly what data transmitted and whether the request succeeded.
CAPI events work differently. Your server sends data directly to Meta’s Conversions API. No browser involvement. No DevTools visibility. The transaction happens between two servers you cannot observe without specific logging infrastructure.
Preview Mode: The False Confidence Problem
GTM server-side preview mode shows your Facebook CAPI tag configuration executing. You see the event data. You see “Tag Fired” status. Everything looks correct. But preview mode cannot tell you what happened next.
Preview mode confirms your tag attempted to send data. It does not confirm Meta received, accepted, or processed that data.
A tag can fire successfully while sending malformed data Meta rejects. A tag can fire while your API access token has expired. A tag can fire while missing required parameters that cause silent failures. Preview mode shows none of this.
You may be interested in: Facebook CAPI for WooCommerce: The Server-Side Setup Guide You Actually Need
Response Codes: The Missing Visibility Layer
When your server sends a CAPI event, Meta responds with an HTTP status code. 200 means success—Meta received and will process the event. 400 means rejection—something was wrong with your data. 401 means authentication failed. These codes tell you exactly what happened.
But here’s the problem: seeing these response codes requires paid server-side log tiers.
According to Stape’s documentation: “Response logs are beneficial when troubleshooting server-side tagging. For example, you can filter all responses received from Facebook and see if all have 200 response codes, meaning they were processed correctly.”
The catch? Response logs only work with certain tag types and must be enabled per tag in settings. If you didn’t enable logging when you configured your Facebook CAPI tag—or if you’re using tags that don’t support response logging—you cannot see what Meta actually received.
Events Manager: Aggregate Diagnostics, Not Event-Level Debugging
Events Manager does provide diagnostics. You see Event Match Quality scores. You see warnings about missing parameters. You see event counts that don’t match your expectations. What you don’t see is which specific events failed.
Events Manager shows trends and aggregates. It cannot tell you that the purchase event for Order #4521 at 3:47pm was rejected due to a missing external_id parameter. That level of visibility requires access to individual event responses your server received from Meta.
The Specific Failures Hiding in Plain Sight
Understanding what goes wrong helps you know what to look for—even when you can’t directly observe the failures.
Deduplication Failures: The 80% Problem
When you send both browser Pixel events and server CAPI events for the same conversion, Meta needs to deduplicate them. Otherwise, one purchase counts twice. Deduplication requires matching event_id parameters between browser and server events.
Missing Event ID parameters cause deduplication errors 80% of the time according to Stape’s troubleshooting experience. Without matching IDs, Meta either double-counts your conversions or cannot reconcile the events at all—depending on its confidence in other matching parameters.
The symptom in Events Manager? Event counts that don’t match reality. Conversion values that seem inflated or deflated. But Events Manager won’t tell you “deduplication failed for 47 events yesterday”—you just see numbers that don’t make sense.
Event Match Quality: The Silent Attribution Killer
Event Match Quality (EMQ) scores measure how well Meta can match your server events to Facebook users. A score of 10/10 means excellent matching. A score of 4/10 means Meta struggles to identify which Facebook user your event belongs to.
An Event Match Quality score of 4/10 is typical when sending only IP, browser ID, _fbp, and _fbc parameters via server-side tracking. These basic parameters often aren’t enough for confident user matching.
Low EMQ doesn’t mean events disappear—it means Meta cannot attribute conversions to your ads even when events arrive successfully. Your CAPI events reach Meta, but Meta cannot connect them to the users who clicked your ads. Attribution breaks. ROAS reporting becomes unreliable. Campaign optimization suffers because Meta lacks the signal it needs.
You may be interested in: WooCommerce Revenue vs Google Analytics: Why GA4 Is Always Wrong and How to Fix It
Silent Rejection: Events That Never Arrive
The Conversios guide to Meta Events Manager puts it bluntly: “That’s the kind of silent data loss that can derail your entire campaign performance. It’s frustrating. And often, the culprit isn’t the Pixel or Conversions API setup itself—it’s the invisible breakdown between what happens on your site and what Meta receives.”
Events can fail for reasons that produce no obvious error: API access tokens that expired, rate limiting when you send too many events too quickly, network timeouts that occur intermittently. These failures happen silently. Preview mode shows tags firing. Events Manager shows lower numbers than expected. The connection between cause and effect is invisible.
The Testing Framework Most Store Owners Skip
Proper CAPI debugging requires systematic testing that most implementations never receive.
Test Events: The Basic Check
Meta’s Test Events tool in Events Manager provides the most direct verification. Add your test event code to your pixel, trigger events on your site, and verify they appear in Test Events within 30 seconds.
If browser events appear in Test Events but server events don’t, your CAPI setup is failing—but this requires systematic testing most store owners don’t perform. You must test both channels independently and compare results.
The WooCommerce Comparison
The simplest diagnostic: compare WooCommerce order count to Events Manager purchase event count for the same period. A 30-40% gap is common and indicates tracking failures somewhere in the pipeline. The gap represents real revenue Meta cannot see and therefore cannot optimize toward.
Stape’s troubleshooting guide addresses this directly: “Let’s say you’ve set up FB CAPI but see fewer purchases in the Facebook Events Manager than you have in the CRM. To troubleshoot this issue, you can go to Logs and filter all Facebook response logs and see if all purchase events were processed successfully (status 200).”
The assumption baked into that guidance: you have paid log tiers enabled with per-tag logging active. Without that infrastructure, the comparison tells you something is wrong but not what.
Making the Invisible Visible
The fundamental problem isn’t that CAPI is hard to debug—it’s that the debugging tools exist behind paywalls and configuration requirements that most implementations don’t meet.
Response logs exist. They just require paid hosting tiers and per-tag activation. Individual event visibility exists. It just requires infrastructure most store owners don’t have access to. The gap between “tag fired” and “Meta received” can be bridged. It just requires intentional architecture.
Transmute Engine™ approaches this differently—a first-party Node.js server running on your subdomain (like data.yourstore.com) that captures events at WordPress hooks and routes them directly to Meta’s CAPI. Every event delivery shows status directly in WordPress: which events succeeded (200), which failed, what error codes returned, what parameters were missing.
No paid log tiers to enable. No per-tag configuration to remember. No external dashboards to navigate. You see what Meta sees—or more accurately, you see what Meta actually received and whether it accepted the data.
Key Takeaways
- Preview mode shows tag fired, not Meta received—a tag can execute successfully while sending data Meta rejects
- Response codes (200, 400, etc.) require paid log tiers with per-tag activation to see what Meta actually returns
- Missing Event IDs cause 80% of deduplication errors—events may count twice or fail to reconcile without matching parameters
- EMQ scores of 4/10 are typical with basic parameters—Meta receives events but cannot match them to users for attribution
- The WooCommerce vs Events Manager gap represents real failures—30-40% discrepancy indicates silent tracking problems somewhere in the pipeline
Events Manager may show fewer conversions because CAPI events are being rejected by Meta (missing parameters, deduplication failures, invalid data), events never reach Meta despite firing in preview mode, or Event Match Quality is too low for Meta to attribute conversions. The gap between WooCommerce orders and Events Manager represents silent failures in the server-to-Meta pipeline that require response log access to diagnose.
To see rejection details, you need server-side response logs showing HTTP status codes (200 = success, 400 = rejected). In GTM server-side with Stape hosting, this requires paid log tiers and must be enabled per tag in settings. Without response logs, you only see that the tag fired—not whether Meta accepted or rejected the event.
Low EMQ scores (4/10 or lower) typically result from sending only basic parameters like IP, browser ID, _fbp, and _fbc. Meta needs additional user identifiers—hashed email, hashed phone, external_id—to match events to Facebook users. Without strong user matching, Meta cannot attribute conversions to your ads even when events arrive successfully.
Preview mode confirms your tag configuration executed and attempted to send data. It cannot confirm Meta received and accepted the event. Common causes include: incorrect API access token, malformed event data that Meta rejects, network issues between your server and Meta, or events that arrive but fail validation. Only response logs show what actually happened after the tag fired.
Use Meta’s Test Events tool in Events Manager with your test event code. Fire events on your site and verify they appear in Test Events within 30 seconds. Compare browser pixel events to server CAPI events—if browser events appear but server events don’t, your CAPI configuration is failing. For production verification, compare total Events Manager events to WooCommerce orders over the same period.
Stop guessing whether your CAPI events reach Meta. See how Transmute Engine makes every delivery status visible.



