Attribute phone calls to Meta and LinkedIn ad campaigns
Google Ads has offline-conversion import for calls. Meta and LinkedIn don't — but you can still attribute calls to specific campaigns using dedicated tracking numbers and Conversions API uploads. The setup and the limitations.
Google Ads has a clean "import calls as conversions" path with GCLID. Meta (Facebook/Instagram) and LinkedIn don't — their tracking models are session-based and the attribution maths is different. But you can still tie phone calls back to specific campaigns, just by a slightly less tidy route.
Here's how the attribution works on Meta and LinkedIn, the practical setup, and the limitations to be honest about.
Meta (Facebook + Instagram)
Meta's attribution model uses event match keys and the Conversions API (CAPI). You can upload phone-call events with hashed customer data and Meta will attribute them to ad clicks where the same customer interacted within the attribution window.
The setup path
- Assign tracking numbers per Meta campaign or ad set— same principle as Google Ads, but Meta's equivalent of GCLID (
fbclid) is shorter-lived and shouldn't be relied on for joining. Match on phone number + email instead. - Capture the visitor's data when they click from Meta to your site— the lead form, the booking widget, or a smaller event like "clicked phone number in header". Get email and phone where possible.
- When the call happens— match on the caller's number to the captured data
- Upload to Meta via the Conversions API — event_name = Lead or Phone Call; hashed email and phone in
user_data; original click ID where available
Working CAPI payload
Conceptual JSON for the Meta Conversions API:
POST https://graph.facebook.com/v20.0/{PIXEL_ID}/events?access_token=YOUR_CAPI_TOKEN
{
"data": [{
"event_name": "Lead",
"event_time": 1717673000,
"action_source": "phone_call",
"user_data": {
"ph": ["<sha256 of E.164 phone>"],
"em": ["<sha256 of lowercased email>"],
"fbc": "<fbclid from cookie if available>"
},
"custom_data": {
"currency": "GBP",
"value": 75
}
}]
}- Hash phone and email with SHA-256 before sending. Meta will only match on hashed values
- Set
action_source: phone_callso Meta categorises correctly - Set a sensible
valueper lead — Meta uses it for return-on-ad-spend reporting
Meta limitations
- fbclid is short-lived — only ~28 days. Calls that happen later won't match back to the original click. Track at the user level with hashed email/phone instead.
- Caller didn't fill a form first — you have a phone number but no email. Match rate drops. Still helps Meta's machine learning model but the precision is lower.
- iOS 14+ privacy changes — fewer events make it back from Apple devices. Server-side CAPI partly mitigates but doesn't fully recover.
LinkedIn Ads
LinkedIn's offline conversion process is more like Google Ads' — you can upload calls as offline conversions and LinkedIn attributes them to ad clicks within the conversion window.
The setup path
- LinkedIn Campaign Manager → Conversion tracking → New conversion → Offline conversion
- Name it "Phone call", set value per lead
- Capture email hashed when the visitor interacts with your site (LinkedIn matches primarily on email)
- When the call comes in, look up the email associated with the caller's phone number (your CRM does this)
- Upload to LinkedIn via the Conversions API or batched CSV: email (SHA-256), conversionHappenedAt,conversionValue, conversionTypeName
LinkedIn limitations
- Email-first matching — LinkedIn doesn't take phone-only conversions. If you don't have the caller's email, the call can't be matched.
- 30 to 90 day attribution window — long, but slower feedback than Google or Meta
- Volume threshold — LinkedIn's smart bidding needs ~30 conversions in a 28-day window to optimise. B2B businesses with low-volume high-value leads sometimes don't hit this for months.
The practical pattern for B2B SMEs
A working setup for a typical UK B2B SME using Google + Meta + LinkedIn:
- Tracking numbers per channel — Membership gives you unlimited UK numbers, so allocate one per campaign. Three channels → three numbers minimum.
- Single CRM as the source of truth — HubSpot, Pipedrive, Salesforce. Lead record gets created with email + phone + tracking-number assignment when the visitor first identifies themselves.
- Calls join to the lead record via the tracking number rung + caller's phone
- Nightly sync uploads conversions back to Google (offline conv import), Meta (CAPI), LinkedIn (offline conv import). A small custom script reads your CRM and pushes to each. Build once, runs forever.
- Lead value per channel — pass through to each platform so smart bidding optimises for value, not just count
Why the Conversions API beats the Pixel
For all three platforms, the modern path is server-side Conversions API, not the old client-side pixel. Reasons:
- iOS 14+ privacy restrictions don't affect server-side
- Ad blockers don't affect server-side
- You can attribute non-web events (phone calls, in-person sales) cleanly
- Hashed PII is more accurate than relying on cookies that get deleted
All three platforms now treat CAPI/server-side as the preferred integration. The lift from switching from pixel-only to pixel+CAPI is typically 5–20% more attributed events.
Commercial tools that wire this up
If you don't want to build:
- CallRail — natively integrates with Google Ads, Meta CAPI, LinkedIn Conversions API. Sits on top of carrier numbers (yours).
- Hyros — premium, built for paid acquisition. £400+/mo.
- WhatConverts — affordable alternative, similar feature set.
Honest summary
- Google Ads call attribution is mature. 20–40% CPA improvement is realistic.
- Meta call attribution is less precise (no GCLID equivalent) but the CAPI lift is real, especially for B2C lead-gen
- LinkedIn call attribution works only when you have email — which limits it to channels where you capture email pre-call
- The combined setup is worth doing if you spend over ~£3k/mo across paid social and pay-per-click
Unlimited UK numbers for multi-channel attribution
Standard UK numbers are unlimited and free with Membership. Allocate one per campaign per channel and feed call data back to Google, Meta, LinkedIn. £149/mo flat.