Getting call tracking live comes down to four steps: provision tracking numbers, install dynamic number insertion (DNI) or enable Google forwarding, route calls to your destination number, and connect the platform to Google Ads, GA4, or your CRM. You can complete the Google forwarding route in under 30 minutes. A full third-party DNI setup with CRM integration typically takes two to four hours.
The fastest path to live tracking:
Phone leads are often invisible to campaign-level measurement without call tracking. Integrating call data into ad platforms and your CRM is what turns a ringing phone into a measurable conversion you can act on.
The two main approaches serve different goals. Choosing the wrong one wastes setup time and leaves attribution gaps.

Google Ads forwarding assigns a Google forwarding number directly to your ad. When someone calls, Google records the call duration, start time, and whether the call connected. You set a minimum duration threshold, and calls that meet it count as conversions. Setup is fast, it costs nothing beyond your ad spend, and it feeds directly into Google Ads bidding. The limitation is scope: it only tracks calls that come from Google Ads clicks. Organic, social, and offline channels are invisible.
Third-party DNI covers the whole website. A JavaScript snippet detects each visitor’s traffic source (UTM parameters, gclid, referrer) and swaps the phone number displayed on the page to a unique tracking number from a pool. That number routes to your real destination number, and the platform logs the call against the original source. CallRail is the most widely used platform for this in North America, and it supports keyword-level attribution for PPC, session-level attribution for organic, CRM integrations, call recording, and transcription.
![]()
| Factor | Google Ads forwarding | Third-party DNI (e.g., CallRail) |
|---|---|---|
| Setup time | Fast for Google forwarding | Several hours for third-party DNI |
| Cost | Included with Google Ads | Monthly platform fee |
| Attribution scope | Google Ads only | All channels (paid, organic, social, direct) |
| Keyword-level attribution | Yes (via gclid) | Yes |
| CRM integration | Limited | Native connectors or webhooks |
| Call recording | No | Yes |
| Canadian number availability | Yes | Yes |
Use Google forwarding if you only run Google Ads and need a fast start with no extra cost. Use third-party DNI if you run multiple channels, need keyword-level attribution across organic and paid, want call recording, or need calls to flow into a CRM.
A few practical decision points:
Note that Google forwarding number availability varies by country. In Canada, Google forwarding numbers are available for Google Ads campaigns, but confirm availability in your Google Ads account under the call reporting settings before committing to that route.
Local numbers with Canadian area codes outperform toll-free numbers for local service businesses. A plumber in Calgary gets better call-through rates with a 403 number than an 800 number because it signals local presence. Toll-free numbers (1-800, 1-888) work well for national campaigns or businesses that want to project a larger footprint. Vanity numbers (1-800-PLUMBER) are useful for offline advertising like radio or print, where memorability matters more than attribution granularity.
For DNI pools, use local numbers matching the area codes of your target markets. If you run campaigns in Toronto, Vancouver, and Calgary simultaneously, provision separate pools with 416/647, 604/778, and 403 numbers respectively.
Pool exhaustion is the most common cause of DNI attribution failures. Size your pool for peak concurrent visitors, not average visitors.
| Daily unique visitors | Recommended pool size | Notes |
|---|---|---|
| Under 500 | 8–20 numbers | Start with a small pool, monitor utilisation |
| 500–2,000 | 20–60 numbers | Add buffer for campaign spikes |
| 2,000–4,000 | 60–120 numbers | Segment by channel if possible |
| 4,000+ | 120+ numbers | Consult platform sizing guidance |
Vendor pool-sizing guidance recommends monitoring utilisation and expanding your pool when utilisation regularly exceeds roughly 80%. A safety buffer of 20–25% above your typical peak is a reasonable starting point.
The DNI snippet must load on every page of your site. A single page without it will show your real number, breaking attribution for any visitor who lands there. Add it to your site-wide header or footer, or deploy it through GTM as a custom HTML tag set to fire on all pages.

