July 16, 2026

How to trace every booked job back to the marketing dollar that produced it.

Technician checking a tablet beside a work van in a driveway

No jargon and no dashboard worship — the full chain from ad click to booked job, where it breaks, and how to close the loop without hiring a marketing team.


Pull up last month's jobs in your CRM and look at the lead-source column. If your shop is like most, it says 'Google' forty times, 'referral' a dozen, 'other' more than you'd like — and it can't tell you whether the $5,000 you spent on ads made money or burned it.

That's the problem marketing attribution exists to solve, and in home services almost nobody has solved it. This guide covers the whole chain in plain English: what attribution actually means, why the question your CSRs ask callers doesn't work, how calls, forms, and bookings each get traced, and what a setup that works looks like — none of it requiring a marketing hire.

What is marketing attribution, in plain English?

Marketing attribution is the answer to one question: which ad, keyword, or channel produced this booked job? Not this click. Not this form fill. This job, with a dollar amount attached.

The 'booked job' part is what separates the trades from the rest of the marketing world. A software company can grade campaigns on leads; a contractor can't, because a lead that never books is worth exactly zero — and pull your own lead-to-job numbers and you'll find a large share of leads never become jobs. Reporting that stops at the lead is grading your spend on a proxy.

Working attribution answers the question at three levels of zoom:

  • Channel: did Google Ads out-earn Local Services Ads and the direct-mail drop last quarter?
  • Campaign: which campaign produces booked jobs at the lowest cost — not the cheapest clicks, the cheapest jobs?
  • Keyword: is 'emergency AC repair' quietly funding the whole account while 'hvac companies near me' burns budget?

Why is attribution harder in home services than in other industries?

If attribution advice written for e-commerce has never quite fit your business, you're not imagining it. Four things make the trades a harder case than almost any other industry.

  • The sale happens on the phone. An online store sees the whole purchase in the browser, click to credit card. Your customer clicks an ad, then dials — and a phone call carries no click data with it unless you build that bridge on purpose.
  • The revenue happens offline, later. The click is Tuesday, the booked job is Thursday, and the final invoice — which might grow from an $89 service call into a $9,000 replacement — closes weeks after that. Ad platforms can't see any of it on their own.
  • Humans handle intake. A CSR under pressure re-types leads, skips the source question, and picks whatever's first in the dropdown. Every manual handoff is a place where attribution data dies.
  • Multiple people, multiple devices. The homeowner clicks the ad on their phone; their spouse calls from the landline two days later having 'heard about you from Google.' Untangling that automatically is exactly what the machinery below is for.

Why does asking 'how did you hear about us?' fail?

The oldest attribution system in the trades is a CSR asking the caller where they found you. Keep asking — it's free, and it catches things software can't see, like a neighbor's recommendation over the fence. But it cannot be your system of record, for three reasons.

  1. Customers compress the journey. A homeowner who clicked your ad Monday, checked your reviews Tuesday, and searched your name Thursday will say 'I found you on Google.' True — and useless. Was that the ad budget or free organic search? Their answer can't tell you, and your next budget decision depends on the difference.
  2. CSRs skip it under pressure. When there's water coming through a ceiling, 'how did you hear about us' is the first question dropped. Audit any busy shop's CRM and you'll find the source field blank, defaulted, or set to whatever sits at the top of the list.
  3. Memory fails in good faith. People genuinely don't remember whether they saw an ad, a map listing, or an organic result — Google shows all three on one screen, and homeowners don't distinguish them. 'Google' as an answer covers at least four channels with wildly different costs.

What does the click-to-job chain look like?

Real attribution is a chain with five links. Every tool, tactic, and vendor pitch in this space is really about strengthening one or more of them — so once you can see the chain, you can evaluate anything.

  1. The click gets tagged. When someone clicks your Google ad, Google appends a GCLID to your URL — a unique string identifying that exact click, campaign, and keyword. Meta and Microsoft do the same with fbclid and msclkid. For the deeper mechanics, see the plain-English GCLID explainer.
  2. The website remembers it. Your site stores that click ID for the visitor's session, so it survives while they browse three pages, read reviews, and decide.
  3. The contact captures it. The call, form fill, or online booking has to pick up the stored ID and carry it forward. This is the link that breaks most often — especially for phone calls, which carry nothing by default.
  4. The CRM attaches it to the job. The lead becomes a customer and a job in ServiceTitan, Jobber, or Housecall Pro with the click ID and source still on it — not retyped, not lost in a handoff.
  5. The revenue goes back to the ad platform. The booked job's dollar value gets uploaded to Google, Meta, or Bing against the original click. This last link is what turns attribution from a report into a bidding advantage — and it's the one most shops never build.

