Call tracking: where customers call from and how to measure phone calls
How call tracking works, how it differs from the click_phone event in GA4 and how to measure phone calls from Google Ads to see which campaign pays off.
In many service businesses, customers call more often than they fill in a form. If you run Google Ads campaigns and measure only forms, you see only part of the results. You may then switch off the campaign that actually brings the most phone calls and keep the one that only looks good in the report.
In this article I describe three levels of measuring phone calls: from a simple event in GA4 to full call tracking. I also show how it works in Haloskop, the system I built.
Level 1: clicks on the phone number in GA4
The simplest measurement is an event in GA4 that is sent when someone clicks a phone number on the page, that is, a link beginning with tel:. The event name is arbitrary; click_phone is often used.
How to set it up:
- Turn every phone number on the page into a clickable
tel:link. - In Google Tag Manager, add a trigger: a click on a link whose address starts with
tel:. - Add a GA4 tag that sends the
click_phoneevent, preferably with information about where the number was: in the header, in the footer, on a button. - In GA4, mark the event as a key event (until 2024, GA4 called this a conversion).
- Import it into Google Ads as a conversion, so that campaigns know which clicks end in an attempt to make contact.
If you only have the gtag code on your page, without Tag Manager, a few lines are enough:
document.addEventListener('click', (e) => {
const link = e.target.closest('a[href^="tel:"]');
if (link) gtag('event', 'click_phone', { link_location: link.dataset.place || 'strona' });
});
What click_phone won’t show
A click is not a call. The click_phone event doesn’t see several important situations:
- someone clicked the number but changed their mind, or nobody answered,
- someone typed the number in by hand or called from another phone while looking at a computer screen,
- someone called three days later, from the business listing in Google Maps,
- you don’t know whether the call lasted 10 seconds or 10 minutes, or whether the caller was a customer or a salesperson with an offer.
On top of that comes consent. Without analytics consent, GA4 gets reduced data. Since March 2024, Google has required Consent Mode v2 from advertisers who want to use data of users from the European Economic Area for measurement and remarketing.
Still, it is worth starting at this level. It costs little, and it already shows which subpages and campaigns encourage contact.
Level 2: calls in Google Ads
Google Ads has its own call assets, that is, a phone number displayed with the ad. Clicks on the call button are visible in campaign statistics. To count calls themselves and their duration, Google uses forwarding numbers, and their availability depends on the country.
Even where they work, they cover only traffic from Google Ads. You won’t see phone calls from organic results, from Facebook, from a flyer, or from a customer who first clicked an ad and called the next day on the number from the website.
Level 3: call tracking
How it works
Call tracking replaces the phone number on the page. Every visitor sees a number from a pool, assigned to their visit. The system reads parameters from the page address, such as UTM and the Google Ads click ID, so when someone calls, it knows where they came from: which ad, campaign and keyword, or organic results, Maps or Facebook. The call goes to your ordinary phone or switchboard, and the customer notices no difference.
The pool of numbers has to be large enough that the same number isn’t assigned to two people at the same time. Its size depends on the traffic on the website. For offline advertising, such as a flyer, a banner on a building site or a wrapped car, static numbers are used: one number per source.
What it gives you beyond click_phone
| click_phone in GA4 | Call tracking | |
|---|---|---|
| What it measures | a click on the number | an actual call |
| Calls from a manually typed number | no | yes |
| Call duration, answered and missed calls | no | yes |
| Calls from flyers and offline ads | no | yes, via static numbers |
| Recording and content of the call | no | optional |
| Cost | part of analytics | setup and subscription |
Not every call is a customer
Suppliers, salespeople and people who dialed the wrong number also call. That is why in call tracking it’s not only the number of calls that matters but also their content. With a recording and an AI summary of the call, you see right away whether the caller asked about a service.
Once you know which calls turned into jobs, you can pass that information back to Google Ads as an offline conversion. Automated bidding strategies then learn from real customers, not just from clicks.
Example: Haloskop
Haloskop is a call tracking system that I built as my own product. It shows where the customer calls from and what follows from that:
- a number for every visit and a source report: which ad, campaign and keyword the call came from,
- revenue by source, that is, how much money each channel brought in,
- a live call view and marketing reports,
- a virtual switchboard, a cascade of staff members and callbacks,
- an SMS for a missed call,
- recordings and AI summaries of calls, with data on servers in the European Union.
Implementations and subscriptions are handled by StartOrbit sp. z o.o. (a Polish limited liability company), which I co-own. Haloskop call tracking costs from PLN 990 net for setup and from PLN 249 net per month. In the project description you will find a video about the product.
GDPR and call recording
Call tracking processes personal data, so take care of a few things:
- Notice of recording. If you record calls, tell the caller at the start of the call with a short message and describe it in your privacy policy.
- Consent on the website. The script that replaces the numbers stores information about the visit in the browser, so it should work in line with your consent banner, just like GA4.
- Storage location. Check where the provider keeps recordings and for how long. In Haloskop, recordings and customer data are stored on servers in the EU.
Where to start
- Set up the
click_phoneevent in GA4 and import it into Google Ads. This is the foundation, even if you add call tracking later. - Count how many inquiries come by phone and how many through the form. To begin with, it is enough that for two weeks you ask every caller how they heard about you.
- If phone calls are a large share of inquiries and you spend money on ads every month, implement call tracking.
- After a month, compare the cost of acquiring a customer from each campaign, counting phone calls and forms together.
I implement GA4 with Tag Manager and measurement of phone calls and forms from PLN 990. I implemented GA4, Tag Manager, Google Ads conversions and Consent Mode v2 for Ecopartner, among others. I set up Google Ads campaigns from PLN 990 and run them from PLN 790 per month or for 15% of the budget. All prices are net.
Let’s find out where your customers call from
Want to know which campaigns bring phone calls and which only bring clicks? Describe your situation in the form. I will reply with a quote within 24 hours, and new clients get 20% off their first project.
Frequently asked questions
The click_phone event in GA4 counts clicks on the number, not calls. Call tracking records actual calls, including those from a number typed in by hand, together with the call duration and the source: the ad, campaign and keyword.
Website visitors see numbers from a pool, but calls go to your existing phone or switchboard. The customer calls as usual and notices no difference.
Setup costs from PLN 990 net, and the subscription from PLN 249 net per month. The setup is handled by StartOrbit, a company I co-own.
It can be, if you inform the caller about the recording at the start of the call, describe it in your privacy policy and decide how long you keep the recordings. It is worth consulting a lawyer on the details.
Related services
Have a similar project?
Describe what you need and I’ll send a quote within 24 hours. New clients get 20% off their first project.


