Run by Claude

Call Tracking for Contractors: How to Know Which Marketing Is Actually Working

You're running Google Ads, local SEO, and maybe LSAs. But do you actually know which one is driving calls? Here's how call tracking works for contractor businesses — and how to set it up without breaking your local SEO.

MurphJune 20, 20265 min read

Most contractors have no idea which marketing is actually working.

You're running Google Ads. You're doing local SEO. Maybe you've got LSAs running too. Every month, calls come in. But when someone asks "how'd you find us?", the answer is usually "Google" — which tells you nothing about whether you should keep spending $800/month on ads or whether organic is the one doing the work.

Call tracking fixes that. Here's how it works for contractor businesses, and how to set it up without accidentally breaking your local SEO in the process.


The attribution problem contractors live with

Every lead-generation channel for a contractor feeds into the same place: the phone rings.

A customer searches "AC repair [city]", clicks your Google Ad, lands on your site, and calls. Another customer finds your GBP listing in the Map Pack, taps the call button. A third finds your website from organic search and calls the number in the header. All three calls look the same when they hit your phone.

Without call tracking, you're flying blind on what's worth paying for. You know roughly how much you're spending on Google Ads, and you know roughly how many calls you're getting — but you can't connect those two numbers.

That's what call tracking does. It assigns a different phone number to each channel, and when someone calls, the system logs which channel sent them.


How it actually works: dynamic number insertion

The technology behind call tracking is called dynamic number insertion (DNI). It works like this:

  1. You create tracking numbers for each marketing channel you want to measure.
  2. You add a small JavaScript snippet to your website (one line, typically in the <head>).
  3. The snippet checks where each visitor came from (Google Ads, organic, Facebook, direct, etc.) and swaps the phone number displayed on your site to the corresponding tracking number — invisibly, in real time.
  4. When the visitor calls that number, the call goes through to your real number, and the system logs the source.

From the caller's perspective, nothing is different. From your perspective, you now know exactly where that call originated.


The NAP problem — and how to avoid it

Here's where contractors get into trouble: NAP consistency is a real local SEO signal. Google and AI search systems look for your name, address, and phone number to match across your website, GBP, Yelp, BBB, and every other directory listing. Inconsistencies create confusion about which business is which, and it works against your Map Pack rankings.

If you paste your call tracking numbers into Yelp, BBB, Angi, and your GBP listing, you'll create NAP mismatches that hurt your organic rankings. You'd be paying to improve your attribution while degrading the marketing channel doing the most for you.

The rule is simple: tracking numbers go on your website and inside your ad platforms only. Your real business number stays on every citation and directory.

Specifically:

  • GBP listing: your real business number (the one on every other citation)
  • Your website: DNI-swapped tracking number based on visit source
  • Google Ads call extensions: dedicated Google Ads tracking number
  • LSA: your real business number (LSA ranks partly on responsiveness — don't complicate that)
  • Yelp, BBB, Angi, chamber, every other directory: your real business number

What the data actually shows you

Once call tracking is running, three levels of data become visible.

Channel-level attribution. You'll see how many calls came from Google Ads vs. organic vs. GBP direct vs. Facebook vs. direct traffic. For most contractors, organic and GBP combined outperform paid 2-to-1 once the SEO foundation is solid. If you're not seeing that, the spend allocation question has a clear answer.

Keyword-level attribution (Google Ads). For Google Ads specifically, you'll see which search terms are generating actual calls — not just clicks. This is the data you need to make the negative keyword decisions that stop budget waste. If "water heater installation near me" generates 12 calls per month and "water heater repair cost" generates 0 calls but lots of clicks, you either add the second term to your negative list or adjust your bid on it significantly.

Call recording. Most call tracking tools record every call (with a brief "this call may be recorded" disclaimer). The recordings tell you two things that the data doesn't: whether your staff is answering calls promptly and converting leads effectively, and whether the call quality from a specific channel is high (real jobs) or low (tire-kickers, wrong numbers, people shopping three companies). LSA leads in particular are worth reviewing by recording to know whether the credit request rate you're running (20-30% is normal for bad leads) is accurate.


The tools

CallRail is where most contractors start. Plans start around $45/month for basic call tracking. It integrates with Google Ads directly, has a clean dashboard, and the DNI setup is well-documented. Good choice if you're spending $500-$3,000/month on paid ads and want clean attribution.

WhatConverts is stronger if you want to track form submissions and chat alongside calls. Same price range.

Google Ads native call tracking is free and built in — but it only tracks calls from Google Ads, not your other channels. If all you care about is Ads attribution, it works. If you want to know how organic and paid compare, you need a third-party tool.

Budget math: at $45/month for CallRail, you need to find one additional lead per month that you were previously wasting budget to justify the cost. For almost every contractor running Google Ads, call tracking pays back within 60 days by revealing which campaigns to cut.


What to do with it after setup

The goal of call tracking isn't the data — it's the decisions the data enables.

Week one: Set up the tracking, verify DNI is working, make sure calls are routing correctly. Don't change anything yet.

Month one: Look at channel-level call volume. Note which channels are driving calls and at what cost-per-call. Don't optimize prematurely — you need a month of baseline data.

Month two: If you're running Google Ads, open the keyword-level call report and add any high-click, zero-call keywords to your negative list. Compare cost-per-call from Ads vs. cost-per-call from organic (which you can roughly calculate from your SEO investment).

Month three onward: You now have real data on what each channel is worth per call. Double down on what's working. Cut or pause what isn't. This is what marketing decisions should look like — not guesses based on "how'd you find us?"


Before you can make smart decisions about your marketing, you need to know what's actually driving calls. Call tracking is the missing piece. If you want to know what your business's current online presence looks like — search visibility, GBP health, site speed, and AI search coverage — the free brand audit at /start runs the full picture in about two minutes.

— Murph, VibeTokens

Want to see how your business stacks up?

Get a free brand audit — we'll show you what's working, what's not, and what to fix first.

Free Brand Audit →
Jason Murphy

Written by

Murph

Jason Matthew Murphy. Twenty years building digital systems for businesses. Former CardinalCommerce (acquired by Visa). Now running VibeTokens — a brand agency for small businesses that builds websites, content, and growth systems with AI.

AI-Powered Brand Maintenance · From $199/mo

Your competitor's SEO doesn't stop when you close your laptop. Keywords, content, GBP posts, schema — we keep your brand active so you don't have to.

See What's Included →

Your brand is your first impression.

Find out if it's costing you customers.

Free brand audit. We analyze your online presence, competitors, and messaging — then tell you exactly what to fix.

Get Your Free Brand Audit →