How to track phone-button taps as a conversion in GA4 (click-to-call, step by step)
A practical guide to turning a tap on your phone button into a real conversion event in Google Analytics 4.
You have a phone button on mobile, people call you, but GA4 shows you nothing. The reports display visitors and pages, yet the single most important number for a local business, how many people tapped to call you, stays invisible. That means you decide blind: you do not know which page drives calls, which campaign deserves the budget, which source is a waste.
The good news is that it is measurable, and the basic version needs no developer. A phone link has a clear pattern (tel:), and GA4 can catch every tap and mark it as a conversion. In this article I show you exactly how, in two ways, with Google Tag Manager and directly with gtag, plus how to verify it works and what the method's limit is, so you do not fool yourself with numbers.
What click-to-call tracking actually means (and what it does NOT)
A phone button is technically a normal link: a href="tel:+40740123456". When someone taps it on mobile, the phone opens the dialer with the number already filled in.
Click-to-call tracking means catching that tap and sending it to GA4 as an event. Note the nuance: you measure the intent to call, the tap itself, not the completed call. Someone can tap and change their mind, or already be on a call.
- What you learn: how many people wanted to call, from which page, which source and which device.
- What GA4 does NOT tell you: the call duration or whether you answered.
For real calls you need call tracking with dedicated numbers (a separate service, a separate cost). For most local sites, the tap is a signal good enough to make good decisions.
Option 1: with Google Tag Manager (recommended, no code)
If you have GTM installed, this is the cleanest way. The steps:
- In GTM enable the built-in Click variables from Variables (especially Click URL).
- Create a new Trigger of type Click - Just Links. Set the condition: Click URL contains tel:. Optionally tick Wait for Tags so you do not lose the click before the redirect.
- Create a new Tag of type Google Analytics: GA4 Event. Pick your configuration (your Measurement ID), set Event Name to phone_call_click and attach the trigger above.
- Optionally add a parameter, for example link_url = {{Click URL}}, so you can see which number was tapped.
- Hit Preview, test on a phone, then Submit to publish.
Write the event name in lowercase with underscores, exactly as you will search for it in GA4.
Option 2: directly with gtag, no Tag Manager
If you do not use GTM and already have gtag.js on the site, you can send the event straight from the phone button. Add an onclick on the link that calls gtag:
a href="tel:+40740123456" onclick="gtag('event','phone_call_click',{link_url:'+40740123456'})"
That fires an event named phone_call_click every time someone taps. If you have several phone buttons (header, footer, contact page), put the same onclick on each, or, more cleanly, attach an event listener via a small script to every link starting with tel:.
This is the right choice when you do not want to install GTM just for one event. The downside: any change means touching code, whereas in GTM you manage everything visually, from one place.
Mark the event as a conversion (key event) in GA4
Sending the event is not enough. In GA4, an event becomes a conversion only when you mark it.
- Go to Admin, then Events or Key events, depending on your interface version.
- Wait for phone_call_click to appear in the list (it can take up to 24 hours after the first real tap).
- Toggle Mark as key event ON next to the event.
From now on, every phone tap counts toward conversions and shows up in reports, in Explore and in Google Ads if your account is linked. If you do not want to wait for it to appear on its own, you can create it manually in Key events with exactly the same name, phone_call_click, so it matches.
Verify in DebugView and avoid the classic mistakes
Do not rely on luck, verify. In GA4 open DebugView (Admin, then DebugView). On a phone or in GTM Preview, tap the phone button and watch phone_call_click appear in real time. Or use the Realtime report.
Common mistakes I see:
- The event name written differently in two places (phone-click vs phone_call_click) - GA4 treats them as two separate events.
- The button is an image or a button with no tel: href, so a Click URL trigger catches nothing.
- You marked the conversion before any data existed and assumed it was broken - give it up to 24 hours.
- You test on desktop where tel: opens nothing; test on a real phone.
If the phone button or the whole measurement setup gives you a headache, message us on WhatsApp at MPO Web Studio. We work remotely across the country, we check your configuration and tell you honestly what is worth measuring and what is not.
Frequently asked questions
Can I track click-to-call without Google Tag Manager?+
Yes. If you already have gtag.js on the site, you add an onclick on the phone button that sends the phone_call_click event straight to GA4. GTM is recommended when you have several buttons or want to manage everything visually, without touching code every time.
Does GA4 show whether the call actually happened or just the tap?+
Only the tap, that is the intent to call. GA4 does not know whether the call was placed, how long it lasted or whether you answered. For that you need call tracking with dedicated numbers, a separate service with a monthly cost.
Why does the event not show up in the conversions list right away?+
A new event can take up to 24 hours to appear in the GA4 interface. For instant checking use DebugView or Realtime, where the tap shows within seconds. You can also mark it as a key event manually, using the same name.
Does this also work for the WhatsApp or email button?+
Yes, same logic. For WhatsApp you catch links containing wa.me or api.whatsapp.com, and for email those with mailto:. You make a separate trigger and event for each, so you can see distinctly which channel drives more contact.
Will my own taps or bots inflate the count?+
Your tests can add a few taps, so use DebugView while testing, since those events are flagged separately. Bots rarely tap tel: buttons on mobile, so the noise is small. If you want it clean, you can exclude your own traffic in the GA4 settings.
7 mistakes that drive clients away from your website
Leave your email and get the guide right here, instantly. No spam.
Want to see what your business's website could look like?
Message us on WhatsApp and we'll prepare a FREE demo website with your business name. See it first — decide after.