← Back to blog

Attribution for Local Services: Tie Every Lead to a Job

October 24, 2026
Attribution for Local Services: Tie Every Lead to a Job

Attribution for a local service business means knowing which ad, call or listing produced a booked and paid job, not just a ring of the phone. To get there you need three things: a unique source on every lead, a CRM that records what happened to each lead, and a feedback loop that sends those outcomes back to Google and Meta. Most contractors have the first piece half built and the other two missing, which is why so much ad spend looks like it works and doesn't.

This guide is for owners and marketing managers of HVAC, plumbing, roofing, electrical, landscaping and similar companies. It covers where attribution breaks, how to fix it step by step, how Local Services Ads (LSAs) fit in, and what to expect it to cost.

Leapify Media
leapifymedia.com
Turn Ad Leads Into Booked Jobs
Leapify Media builds AI-powered systems for home service companies to improve lead conversion and connect marketing spend with booked jobs.
Explore Leapify Media

TL;DR

  • Attribution that stops at "a call came in" hides the real problem. A Q3 2025 analysis of graded home service conversions found fewer than half were bookable.
  • Give every channel its own tracking number or source field, and write the source into the CRM the moment the lead arrives.
  • Close the loop: send booked and paid outcomes back to Google Ads using enhanced conversions for leads, so bidding learns from revenue instead of form fills.
  • Treat low ROAS as a lead quality question first, then a booking question.
  • LSAs need the same discipline: track the lead, mark the outcome, and pause the ads when you cannot answer the phone.

Table of Contents

Why "leads" is the wrong number to track

A lead report tells you how many people raised a hand. It says nothing about whether the dispatcher could book them. Jon Torrey, who analyzes lead-to-revenue data for contractors, graded more than 24,000 conversions and reported that 49% were bookable in Q3 2025 across HVAC and plumbing. The rest were mostly junk: roughly 8% spam, 5% outside the service area, 5% wrong numbers and 5% requests for work the business does not offer.

Reported bookable and unbookable lead rates

That changes how you read your dashboard. A campaign with 120 leads and a cost per lead of $40 looks healthier than one with 60 leads at $70. If half of the first campaign's leads cannot be booked, its real cost per bookable lead is $80, and the second campaign may be the better buy. You only see that when each lead carries a source and an outcome.

The same analysis makes a point worth repeating to your team: low ROAS is usually a lead quality problem before it is a booking problem. Fixing your call script will not rescue a campaign that sends out-of-area callers.

Where contractor attribution breaks

The breaks are predictable. Check yours against this list.

Break pointWhat goes wrongFix
Phone callsOne number on the website, so Google, Meta, Maps and direct all look the sameDynamic number insertion on the site plus separate numbers for each ad and profile
FormsForm fills land in an inbox and never reach the CRM with a sourceHidden fields for source, campaign and click ID that write straight into the CRM
Offline channelsTrucks, yard signs, mailers and referrals show up as "unknown"Dedicated numbers or a required "how did you hear about us" field on every booking
LSAsLeads live in Google's dashboard, not yoursPull lead data into the CRM and mark each as booked, lost or junk
Job outcomeThe ad platform never learns which leads became revenueSend booked and paid outcomes back to the platform
Staff habitsCSRs skip the source field when busyMake it required, and audit a sample of calls each month

Notice that only the first three are about tracking. The last three are about people and process, and they are where most of the money leaks.

Build attribution in six steps

You do not need a six-month project. A competent team can get the foundation running in a few weeks and improve it from there.

  1. Define what counts as a conversion. Not "a call" but "a call over 60 seconds from inside the service area" or "a booked appointment." Pick a definition for each channel and write it down.
  2. Set up call tracking. Use a unique number per channel and dynamic numbers on the site. If you run HVAC, our walkthrough on setting up call tracking in one afternoon shows the six steps to day-one data.
  3. Capture the click ID. When someone clicks a Google ad, Google appends a GCLID to the URL. Store it with the lead. Without it you cannot connect the job back to the click. We cover the details in GCLID to CRM setup for home services.
  4. Make the CRM the source of truth. Every lead gets a record with source, campaign, click ID, booking status, job value and paid status. Dispatchers update status as part of the normal workflow, not as extra paperwork.
  5. Send outcomes back to the ad platforms. Booked and paid jobs return to Google Ads and Meta so the bidding systems optimize toward revenue.
  6. Review weekly, decide monthly. Weekly: look for tracking gaps and junk patterns. Monthly: move budget based on cost per booked job and revenue per channel, not cost per lead.