When a visitor arrives, the script reads UTM parameters, the gclid (Google Click ID), and the HTTP referrer. It assigns a number from your pool to that session and writes a first-party cookie so the same number stays visible as the visitor moves through your site. The cookie preserves attribution across pages within the session timeout window. Session timeout configuration affects both pool requirements and attribution accuracy, so check your platform’s default (typically 30 minutes) and adjust it to match your typical browsing session length.
Standard DNI scripts fire on page load. Single-page apps (SPAs) do not reload the page on navigation, so the script may not re-fire when a visitor moves between views. Fix this with one of two approaches:
router.afterEach in Vue, useEffect on route change in Next.js) and call the DNI script’s re-initialisation function.Check your platform’s SPA documentation. CallRail, for example, provides a re-initialisation method you can call manually on client-side navigation.
data- attribute as a swap target.content: property are not swappable. Move them to HTML.tel: href attribute. Confirm your platform updates both, or add the number element to the script’s target selectors.111-222-3333, 111.222.3333, and (111) 222-3333. Numbers formatted differently (spaces, no separators) may not be swapped. Standardise your number format across the site.Pro Tip: After installing the snippet, open your site in an incognito window with UTM parameters appended to the URL (e.g., ?utm_source=google&utm_medium=cpc) and confirm the displayed number changes from your default. Do the same with no UTM parameters to confirm the fallback number shows correctly.
Google Ads offers two paths for website call conversion tracking: native forwarding (Google assigns the number) and importing conversions from a third-party platform.
GA4 does not natively receive call events. You push them in one of two ways:
Build a GA4 conversion event from the call event (e.g., phone_call_qualified) and use it in your reports and audiences.
Connecting calls to your CRM is where call tracking pays off most clearly. When a sales rep picks up, they should already see the caller’s name, the campaign that drove the call, and the keyword if it was a PPC call.
For practical CRM automation examples that show how to trigger tasks and notifications when a tracked call arrives, the patterns apply directly to call-tracking workflows.
A working call tracking setup should pass every item on this checklist before you consider it live.
Step-by-step verification:
?gclid=test123 or use a real ad preview).Troubleshooting the most common failures:
Pro Tip: Set up a weekly automated report in your call tracking platform that flags calls with no source attribution. A sudden spike in unattributed calls usually means the DNI snippet stopped loading on a specific page template after a site update.
Canada’s Personal Information Protection and Electronic Documents Act (PIPEDA) governs how private-sector organisations collect, use, and disclose personal information, including caller data. Under PIPEDA, you need a lawful purpose for collecting caller phone numbers and call recordings, and you must be transparent about that collection in your privacy policy.
Practical implications:
Canada’s criminal code requires the consent of at least one party to a call for recording to be lawful. In practice, most businesses satisfy this by playing a disclosure message at the start of the call. A standard IVR disclosure sounds like: “This call may be recorded for quality assurance and training purposes.” That is sufficient for one-party consent in most Canadian jurisdictions.
Quebec’s Law 25 (formerly Bill 64) imposes stricter consent and transparency requirements than PIPEDA alone. If you serve Quebec residents, review your consent flows and privacy notices against Law 25 requirements.
Once calls are flowing into your platform, the data is only useful if you act on it. These are the KPIs and optimisation moves that produce real results.
Key KPIs to track:
Optimisation actions:
Automation tip: Set up a CRM workflow that creates a follow-up task automatically when a call ends without a deal being created. Pair this with automated marketing analytics workflows to keep your reporting current without manual exports.
For scaling, add AI call scoring to separate high-value leads from misdials automatically. Google Ads call transcription is available for eligible accounts and can surface keyword themes from calls directly in your reporting.
A working call tracking setup requires four things: the right approach for your channels, correctly sized number pools, a properly installed snippet or forwarding tag, and live integrations to Google Ads, GA4, and your CRM.
| Point | Details |
|---|---|
| Choose your approach first | Google forwarding suits ads-only setups; third-party DNI covers all channels and enables CRM integration. |
| Size your number pool correctly | Start with 8–20 numbers for under 500 daily visitors; expand when utilisation exceeds roughly 80%. |
| Install DNI on every page | A single page missing the snippet breaks attribution for visitors who land there; deploy via GTM for reliability. |
| Comply with Canadian privacy rules | Play a recording disclosure on your IVR, update your privacy policy, and review Quebec’s Law 25 if you serve that province. |
| Tech Business Development | Handles GTM, GA4, Google Ads, DNI installation, and CRM integration as a bundled setup for small businesses. |
There is a gap between what call tracking promises and what most implementations actually deliver. The promise is full-funnel attribution: every phone lead traced back to the keyword, ad, and campaign that generated it. The reality, for most small businesses, is a partially connected system where calls show up in the platform but never make it into Google Ads bidding or CRM records.
The single biggest missed opportunity is the CRM connection. Most businesses get the DNI snippet live and stop there. They can see calls in the platform dashboard, but their sales team is still working blind. The moment you push call metadata into the CRM, the whole picture changes: reps know the campaign before they say hello, managers can see which channels produce closeable leads, and budget decisions stop being guesswork.
The second thing practitioners underestimate is pool sizing. It feels like a minor technical detail until you realise that an undersized pool means some visitors are seeing your real number, not a tracked one, and those calls are invisible to your attribution model. The fix takes five minutes once you catch it, but you will not catch it without monitoring utilisation in the first two weeks.
For local service businesses in Canada, the area code choice matters more than most guides acknowledge. A local number in the right area code is not just an attribution tool. It affects whether someone picks up the phone in the first place.
Small businesses with a single Google Ads campaign and no CRM can get full value from Google forwarding alone. The moment you add a second channel, a CRM, or a sales team that needs context on inbound calls, the economics of a third-party DNI platform pay for themselves quickly.
Most small businesses spend more time troubleshooting their call tracking setup than they do acting on the data. Tech Business Development handles the full implementation: GTM and GA4 configuration, Google Ads call conversion setup, DNI installation, number provisioning with Canadian area codes, CRM integration, and a verified test before handoff.

A typical small-business engagement covers discovery (understanding your channels and CRM), provisioning (numbers, routing, and platform configuration), implementation (snippet or tag deployment, Google Ads and GA4 connections), and a testing session to confirm attribution is working across every channel. You get a documented setup you can manage yourself, or Tech Business Development can handle ongoing monitoring as part of a monthly package.
If you want call tracking live and connected to your marketing stack without spending days on documentation and debugging, see what’s included in our services or visit techbusinessdevelopment.com to get started.
The following official documentation and vendor guides are the best references to consult while implementing call tracking. Prefer vendor docs when installing platform-specific snippets or tags, as code examples and field names change with platform updates.