Google recently added a great feature to its AdWords; phone call tracking from the website. Previously Google gave the option of adding a phone extension in AdWords where the phone number would appear in the AdWords text ad.   This new feature allows the tracking of phone calls once the visitor has clicked on your add and is now on your site.
When the code is implemented, your phone number that is on your site would be replaced by a Google forwarding number that directs the calls to your business phone: this allows Google to track the call event.   The Google forwarding number replaces your own phone number only when a visitor comes to your site by clicking on a Google ad.  
This is a significant feature for conversion tracking as typically many businesses will see 2-3 times the phone calls as they get from the contract forms or email forms.   Also I believe that a phone call is a more valuable event than a form submission. So tracking phone call events is very beneficial. 
The feature is relatively new and in my opinion, Google does not thoroughly cover some the technical “gotchas” in its instructions.   Click here for Google instructions:
I implemented the new phone call tracking on 8 clients so far, the first one I struggled with and had to contact Google to get help.   One thing I can say for Google is that the phone help you get is very good. While the first person you get may not be extremely technical, they will set you up with the Google technical team who will walk through the process step by step.
In order to implement this feature you are going to need to be very familiar with JavaScript as the Google instructions don’t specifically tell you how to create the call back function. 
Here are the issues that I came across:
The first issue was in generating the code, on my first clients account, the code generated did not have the Java script tags around it, IE (<script type="text/javascript"></script>).   I knew enough about programming to know you needed to have some script tags, but not sure everyone would.
The second issue that may or may not be an issue for you is that you have to modify the <body tag> ; here is a example of how it would look: <body onload="_googWcmGet(callback, 'xxx-xxx-xxxx')"> - the x’s would be replaced by the formatted phone number that you want to get replaced by the Google forwarding number.   The reason this is an issue is that not every site built by a “sitebuilder” program will allow you to modify the body tag.   In the case of WordPress, you need to go into the php template code to change that, but for some of the other site builder systems, you may have to go to the software developer to make that change.    I would think that you could create an alternate script that actuates the callback function when the site is opened in a browser, but I have not tried to create one.
The next issue I came across is how to handle situations when you have the phone number in more than one place on a page. In essentially you have to create a separate segment for each phone number occurrence.   I think it is easier to show you rather than tell you. Below is a “sanitized” code that was implemented for one of my clients.
<!--BOF Google conversion tracking: track calls from website-->
<script type="text/javascript">
//code created from Google Analytics
(function(a,e,c,f,g,b,d){var h={ak:"xxxxxxxxx",cl:"xxxxxxxxxxxxxxxxxxxxx"};a[c]=a[c]||function(){(a[c].q=a[c].q||[]).push(arguments)};a[f]||(a[f]=h.ak);b=e.createElement(g);b.async=1;b.src="//www.gstatic.com/wcm/loader.js";d=e.getElementsByTagName(g)[0];d.parentNode.insertBefore(b,d);a._googWcmGet=function(b,d,e){a[c](2,b,h,d,null,new Date,e)}})(window,document,"_googWcmImpl","_googWcmAk","script");
 
//Callback function used at body.onload
var callback = function(formatted_number, unformatted_number) {
var e = document.getElementById("number_link");
e.href = "tel:" + unformatted_number;
e.innerHTML = ""
e.appendChild(document.createTextNode(formatted_number));
 
var c = document.getElementById("number_link1");
c.href = "tel:" + unformatted_number;
c.innerHTML = "" 
c.appendChild(document.createTextNode(formatted_number));
 
var xy = document.getElementById("number_link2");
xy.href = "tel:" + unformatted_number; 
xy.innerHTML = "" 
xy.appendChild(document.createTextNode(formatted_number));
 
var pq = document.getElementById("number_link3");
pq.href = "tel:" + unformatted_number;
pq.innerHTML = "" 
pq.appendChild(document.createTextNode(formatted_number));
};
</script>
I have color coded the segment that needs to be duplicated for each place you have a phone number on the webpage. The segment that needs to be duplicated is as follow:
var e = document.getElementById("number_link");
e.href = "tel:" + unformatted_number;
e.innerHTML = ""
e.appendChild(document.createTextNode(formatted_number));
What you need to do when duplicating it is to replace the “e” with another letter combination that isn’t used in any other code. In this case I used “xy”, and “pq”. The other item that needs to change is the element ID which in this case is “number_link”   so we simply added a number at the end such as “number_link1”,  “number_link2” etc.
Finally you have to tag each occurance of the phone number using the different ID in my case:
<a href="tel:xxxxxxxxxx" id="number_link">xxx-xxx-xxxx</a>
<a href="tel:xxxxxxxxxx" id="number_link1">xxx-xxx-xxxx</a>
<a href="tel:xxxxxxxxxx" id="number_link2">xxx-xxx-xxxx</a>
<a href="tel:xxxxxxxxxx" id="number_link3">xxx-xxx-xxxx</a>
This was for a page that had 4 occurrences of the phone number.
What if you have 2 different phone numbers? You have to start all over by creating a different extension in your AdWords campaign, then create another unique code from the AdWords conversion tool and essentially have totally unique code set for the different number.
When doing AdWords, I often create a separate landing page just for the Google AdWord AdGroup. This page is often just an html page that is specifically tailored for a PPC user.   By doing this, you can avoid a lot of the hassle when you are trying to modify the template of a cms site.