DEV Community

강해수
강해수

Posted on • Originally published at themedilog.com

Adding one field to our CAPI payload moved match rate from 66% to 79% overnight

Adding hashed phone number to an already-live CAPI integration — nothing else — pushed match rate 13 points in a single day. That's the kind of result that makes you realize the integration being "on" and the integration actually working are two different things.

Most accounts I audit have CAPI running. Most of them are only passing hashed email (em). That feels complete because email is the obvious identity field, but Meta's matching logic doesn't weight all parameters equally across all users. In Korean markets especially, a large share of accounts are tied to Kakao-linked emails — addresses users created for one service and never check. The phone number is the stronger identity anchor. When I added ph from checkout form data on one D2C account, match rate jumped from 66% to 79%. When I then added external_id — a consistent hashed user ID from their CRM — it moved another 4-6 points on top of that. I expected external_id to be redundant given the email was already matching. It wasn't. Meta appears to use it as a tiebreaker when other signals conflict.

Why does any of this matter operationally? Below 70% match rate, the delivery system starts filling gaps with probabilistic inference instead of resolved user signals. It's not a cliff — it's a slow bleed. What I've tracked across the accounts I run: sustained match rate in the 65-69% range correlates with a 25-40% increase in effective CPM within 7-10 days. Accounts that drop under 60% often stall in learning phase entirely, even when they're clearing 50+ weekly events that should qualify them to exit. Good creative, solid audience, reasonable budget — and the campaign quietly underperforms because the signal layer has a leak nobody went looking for.

The full parameter set that actually moves the number: em, ph, fn, ln, ct, st, zp, country, and external_id. Most integrations ship with two of those eight.

I wrote up the full breakdown — including the exact 3-check audit I run at 9am on day 3 of every new campaign, the deduplication error rate threshold that matters more than most people think, and side-by-side CPM data from a 14-day pixel-to-CAPI migration — over on themedilog.com.

Full post →

Top comments (0)