Closing the loop with enhanced conversions for leads

Step five is where attribution stops being a report and starts changing results. Attribution is a feedback loop, not a set-and-forget tool. Once the platform knows which leads turned into revenue, automated bidding can favor the searches and audiences that look like them and quietly starve the ones that look like spam.

Google's current method is enhanced conversions for leads, an upgraded version of offline conversion import. It supplements imported outcomes with first-party data such as a hashed email address or phone number. Google recommends starting with it rather than the legacy import because it is easier to set up and gives more durable reporting.

Before you switch it on, Google's implementation checklist starts with accepting the Customer Data Terms in your account. Skipping that step is a common reason setups stall.

The practical requirement is on your side: your form or call workflow must collect an email or phone number, and your CRM must be able to send the outcome with that identifier. If your CRM cannot do that, the CRM is the project, not the ad account. If you are mid-migration, see our notes on fixing your enhanced conversions setup and on moving GA4 lead tracking to the Data Manager API.

Closing the loop with enhanced conversions for leads — overview diagram

What to send back

Do not send every lead as a conversion. Send stages that mean something:

  • Qualified lead: answered, in the service area, wants a service you offer.
  • Booked job: an appointment is on the calendar.
  • Paid job: invoice collected, with the revenue value.

If you have enough volume, optimize toward booked or paid jobs. If volume is thin, start with qualified leads and move down the funnel as data accumulates. Our post on performance marketing for home services explains how to choose that stage and why paid jobs beat leads as a target.

Attribution for Local Services Ads

LSAs are the channel where attribution is easiest to neglect, because Google gives you a tidy dashboard and it feels like the work is done. It isn't. Google reports leads; it does not know which became jobs unless you tell it.

Three habits make LSA data useful:

  • Log every LSA lead in the CRM with its lead type (call or message) and outcome. A lead that was a wrong number or a service you don't provide is something to dispute or at least to count against the channel.
  • Compare LSAs to search on cost per booked job, not cost per lead. Pay-per-lead pricing makes LSAs look cheap until you divide by booked jobs.
  • Control availability. When the phone cannot be answered, missed LSA calls are wasted spend. Per Google's help page on ad scheduling, you can pause by selecting the paused status in the ad schedule or by choosing the temporarily closed status in your business profile. Deselecting job types alone does not stop leads for the overall category.

That last point matters on holidays and during crew shortages. A short guide on home services lead generation tips covers managing the inbound flow so your schedule stays full without overloading your team. For the account-side setup, see our piece on Google Local Service Ads management for home services.

A worked example: same budget, different decision

The numbers below are illustrative, not client results. Imagine an HVAC company spending $10,000 a month across two channels.

Search adsLocal Services Ads
Spend$6,000$4,000
Leads100160
Cost per lead$60$25
Bookable leads6064
Booked jobs3630
Cost per booked job$167$133

On a lead report, LSAs look more than twice as efficient. On cost per booked job they are still ahead, but the gap is much narrower. Now add average ticket: if search jobs are mostly installs worth $7,000 and LSA jobs are mostly $350 repairs, search wins on revenue per dollar by a wide margin. Without job value in the CRM, you would have shifted money in the wrong direction.

The lesson is not that one channel is better. It is that you need source, outcome and revenue on the same record before the comparison means anything.

Trade-specific traps

Every trade has its own attribution wrinkles.

  • HVAC: Seasonal spikes bring emergency calls with high urgency and low patience. Track answered-within-ring-count and after-hours calls separately. See our HVAC Google Ads guide.
  • Roofing: Long sales cycles mean a click in March can become revenue in July. Keep click IDs and email on the record, and report on a rolling window rather than month by month. See the roofing Google Ads playbook.
  • Artificial turf: Lower volume means smoothing noise. Our post on turf Google Ads strategy after 30 conversions explains when there is enough data to optimize.
  • Plumbing and electrical: High call share and many small tickets. Call recording and tagging matter more than form tracking.
  • Landscaping: Estimates before jobs. Track estimate requested, estimate sent and accepted as separate stages.