Break any link and everything downstream reads 'direct / unknown.' The two most common breaks are link three for phone calls and link five for revenue — so each gets its own section below.

How do you attribute phone calls?

Calls are the hard part and the important part. Analyses from the call-tracking world consistently put phone calls at more than half of high-intent contacts in home services — a homeowner with a dead furnace dials, they don't fill out a contact form and wait. Attribution that only covers forms is blind to your best leads.

The standard fix is dynamic number insertion — DNI. In plain English: your website swaps the phone number it displays based on how each visitor arrived. Ad-click visitors see a tracking number, every tracking number rings your normal line, and the caller notices nothing. But the number they dialed now identifies the session — and with it the campaign, the keyword, and the click. The mechanics, pool sizing, and common myths are covered in the dynamic number insertion guide.

Not all call tracking is equal, though. Three things separate a setup that gives you keyword-level truth from one that gives you a vague channel report:

  • Session-level numbers, not channel-level. One tracking number for all paid traffic tells you 'the ad budget produced calls.' A per-visitor pool tells you which campaign and keyword — the level where budget decisions actually get made.
  • Honest confidence labels. Not every call matches its click with certainty, and a good system tags each match's confidence instead of presenting every guess as fact. Distrust any report with no 'unknown' row.
  • A path to the booked job. Matching a call to a keyword is half the work. The half that pays is matching it to the job and invoice in your CRM — otherwise you're still counting calls, not dollars.

One reassurance and one warning. Reassurance: set up to standard practice, DNI doesn't touch your local SEO — organic, direct, and Google Business Profile visitors keep seeing your primary number. Warning: a perfectly tracked call your office doesn't answer is still a lost job; attribution tells you which ad produced the call, and the missed-call math tells you what losing it cost.

How do you attribute forms and online bookings?

Forms are the easy part, which is why most 'attribution' setups do only forms. The click ID rides in the page URL; a hidden field in the form scoops it up and submits it alongside the customer's name and number. Any competent web developer can wire this in a day.

Online bookings are the best case. A form fill is a lead you still have to chase; a booking is a job on the schedule. When the booking flow writes directly into your CRM, the contact and the CRM record happen in one step — links three and four of the chain close simultaneously, source attached, with no human in the middle to drop it.

What is offline conversion tracking, and why does it matter most?

Everything above is data flowing in. Offline conversion tracking is data flowing back out — and it's where attribution stops being a report and starts making you money. 'Offline conversion' is ad-platform jargon for an outcome that happens off your website: the call that became a booked job, the job that closed at $9,400. Uploading those outcomes against the original click ID closes the loop.

Here's why this one step outranks every dashboard. Google, Meta, and Bing set your bids with automated bidding, and automated bidding optimizes for whatever 'conversion' you feed it. Feed it form fills and it hunts cheap form-fillers — including every tire-kicker and job-seeker who touches a form. Feed it booked-job revenue and it hunts people who become paying customers. Same budget, completely different target.

A simplified example. Campaigns A and B both produce leads at $60, so on lead cost they look identical and a form-fill-optimized account splits budget evenly between them. But if A's leads book at 35% and B's book at 10%, A's booked jobs cost about $170 each while B's cost $600. Without the revenue upload, neither you nor Google can see that — and the bidding engine keeps funding B.

The setup mechanics get their own guides: the general walkthrough of offline conversion tracking for home services, and for ServiceTitan shops, the step-by-step ServiceTitan–Google Ads integration guide.

Which attribution model should a contractor use?

