Honest Growth
← All detections

Detection · capi_event_match_quality_low

Detection: Conversions API Event Match Quality below the optimization floor

Key: capi_event_match_quality_low Severity: Medium–Critical (scales with score) Confidence: 85% Shipped: v1.2, May 2026 Runtime: Requires Meta OAuth (EMQ score is a Meta-API-only field).

What this detection looks for

We fire one account-level finding when:

  1. A Purchase pixel event exists with is_capi=True AND a non-None emq_score
  2. The EMQ score is below 7.0

Severity scales with how degraded the match quality is:

EMQ range Severity
< 4.0 Critical
4.0 – 5.5 High
5.5 – 6.9 Medium
≥ 7.0 (no finding)

Why this matters

EMQ is Meta's 0–10 measure of how well it can match a server-side purchase event back to a real Facebook user. Below 6, Meta's published guidance is that CPA inflates 15–30% because the algorithm can't optimize against conversions it can't attribute. Pilothouse's Q1 2026 review puts a hard floor at 4 and recommends well-tuned accounts target 7+.

This rule complements capi_missing_or_weak, which checks volume parity between browser pixel and CAPI:

  • capi_missing_or_weak answers "is CAPI even firing, and at full volume?"
  • capi_event_match_quality_low answers "even though CAPI is firing at volume, can Meta actually match those events back to users?"

An account can pass the first and fail the second. Both rules can fire together — they diagnose different parts of the tracking foundation.

How we estimate the recoverable dollars

inflation = (1 − emq/10) × 0.20
monthly_recoverable = account_ad_spend × inflation × (30 / audit_days)

The 0.20 factor at EMQ=0 reflects the Pilothouse-cited typical 20% CPA inflation when match quality is fully degraded. Real accounts at EMQ=5 see roughly 10% inflation ((1 − 0.5) × 0.20). Conservative — actual impact often higher.

What would change our mind

  • Server-side identifier degradation post-iOS 14.5. Some accounts in privacy-restricted markets carry structurally lower EMQ that no amount of tuning can fix. The rule still fires — but the remediation is "send more match parameters (email, phone)," not "tune the existing setup."
  • Account in a tracking-migration window. If you're mid-migration to a new CAPI setup (e.g., switching from Shopify pixel to GTM server-side), EMQ dips during the cutover are expected. Re-audit 2 weeks after migration completes.
  • CAPI not configured for Purchase deliberately. Some accounts use CAPI for upper-funnel events only. If your Purchase event is browser-only by design, this rule's premise doesn't apply.

What to do about it

  1. Add the missing match parameters. The biggest EMQ lifts come from adding em (hashed email), ph (hashed phone), and external_id to your Purchase events. Each parameter typically adds 1–2 points.
  2. Verify hashing. Meta requires SHA-256 lowercased; broken hashing reduces match quality to near-zero on otherwise-good signal.
  3. Use the Events Manager test-events tool to inspect a live event and see which parameters Meta is or isn't matching.

References

  • Pilothouse Q1 2026 Technical Review (EMQ section)
  • Meta Business Help Center: Event Match Quality documentation

See it run on a real account.

The sample audit shows this and 14 other detections fired against a synthetic but realistic $30K/month account.