Do any of you have website call tracking (telephone tracking)? In this article, we will show you how to track phone calls from your website in a free and accurate way.
Two Techniques for Call Tracking
There are two main types of methods for call tracking. The first is to count the number of taps on the link with the phone number on the website, and the second is to change the phone number and count based on the usage details from the phone company. is.
How to count the number of times a link is tapped
This method is very easy to implement on your website and costs nothing to use, so I think many people implement it by making full use of Google Analytics event tracking. However, on the other hand, we can only measure “the number of taps on the link”, and it is not possible to measure whether the call was actually made after that. Therefore, there are people who measure Google Analytics events and make them visible as numbers, but the number of people who set them as conversions in web ads and operate with those numbers is rapidly decreasing. Also, with this measurement method, conversions can only be counted for site accesses on smartphones, and conversions for users who access the site on PCs cannot be counted.
How to count based on the usage details from the telephone company
Common paid call tracking services use this technique. Specifically, a vendor with a large number of toll-free numbers lends out phone numbers, distributes the phone numbers according to the inflow route to the site, and calls each phone number based on the usage details from the phone company. Count the number of calls. Although this method requires a usage fee for the service, it will be charged, but it can be counted based on the actual number of calls (call time depending on the service), so highly accurate call tracking is possible. Furthermore, it is also possible to count conversions when a user who accessed the site on a PC makes a phone call using their smartphone.
Summary of the two techniques
technique | merit | Demerit |
---|---|---|
Count the number of times the link is tapped | Free and easy to do | There is a problem with the accuracy of measurement |
Count based on usage details | Accuracy is high as it can be counted based on the actual number of calls and call duration. | Generally paid and expensive |
solution
Both of the two commonly used methods have advantages and disadvantages, and the reality is that there are almost no sites that can achieve satisfactory measurements. In this article, I will introduce how to improve the problem of measurement accuracy based on the “count the number of times you tap the link” method.
core idea
The idea this time is that if you don’t actually call (if you tap the phone number link by mistake), the time from clicking the link to returning to the site should be short. Based on Of course, if you actually call, it should be difficult to return to the site in about 5 seconds.
Based on the above idea, in this solution, we don’t send an event when the phone number link is tapped, but just send an event when the user returns to the site after tapping . Then, measure the time from tapping the link to returning to the site, and add logic to stop sending the event if a certain amount of time has not passed.
This could dramatically improve the accuracy of measurements.
Implementation example in Google Tag Manager
Now, let me show you how to implement the above ideas with Google Tag Manager.
Create custom HTML tags for event initialization
Create a custom HTML tag with the following content. The trigger should be “DOM Ready” of the page you want to measure calls. You don’t need to enable “document.write” as you are not using it.
<script type="text/javascript">
;(function() {
var calltracking = undefined;
document.addEventListener('click', function(e) {
if (e.target && e.target.href && e.target.href.indexOf('tel:') == 0) {
calltracking = {
timestamp: (new Date()).getTime(),
element: e.target
};
}
});
callListener = function () {
if (calltracking) {
var diff = (new Date()).getTime() - calltracking.timestamp;
dataLayer.push({
'event': 'Call',
'gtm.element': calltracking.element,
'duration': Math.floor(diff / 1000)
});
calltracking = undefined;
}
};
document.addEventListener('touchstart', callListener);
document.addEventListener('mousemove', callListener);
})();
</script>
Create data layer variables
In the above script, “duration” is defined as a unique data layer variable, so register it as a data layer variable so that the “duration” variable can be used on Google Tag Manager. Here the variable name is “Duration”.
In “Duration”, the time from clicking (tapping) the phone number link to returning to the next page and performing an action (touching the screen or moving the mouse) is set in “seconds”.
Create a trigger for call counting
In the above script, a custom event named “Call” will be sent at the timing of “touching the screen” or “moving the mouse” after returning to the page after clicking the phone number link. I’m here.
Also, a custom event called “Call” will be executed regardless of whether “a certain amount of time has passed” after clicking the phone number link. So add a condition for the trigger and specify the condition for the elapsed time (“Duration”). For example, by specifying “Duration”, “Large” and “5”, the trigger will only respond when 5 seconds or more have passed. You can freely change this limit in seconds, so it’s a good idea to change the judgment conditions after implementing and testing for a certain period of time.
Create an event tag
Create a Google Analytics event tracking tag that links the created “trigger for call measurement”. Since the clicked element is specified in “gtm.element” at the timing of pushing the event to the dataLayer variable on the custom HTML tag, it is possible to specify “Click URL” as the event label (gtm Since the clicked element is included in .element, it is easy to narrow down the target link by “Click URL” or “Click Element” when creating a trigger for call measurement).
Also, in order to measure the optimization of the “elapsed time threshold (Duration)” set in the trigger, it is also a good idea to add “Duration” to the event value (or event label, etc.).
summary
It’s a simple idea that is easy to implement, and it can improve the accuracy of measurement. Please try it when you make a call measurement.