An attribution model is just the rule for who gets credit when a customer touched your marketing more than once — clicked an ad Tuesday, came back through organic search Friday, called Saturday. Marketers argue about models the way techs argue about equipment brands, and most of the argument doesn't apply to a local service company.

  • Last click: the final touchpoint gets all the credit. Simple; slightly unfair to the ads that start journeys.
  • Last non-direct click: the same, except when the final visit is the customer typing your name in directly — then credit goes to the last real marketing touch before it. The sensible default, and what most analytics tools use out of the box.
  • First click: all credit to the first touch. Interesting for understanding what starts journeys; useless on its own for deciding what deserves next month's budget.
  • Multi-touch: credit split across every touchpoint by formula. Theoretically fairer; in practice it needs data volume a local shop rarely has, and it turns every report into a negotiation about the formula.

The honest advice: pick last non-direct click and move on. The difference between models is a rounding error next to the difference between a closed loop and an open one — a shop with a perfect multi-touch model and no revenue upload is measuring the wrong thing very precisely. Revisit the model on the day it would actually change a spending decision; for most local shops, that day is a long way off.

What does good attribution actually look like?

Strip away the tool names and a working setup means you can answer five questions from one screen, with numbers you'd defend to your accountant:

  1. What did a booked job cost me last month, per campaign? Cost per booked job, not cost per lead.
  2. Which keywords produced revenue, and which produced only clicks?
  3. How much booked revenue came in by phone versus forms versus online booking?
  4. What happened to the leads that didn't book — missed, unqualified, or lost to a competitor?
  5. What's my return on ad spend measured on booked revenue — not on pipeline, not on lead counts?

You can assemble this from parts — a call-tracking vendor, a developer for the hidden form fields, an agency script for the conversion uploads — and some shops do. The assembled version tends to break at the seams between vendors, which is exactly where the chain likes to break anyway. Purpose-built lead attribution software for home services runs the whole chain — click capture, call tracking, booking source, CRM match, revenue push — as one system, precisely because the seams are the failure points.

Closing the loop shows up in the bid engine fast. In one Peach deployment, cost per booked job fell from $332 to $143 across a 90-day rollout once campaigns started optimizing on booked revenue instead of form fills. Your numbers will differ; the mechanism won't.

How do you set this up without hiring a marketing team?

In this order, because each step multiplies the value of the one before it:

  1. Make the CRM the scoreboard. Every lead from every channel lands in ServiceTitan, Jobber, or Housecall Pro with a source attached — automatically, not via CSR data entry. If it isn't in the CRM, it didn't happen.
  2. Put DNI on the website. Calls are your biggest channel, so this closes the biggest hole first.
  3. Add hidden click-ID fields to every form, and make forms and bookings write to the CRM directly.
  4. Turn on offline conversion uploads, starting with Google Ads — typically where the biggest share of the ad budget sits and where the bidding gains land first.
  5. Read one report monthly: cost per booked job, by campaign. Scale what's under your target, cut what's over it, ignore everything else. That's the entire ongoing practice.

Do those five in order and you're ahead of most local competitors, who are still budgeting off the 'how did you hear about us' column. None of it requires a marketing hire. It requires about a week of setup and the discipline to read one report a month.

FAQ

What is the best attribution model for home services companies?

Last non-direct click: the last marketing touchpoint before contact gets the credit, unless that touch was the customer typing your name in directly. It's simple, it matches how homeowners actually buy urgent services, and at local lead-gen budgets the fancier multi-touch models rarely change a spending decision.

Do I need call tracking for marketing attribution?

In home services, yes. Analyses of contractor lead flow consistently put phone calls at more than half of high-intent contacts, so attribution without call tracking is blind to most of your revenue. Dynamic number insertion links each call to its source while your regular number stays on everything untracked.

Does dynamic number insertion hurt SEO or Google Business Profile rankings?

Not when it's configured to standard practice: direct, organic, and Google Business Profile visitors see your primary number, and only tracked ad traffic sees pool numbers. Your name-address-phone consistency — the thing local SEO actually cares about — stays untouched.

Can my CRM handle attribution on its own?

Partially. ServiceTitan, Jobber, and Housecall Pro all have a lead-source field and some campaign reporting, but they can only report what gets handed to them — they can't capture the ad click, swap website numbers for calls, or push booked revenue back to Google. Treat the CRM as the scoreboard and use attribution tooling to feed it clean data.

Want to skip the setup?

We do the CRM integration, ad-platform conversion sync, and booking-form setup for you. Most operators are live in 5–10 business days.

All articles