Call tracking attribution guide
Dynamic number insertion swaps the displayed phone number per visitor so a call can be tied to the session that produced it. That gives you the source. It doesn't give you quality — every call counts the same, including wrong numbers and thirty-second hangups — so the second half of the work is deciding what qualifies and sending only those back to the platforms. The failure that undermines everything is a hard-coded number somewhere insertion can't reach.
Free30 minutesNo obligation
Call tracking · what breaks
Where teams get this wrong — Call tracking
- 01
A hard-coded number in a header image or footer
Insertion can't swap it, and those calls arrive with no source.
- 02
Every call counted equally
A wrong number and a booked job teach bidding the same thing.
- 03
Capturing the click ID at the call instead of the visit
By then the session context is gone.
Call tracking · the fix
What a correct implementation looks like — Call tracking
Insertion on every template
Including images, sticky bars and structured data.
Click ID captured at the visit
And stored against the call record.
A qualification rule agreed
Duration or a recorded outcome.
Only qualified calls uploaded
Rather than every ring.
Call tracking · architecture
How the pieces fit — Call tracking
Five components. The first is where most implementations fail and the last is where most of them stop early.
- 1
Dynamic number insertion
Swaps the displayed number per visitor so the call carries a source. Must cover every template.
- 2
Number pools
Enough numbers that concurrent visitors don't collide. Too small a pool produces wrong attribution silently.
- 3
Click-to-call events
A tel: link tap on mobile. Cheap, immediate, and usually missing entirely.
- 4
Click ID capture
At the visit, stored against the call record. The precondition for offline import.
- 5
Qualification
Duration threshold, or better, a recorded outcome from whoever answered.
- 6
Offline upload
Qualified calls sent back as conversions so bidding optimizes toward real work.
Call tracking · diagnose
Common mistakes and how to validate each — Call tracking
Ordered by how often we find them. Each one has a specific check rather than a general instruction to be careful.
- 01
Numbers in images
Search your templates. A number rendered in a header graphic can never be swapped.
- 02
Structured data carrying a tracked number
Keep the canonical number in schema and business listings; swap only the on-page display.
- 03
Pool too small
Check for collisions at peak traffic. A shared number across concurrent visitors attributes wrongly and silently.
- 04
Organic and paid sharing a number
Then neither channel can be evaluated.
- 05
Every call uploaded
Wrong numbers and sales calls dilute the signal bidding learns from.
Call tracking · prove
How to prove your implementation is right — Call tracking
Against your own records and a live payload, not against a preview screen.
Source of truth
call records joined to a recorded outcome
- Number insertion confirmed on every template, including images and the sticky bar.
- Click-to-call events confirmed firing on a real mobile device.
- A live test call attributed to the correct campaign.
- Click ID present on the call record.
- Only qualified calls uploaded, with the rule documented.
- Checked on a live conversion, not in preview mode.
- Reconciled over a fully closed window, matched per record.
- Re-checked 30 days later.
Call tracking · free audit
What we check in the free audit
- Numbers in images
- Structured data carrying a tracked number
- Pool too small
- Organic and paid sharing a number
- Every call uploaded
Checked against
call records joined to a recorded outcome
Free30 minutesNo obligation
Call tracking · when not to buy
What this reference deliberately leaves out — Call tracking
Stated openly, because a reference that's silent about its own gaps is the dangerous kind.
- Call recording and its consent requirements vary by jurisdiction and are outside our scope. Take advice.
- Specific call platform configuration differs per vendor and changes.
- Pool sizing depends on your concurrent traffic and can't be specified generically — test at peak.
- Vendor documentation is the authority, not this page. Where the two disagree, the vendor is right and we'd like to know so we can correct it.
- Parameter names and behaviour change. Anything here is accurate as we last verified it; verify against the current documentation before you rely on it for a build.
Call tracking · what we deliver
The checklist — Call tracking
Every template checked for hard-coded numbers
Header, footer, images, schema, sticky mobile bar.
Click-to-call events on every tel: link
Verified on a real mobile device.
Organic and paid separated
Different numbers or different pools.
The click ID stored against the call record
Captured at the visit.
Qualification rule documented
Before anything is uploaded.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
Repairs and verifies your existing browser-side setup against this reference, on a live conversion.
- Implementation checked against the spec
- Verified on a live conversion
- Reconciled against your own records
- Written handover
1st-party server-side
Recommended$800One-time fee · most popular
Money events sent from your own records through a first-party container on your subdomain, built to this specification.
- First-party server container on your own subdomain
- Events from your records, not the browser
- Deduplicated on a shared event ID at every destination
- First-party cookies beyond Safari's 7-day cap
- 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid channel server-side plus the offline loop, documented to this standard.
- Everything in 1st-party server-side
- Pinterest, Snapchat, Reddit and LinkedIn CAPI
- CRM and offline conversion loop
- Refunds and cancellations corrected wherever each platform allows it
- Monitoring so the next break surfaces in days
FAQ
Call tracking questions, answered
Not if the canonical number stays in your Google Business Profile, structured data and citations, with insertion swapping only the on-page display.
Often 60 to 90 seconds, but a recorded outcome from whoever answered is better. Duration is a proxy; the outcome is the truth.
Usually a hard-coded number somewhere insertion can't reach — a header image, a footer or the sticky mobile bar.
Enough that concurrent visitors don't share one. Too few produces wrong attribution silently, so test at peak traffic.
Free · 30 min
Attribute the calls that turn into work
Free30 minutesNo obligation
