All posts
Tactical March 22, 2026 8 min

How to Set Up Call Tracking for Local Service Ads (Correctly)

Dynamic number insertion, call recording, conversion attribution — the 4-piece stack every local service business should have running.

If you run a local service business and can't answer "which ad generated that call?" — you're flying blind. This guide is the exact call-tracking stack we set up for every client, with the why behind each piece.

Why call tracking matters for local service

For most local service businesses, 60–80% of conversions happen by phone. Roofers, HVAC, plumbers, pool service — people don't fill out a form and wait. They call. If you're only tracking form submissions, you're seeing a quarter of your actual conversions and optimizing against the wrong data.

Google's bid algorithms need conversion data to optimize. Feed them form conversions only and they'll optimize for form-fillers, which are a low-value, tire-kicker audience. Feed them phone call conversions and they optimize for the high-intent, ready-to-buy searchers.

The 4-piece call tracking stack

1. Dynamic Number Insertion (DNI)

DNI swaps the phone number displayed on your website based on where the visitor came from. Google Ads click? They see tracking number A. Meta Ads click? Tracking number B. Direct/organic? Your main business number or another tracked line.

The visitor experiences no difference — they call the number on the page, reach your real phones, and you answer as normal. But the call itself is recorded with its source in your tracking dashboard.

  • Tools that do this well: CallRail (industry standard), WhatConverts, CallTrackingMetrics
  • Cost: $45–$150/mo depending on call volume
  • Setup time: about 45 minutes for the tracking script, plus ~15 min for number pool sizing

2. Keyword-level attribution

DNI alone tells you "this call came from Google Ads." But which keyword? Keyword-level attribution pairs each unique number with the specific Google Ads click parameters (gclid) so you can see "this call came from Google Ads campaign X, ad group Y, keyword Z."

This is the data that matters. You can have a campaign that looks efficient at the campaign level but is actually being carried by 2-3 winning keywords while the rest burn money. Keyword-level attribution surfaces that.

3. Call recording + conversation intelligence

Every call recorded, transcribed, and (ideally) auto-tagged based on what happened: did it become a booked appointment, a pricing inquiry, a wrong number, a callback request?

Modern call tracking tools use AI to auto-tag outcomes. That matters because raw "call count" is a noisy metric — a campaign can generate 100 calls and only 12 actual appointments. You need to see the appointment count flowing back, not just call count.

  • CallRail Conversation Intelligence does this well
  • Cost: add-on, usually $20-40/mo on top of base

4. Feeding conversions back to Google Ads

This is where most contractors drop the ball. You tracked the call. You saw it was a qualified lead. Now you need to send that conversion back to Google Ads so Google's bidder learns what to optimize for.

In CallRail (and similar), set up the Google Ads integration to push phone conversions as offline conversions. Use "Qualified Call" as the primary conversion, not just "Any Call Over 60 Seconds." Junk calls go 60+ seconds all the time.

Best-practice criteria for a qualified call:

  • First-time caller (not an existing customer)
  • Call duration over 90 seconds
  • Auto-tagged as "appointment," "estimate," or "quoting" by conversation intelligence
  • Not flagged as spam or vendor

Common mistakes

Tracking every call as a conversion

If you tell Google "every call is a conversion," it'll optimize for call volume regardless of quality. You'll get flooded with spam, wrong-number calls, and vendor pitches. Qualified calls only.

Using the same tracking number everywhere

A single tracking number that appears on Google Ads, your website, your Google Business Profile, and your Facebook page tells you nothing. You need separate numbers per source, minimum: Google Ads, Meta Ads, LSAs, Organic, Direct.

Not monitoring number pool size

DNI works by rotating a pool of tracking numbers among visitors. If your pool is too small for your traffic, two visitors can share the same number and attribution breaks. Rule of thumb: number of phone numbers = peak concurrent visitors × 1.5.

Expected setup timeline

  • Account setup and number provisioning: same day
  • Tracking script install and test: 1 hour
  • Google Ads conversion import: 24–72 hours of data before conversions flow
  • Google Ads smart bidding adapts: 2–3 weeks of consistent conversion data

Bottom line

Call tracking isn't a nice-to-have for local service ads. It's the difference between spending money and spending money with a feedback loop. Get the stack running before you scale spend — otherwise you're paying more to see less.

Related: CPL benchmarks by industry

Want this run for your business?

GreenLightAds runs Google Ads, Meta Ads, and landing pages for local service businesses. Free 15-minute strategy call — we audit your setup and show you where the leaks are. No pitch.