Landing pages are part of this too. If every campaign sends traffic to one generic page, you lose the ability to test what converts. Our guide to contractor landing pages built in days covers keeping page, number and source aligned.

Our perspective

We see the same pattern when we audit home service accounts: the company has a call tracking tool, a CRM and a Google Ads account, and none of them agree. The ad account reports conversions that the CRM cannot find. The CRM has booked jobs with no source. Nobody trusts any dashboard, so decisions default to gut feel or to whichever channel is loudest.

Our view is that attribution is infrastructure, not a report. It should be built around how a home service business actually runs: a dispatcher answering the phone, a tech in a truck, an estimate that sits for two weeks. That is why we engineer our AI lead dispatch and intent scoring in-house and host it on our own on-premise servers rather than passing your call and customer data through a third-party AI tool. Your lead data is the raw material for every optimization decision, and we think it should stay yours.

The second conviction is that scoring has to be customized to the trade. A "good" roofing lead is not a "good" plumbing lead. Our engineers tune the automation and scoring to home service workflows, and you work directly with senior strategists rather than a rotating account manager.

One caution for anyone buying marketing services, us included. Be skeptical of vague AI claims. In 2025 the FTC took action against marketing companies that falsely claimed AI-powered "active listening" technology that targeted ads from real-time private conversations. Ask any provider exactly what data goes in, what comes out and where it is stored.

— Everson Gorski

What this costs

Budget for three pieces: tracking tools, CRM work and the ongoing management that acts on the data. On our side, pricing is published.

  • CRM Integration: from $3,000 one-off.
  • AI Dispatch Setup: $7,500 one-off, plus On-Premise AI Dispatch at $1,000 per month.
  • Google Ads Management or Meta Ads Management: $1,500 per month each.
  • Packages: Foundation from $2,500 per month, Growth from $7,500, Scale from $15,000 and Enterprise from $25,000.

All of these are listed on our pricing page. We work with home service businesses at $500K or more in annual revenue, since below that the volume rarely supports closed-loop optimization.

Where we can help

If your leads are not tied to jobs, start with the CRM and the click-ID flow, then layer ads management on top. Our Lead Generation and CRM Setup & Automation services are built for exactly this: source on every lead, outcomes flowing back into Google and Meta, and an AI dispatch layer that scores intent before your team picks up the phone. If you want to see how the pieces fit your trade, start from our pricing page and pick the scope that matches your current gap.

A 30-day starting plan

Week 1: Audit. List every channel that generates calls or forms. For each, note whether it has its own number or source field and whether that source reaches the CRM.

Week 2: Fix capture. Add dynamic numbers, hidden form fields and click ID storage. Make source required in the booking flow.

Week 3: Define stages. Agree on qualified, booked and paid. Start grading a sample of 50 leads for spam, out-of-area and wrong-number rates so you know your own baseline.

Week 4: Close the loop. Configure enhanced conversions for leads and send the first batch of outcomes. Then set the monthly review: cost per booked job and revenue per channel, side by side.

Expect imperfect data at first. A channel with 80% of leads attributed is far better than none, and the gaps usually show you which staff habit or tool to fix next.

FAQ

What is the best attribution model for a home service business?

For most contractors, a last-touch model tied to booked and paid jobs is the right starting point, because it is simple and your CSRs can apply it consistently. Add a first-touch field later if you run long sales cycles such as roofing. Model sophistication matters less than having a source and outcome on every record.

How do I track phone calls from Local Services Ads?

Google reports LSA calls and messages in its own dashboard, so the reliable method is to log each one in your CRM with its outcome. Compare LSAs to other channels on cost per booked job. If you cannot answer calls, pause the ads through the schedule or temporarily closed status.

What is the difference between offline conversion import and enhanced conversions for leads?

Enhanced conversions for leads is the upgraded version of offline conversion import. It adds first-party data such as hashed emails to the imported outcome, which Google says improves accuracy and bidding performance. It also needs less setup than the legacy approach.

How much of my ad spend is probably wasted?

It varies by account, but one Q3 2025 benchmark found only 49% of graded HVAC and plumbing conversions were bookable. Grade 50 of your own leads to find your baseline rather than relying on an average.

Do I need a CRM to do attribution?

Yes, in practice. Without one, outcomes live in spreadsheets or in your dispatcher's memory and cannot be sent back to the ad platforms. The CRM is where source, job value and paid status meet.

Sources