Call tracking on a landing page: measuring the calls your campaigns generate
Published on 25 August 2026 · 8 min read
A well-built landing page displays its phone number prominently, clickable, often right in the hero — we cover why in our article on the phone number as a trust signal. The problem shows up right after: that click triggers a call which, in the vast majority of setups, leaves absolutely no trace in Google Ads, GA4, or the Meta pixel. The visitor converted in the most concrete sense of the word — they picked up the phone to talk to you — and as far as your measurement tools are concerned, that conversion simply never happened. Call tracking exists to fill that gap, but implementing it hides two very different approaches, with costs and use cases that don't overlap.
Why a call slips past your usual tracking
A tel: link opens the device's phone app and instantly leaves the browser context: no conversion event, no UTM parameter, no cookie survives that jump. Without specific instrumentation, a click on a number hardcoded into the HTML doesn't even send an event to GA4 — as far as the browser is concerned, it's just another link. And even after adding an onClick event that captures the click (which we cover further down), that click measures the intent to call, not the call actually placed, let alone its duration, whether it turned into a sale, or its precise advertising source. That's exactly the gap call tracking is built to close.
Two ways to measure a call, two philosophies
| Criterion | tel: click tracking | Dynamic number (DNI) |
|---|---|---|
| What gets measured | Intent to contact (the click) | The actual call, its duration, sometimes its outcome |
| Attribution to the source | None — one number shown to everyone | Precise — a different number per campaign, source, or keyword |
| Cost | Free, a few lines of code | Monthly subscription per tracked number (€10 to €50 depending on volume) |
| Setup complexity | A JavaScript event on the link | Third-party script + provider-side configuration |
| Local SEO | One constant number, consistent with your Google Business listing | Number shown can differ from the official one — needs careful handling |
| Relevance | Sites with low call volume, tight budget | Meaningful call volume, several paid channels running in parallel |
tel: click tracking: the minimal measurement
The simplest version attaches an event to the tel: link itself, sending a conversion event to GA4 or the relevant ad pixel the moment it's clicked — exactly the same principle as tracking a click on a WhatsApp button. On a Next.js page, it's a few lines: an onClick handler on the link that pushes a gtag('event', 'click_to_call', …) event, or, if Google Tag Manager is already set up, a "link click" trigger filtered on URLs starting with tel:. This method costs nothing and says nothing about what happens after the click — it conflates a visitor who hesitated for three seconds before hanging up with a customer who just signed a €5,000 contract. It's still plenty good enough for a landing page with low call volume, or as a complement to a form that remains the main conversion channel.
Dynamic number insertion (DNI): measuring the call, not just the click
Dynamic Number Insertion (DNI) goes further: when the page loads, a script provided by a call tracking service (CallRail, Ringover, Aircall, Kavkom in France) swaps the displayed number for one drawn from a reserved pool, temporarily assigned to the visitor based on their acquisition source — a UTM parameter value, the Google Ads keyword that triggered the ad, or even the exact page they land on. Every call placed to that number is routed to your real line but stays identified: the provider reports duration, time, sometimes a recording, and can push the call as a conversion directly into Google Ads or GA4 through a native integration. It's the only method that genuinely answers the question "which campaign generated this call, and did it turn into a sale?"
What this actually changes for attribution
The real stakes go beyond simple curiosity: without call data, any attribution model built solely on web events reconstructs a truncated purchase journey. A landmark study on customer journey modeling published by Anderl, Becker, von Wangenheim, and Schumann in 2016 in the International Journal of Research in Marketing ("Mapping the Customer Journey: Lessons Learned from Graph-Based Online Attribution Modeling"), shows that simplistic attribution models such as "last click" diverge substantially from models built on the visitor's full journey, with sizeable gaps in which channels get credited as high-performing. An untracked call is precisely a missing link in that graph: the campaign that actually drove the sale — the one that pushed the visitor to pick up the phone instead of filling out a form — simply vanishes from the return-on-investment calculation, in favor of the one channel that does leave a measurable trace.
Where DNI genuinely earns its place
- Several paid channels running in parallel — Google Ads, Meta Ads, and local SEO all pointing to the same landing page: without DNI, there's no way to tell which one is actually generating the calls that turn into customers.
- Meaningful call volume relative to form conversions — typically businesses where the call is the dominant contact method: plumbers, locksmiths, real estate agencies, recruitment firms, insurance brokers.
- A budget large enough that the attribution gap between channels actually shifts campaign decisions from one month to the next — below a certain volume, the service subscription costs more than the insight it delivers.
The trap of the displayed number and local SEO
DNI has a side effect worth watching closely: if the number shown on the landing page differs from the official one registered on your Google Business Profile, the mismatch can hurt the NAP (Name, Address, Phone) signal Google uses to gauge a local business's reliability — a topic we cover in Google Business Profile or landing page. Most call tracking providers manage this risk with a "static pool": a single replacement number shown to all organic visitors (consistent and indexable), with a dynamic pool reserved for paid traffic only, which isn't meant to be indexed. That's a point to check explicitly before rolling out the install, not a minor technical detail.
Setting up call tracking on a Next.js landing page
For minimal tel: click tracking, no external dependency is needed: a client component that intercepts the onClick event and calls gtag or dataLayer.push is enough, as long as GA4 or GTM tracking is already in place. For a dynamic number, the chosen provider ships a script to load with next/script using strategy="afterInteractive", same as any non-blocking third-party script — the principle is identical to what we cover in our guide on installing Google Tag Manager. The script then dynamically swaps the displayed number's text after the first render: plan for a brief loading state rather than a number that visibly "jumps," especially if the page's hero renders below the fold on mobile.
The mistakes that invalidate the measurement
- Tracking the click but not the call — a visitor clicks, hesitates, hangs up before the first ring: without DNI, that non-call counts as a conversion, artificially inflating a campaign's apparent performance.
- Forgetting to route the DNI pool to paid traffic only and showing it to organic visitors too, breaking the official number's indexing with no extra measurement benefit.
- Never cross-referencing tracked calls with actual sales — call tracking tells you which campaign generated the call, not whether the call turned into a customer; without feedback from sales or the CRM, the attribution loop stays incomplete, in the same spirit as what we cover for calculating a landing page's ROI.
- Overlooking consent and call recording rules — a call recorded for quality or measurement purposes is still subject to a clear disclosure requirement at the start of the call, separate from but running alongside the rules covered in our guide to GDPR-compliant forms.
Call tracking only makes sense once calls genuinely factor into your conversion volume — for a landing page where the form remains the dominant channel, simple tel: click tracking is plenty. The Local Agency & Trade (demo) and Real Estate — Valuation (demo) templates, built for journeys where the call is a conversion channel in its own right, are particularly well suited to either level of instrumentation. See all ten templates at €89 each or €229 for the full pack.
FAQ
Frequently asked questions
Is call tracking necessary for every landing page with a displayed phone number?
No. If it only accounts for a handful of calls a month next to a form that remains the main channel, simple tel: click tracking is enough. Dynamic number insertion (DNI) becomes worthwhile once the call is a meaningful conversion channel, with several advertising channels to tell apart.
Does dynamic number insertion hurt local SEO?
It can, if the number shown differs from the one on your Google Business Profile and is visible to indexing bots. Most call tracking providers offer a consistent static pool for organic traffic, reserving the dynamic number for paid traffic only — a point to check explicitly during setup.
What's the difference between tracking a tel: click and tracking a call?
A click measures intent: the visitor tapped the link, with no guarantee they actually spoke to anyone. Call tracking via a dynamic number measures the call itself — its duration, its precise advertising source, sometimes whether it turned into a sale — through a dedicated call tracking service.
Do callers need to be told a call is tracked or recorded?
Yes: a message disclosing that the call is tracked or recorded for quality or measurement purposes must play at the start of the call, backed by a clear legal basis. This obligation exists independently of web-side call tracking and adds to the compliance rules already applying to your forms.
Read next
Related articles
- UTM parameters: finally knowing where your conversions come from"Traffic is up" doesn't say which campaign pays. UTM parameters — five tags added to your URLs — tie every conversion to its exact source. Here's how to structure them cleanly from the start, and the traps that ruin most accounts' data.
- Organic traffic (Instagram, TikTok, LinkedIn) to a landing page: how to know what's actually convertingA Google Ads or Meta Ads campaign arrives on your landing page with its UTM parameters already attached; an Instagram post, a TikTok video, or a LinkedIn post doesn't. The result: in Google Analytics, your best-performing organic content drowns in the "direct" bucket, because the platform's in-app browser stripped the referrer along the way. Here's why that happens, and the manual discipline that still lets you know which post actually filled the form.
- Tracking conversions on a landing page: setting up Google Analytics 4 without drowning in dataA landing page with no conversion tracking is a stall you're running in the dark: people pass through, but nobody knows who bought or why. What to actually track in Google Analytics 4, how to set up the event that matters, and why no tracking tool will ever give you a perfectly accurate number.