How to reconcile Meta Ads against your call tracking records
This is the check we run first on every account, written out so you can run it without us. It takes about thirty minutes and needs two numbers: what Meta says it produced, and what your call tracking records actually shows. The gap between them is the only honest measure of whether your tracking works — and if it comes back small, you do not need us.
Free30 minutesNo obligation
Specific to Meta × Call Records
Meta Ads vs qualified calls: the caller's phone is the key
Match Meta to your qualified calls on the caller's phone number, hashed and sent through the Conversions API, with any _fbc captured during the website session as a second key. Compare a closed month on a 7-day click window only. Meta reporting more calls than you qualified is expected, because its default includes 1-day view-through.
Call tracking hands you the one identifier Meta matches well: the caller's phone number. Hash it and send each qualified call as a server event, with the _fbc and _fbp cookies attached when the caller came through your site and the call tracking tool stored them for that session. Callers who tap a call button inside a Meta ad never touch your site, so the phone number is the only key for them, and only callers whose Facebook account carries that number will match.
The 7-day click and 1-day view default is the biggest distortion. A person who scrolled past your ad yesterday and called from a yard sign counts for Meta. Switch the comparison column to click-only before you read the gap, and remember Meta dates the call to the ad interaction, not to the call itself.
Pull the Ads Manager breakdown by conversion event with the attribution setting changed to click-only, then join against tracked calls that passed your qualifying threshold. Meta higher on the default setting is normal; still higher on click-only usually means raw call volume is reaching Meta rather than qualified calls. Meta far lower points to the dynamic number not swapping for in-app browser traffic. The usual cause is a call event firing when the call starts, before anyone knows whether it qualified.
Meta × Call Records · what breaks
Why Meta and your call tracking records disagree
- 01
Raw call volume counted as conversions
Wrong numbers, existing customers, suppliers and hang-ups all ring the same line. In some trades the call-to-job rate is under half.
- 02
Number pool too small
If tracking numbers recycle faster than your sales cycle, two prospects share one number and the attribution is simply wrong.
- 03
Dynamic number insertion failing on cached pages
A cached page serving a stale number sends a whole segment's calls into the wrong pool, silently.
- 04
Call answered but outcome never recorded
Without joining the call to the job or deal, you are measuring how often the phone rang rather than how often it earned.
Meta × Call Records · the fix
What you get from this — Meta × Call Records
A number instead of a suspicion
The likely cause, narrowed
A basis for deciding
Meta × Call Records · architecture
What each side is actually counting — Meta × Call Records
- 1
What Meta counts
event_name from the standard set with exact casing, event_time in seconds, a shared event_id, an action_source, and hashed user_data that was normalized before hashing. Purchase additionally requires value and currency.
- 2
How Meta attributes it
fbclid arrives on the landing URL and is normally written into the _fbc cookie. If it isn't captured on landing, _fbc never exists — and _fbc is the strongest click signal Meta has, so its absence caps your match quality regardless of what else you send. Forward _fbp too, from the browser rather than regenerating it server-side.
- 3
The window it uses
Meta's default attribution is a 7-day click and 1-day view. View-through is included by default, which is a large part of why Meta claims more conversions than your other platforms — that overlap is expected rather than a fault.
- 4
What your call tracking records counts
Calls that were qualified and produced work, not calls received, found in CallRail, CallTrackingMetrics, Invoca or your phone system, joined to whatever records the outcome.
- 5
The filter that makes them comparable
Calls longer than your qualifying threshold, classified as genuine enquiries.
Meta × Call Records · events
Reading the gap — Meta × Call Records
| What you see | What it usually means |
|---|---|
| 15%+ platform higher | Usually the wrong event entirely — raw call volume is being counted rather than qualified calls, so wrong numbers and existing customers are in the figure. |
| 20%+ platform lower | Usually structural — number insertion is failing for some traffic, or calls are arriving on a number that is not tracked at all. |
Meta × Call Records · diagnose
Diagnostic order — Meta × Call Records
- 01
Confirm both numbers cover the same period and channel
- 02
Raw call volume counted as conversions
Wrong numbers, existing customers, suppliers and hang-ups all ring the same line. In some trades the call-to-job rate is under half.
- 03
Number pool too small
If tracking numbers recycle faster than your sales cycle, two prospects share one number and the attribution is simply wrong.
- 04
Dynamic number insertion failing on cached pages
A cached page serving a stale number sends a whole segment's calls into the wrong pool, silently.
- 05
Read the Deduplicated indicator and the per-event match quality score, both read over seven days
Match quality is where most Meta accounts lose attribution, and it's almost always normalization rather than coverage. An email hashed with a capital letter, or a phone hashed with brackets, produces a perfectly valid hash that matches nobody and errors nowhere. Normalize first, then hash, and read the score per event rather than overall.
Meta × Call Records · prove
How to know you did it right — Meta × Call Records
Source of truth
your call tracking records — qualified calls for a fully closed month
Meta × Call Records · free audit
What we check in the free audit
- Confirm both numbers cover the same period and channel
- Raw call volume counted as conversions
- Number pool too small
- Dynamic number insertion failing on cached pages
- Read the Deduplicated indicator and the per-event match quality score, both read over seven days
Checked against
your call tracking records — qualified calls for a fully closed month
Free30 minutesNo obligation
Meta × Call Records · when not to buy
When the answer is that you do not need us — Meta × Call Records
- If almost all of your qualified calls come from a channel with no click behind it, no tracking work will reach them — and knowing that is worth more than a build.
- If you're advertising a business type Meta restricts data collection for — health being the obvious one — the parameters you can legitimately send are narrower, and that constraint should shape the build rather than be worked around.
Meta × Call Records · what we deliver
The method, step by step — Meta × Call Records
Pull what Meta reports
The deduplicated indicator and the per-event match quality score, both read over seven days.
Pull what your call tracking records shows
Export tracked calls for a closed month with duration and outcome, and join each to the job, appointment or deal it produced.
Filter both to the same thing
Calls longer than your qualifying threshold, classified as genuine enquiries.
Compare per record, not on totals
FAQ
Meta × Call Records questions, answered
Only through the caller's phone number, hashed in the Conversions API event. Match rates depend on how many callers registered that same number with Meta.
After it is qualified. Sending it at connection teaches Meta to find people who dial, including wrong numbers, rather than people who become jobs.
Because you should know the size of the problem before anyone quotes you for it. If the gap is small, you have saved yourself a purchase. If it is large, you now know what you are buying rather than taking our word for it.
No. Both numbers come from systems you already own and neither leaves them. There is no tool to sign up for and nothing to upload.
Then compare totals for a closed period and treat the result as directional rather than exact. The deduplicated indicator and the per-event match quality score, both read over seven days is still the right place to read the platform's side.
Under five percent is working. Five to fifteen usually means reversals are missing. Above twenty is normally the wrong event being counted, not a broken tag — which is why debugging tags first wastes so much time.
Then fix the filter before drawing any conclusion. Calls longer than your qualifying threshold, classified as genuine enquiries. A mismatch in scope produces a gap that looks like a tracking fault and is not one.
Book the free thirty-minute call and bring both numbers. We will tell you which of the causes above it is, and whether it is something you can fix yourself — which it sometimes is.
More on Meta × Call Records
- Google Ads × Call RecordsHow to reconcile Google Ads against your call tracking records
- TikTok × Call RecordsHow to reconcile TikTok Ads against your call tracking records
- Microsoft × Call RecordsHow to reconcile Microsoft Ads against your call tracking records
RELATED GUIDES
Systems of record beside call records, and the funnels it settles
- Meta × Enrolment SystemHow to reconcile Meta Ads against your application or enrolment system
- Meta × Job SystemHow to reconcile Meta Ads against your job management system
- Meta · Directory listing → enquiryHow to track directory listing to enquiry for Meta Ads
- Meta · Phone call → saleHow to track phone call to sale for Meta Ads
- Meta · LASIKMeta Ads conversion tracking for LASIK and refractive surgery practices
- Meta · Cosmetic surgeryMeta Ads conversion tracking for cosmetic surgery practices
- DealerSocket → MetaConnecting DealerSocket to Meta Conversions API
- Follow Up Boss → MetaConnecting Follow Up Boss to Meta Conversions API
Free · 30 min
Found a gap between Meta and your call tracking records?
Free30 minutesNo obligation
