"How did you hear about us?" is not an attribution system
Homeowners say "Google" and mean five different things. Here's how to trace a booked job back to the ad that produced it - call tracking, UTMs, and a 15-minute weekly reconciliation that fixes your CAC math.
Ask a homeowner how they found you and most will say "Google." That answer is technically true and completely useless. Google is a search ad, a Local Services Ad, the map pack, an organic result, and a review page - five different line items with five different costs, three of which you're paying for right now. If your CSR is writing "Google" in the source field, you are funding four channels blind and defending none of them.
This is the follow-on problem to setting an ad budget. Deciding you can profitably pay $540 to land a roofing customer is the easy half. Knowing which channel actually delivered that customer - and what it charged you - is where most home-service companies quietly lose the plot.
Why your dashboards and your bank account disagree
Open three tabs - Google Ads, your LSA dashboard, and Meta - and add up the conversions. The total will be larger than the number of jobs you booked. Sometimes much larger. That isn't fraud; it's how the platforms are built.
- A "conversion" is not a job. Google counts a phone call over 60 seconds as a conversion. That includes the guy asking if you service his area, the supply house, and the homeowner who hung up on your price.
- Every platform claims the same customer. A homeowner clicks your search ad Tuesday, sees a Meta retargeting ad Thursday, then calls the LSA listing Saturday. All three dashboards will book that one job. Add them up and you've triple-counted your best customer.
- Attribution windows outlive the decision. Default windows run 30 days and longer, which is fine for a water heater and badly misleading on a roof replacement someone deliberated over for two months.
- Nothing in the ad account knows what a job was worth. A $400 drain clear and a $28,000 changeout are both "1 conversion." The dashboard optimizing your spend cannot tell them apart unless you tell it.
The dashboards are measuring their own contribution, in their own favor, in units of leads. You get paid in booked jobs. Those are different books, and only one of them matters at the end of the month.
Track three things, not thirty
You do not need an analytics stack. You need every lead to carry a source that survives all the way to revenue. Three fields, captured once, held to the end:
- Source - which specific channel produced the contact. Not "Google." LSA, Google Search, Google Business Profile, organic, Meta, referral, repeat customer, yard sign.
- Outcome - did it become a booked job, a quoted-but-unsold estimate, or a non-lead (wrong number, sales call, out of area)?
- Revenue - the invoiced total when the job closes out, not the estimate.
With those three you can compute the only number that actually settles arguments: cost per booked job by channel. Run it on 100 leads. Say LSA sent 40 at $85 each, and 22 booked - that's $3,400 for 22 jobs, or $155 per job. Say a shared-lead marketplace sent 40 at $60 each, and 6 booked, because the other four contractors who bought the same lead got there first - that's $2,400 for 6 jobs, or $400 per job. The marketplace looked cheaper per lead and cost you two and a half times more per job. You cannot see that difference from a cost-per-lead column, which is exactly why lead resellers quote you cost per lead.
Call tracking, done without wrecking your local SEO
For the trades the phone is still the front door, and the phone is where attribution usually dies. Call tracking fixes it: assign a distinct number to each channel so the source is captured before anyone says a word.
- One tracking number per channel. A separate number for search ads, for LSA, for your Business Profile, and for print or direct mail. The moment it rings, you know what paid for it.
- Dynamic number insertion (DNI) on the website. A script swaps the number displayed on your site based on how the visitor arrived, so a click from a search ad and a click from an organic result report separately. Visitors never notice.
- Protect your NAP consistency. This is the step contractors get wrong. Your name, address, and phone must stay consistent across the web or your local rankings suffer. On your Google Business Profile, set the tracking number as the primary and your real line as an additional number - Google explicitly supports this pattern and can still match your business data.
- Record and listen to calls. Attribution tells you which channel rang. Recordings tell you why the call didn't book - and roughly a third of the time it is your own phone handling, not the channel.
For everything that arrives as a click rather than a ring, tag it. Put UTM parameters on your Business Profile website link, your email footer, your social bios, and any partner listing. Untagged traffic gets dumped into "direct," and "direct" is where good channels go to die unrecognized.
Close the loop: 15 minutes, once a week
Tracking numbers get you the source. Getting revenue attached to that source is a discipline problem, and it is the step almost everybody skips. Block fifteen minutes on Friday:
- Pull the week's leads from your CRM with the source already stamped by the tracking number - not typed in from memory on Friday afternoon.
- Mark outcomes. Booked, quoted, or junk. Junk matters as much as booked: if 30% of one channel's calls are people outside your service area, that is a targeting fix worth real money, and it is invisible in any dashboard.
- Attach invoiced revenue to the jobs that closed this week, even if the lead came in six weeks ago.
- Ask the homeowner anyway. Keep "how did you hear about us" as a second signal, not the system of record. When the tracking says LSA and the homeowner says "my neighbor told me about you and then I looked you up," both are true - and that tells you your referral engine is being credited to paid.
Give it 60 to 90 days before you make big calls. Home services carry real attribution lag: an emergency plumbing lead books the same hour, while a roof replacement or a full system changeout can sit for weeks between first click and signed contract. Judging a roofing channel on 14 days of data will convince you to shut off something that was working.
The numbers worth putting on one page
- Cost per booked job, by channel. The headline number. Compare it against the target you set from job profit.
- Booking rate, by channel. Two channels at the same cost per lead can differ 3x here. This is where exclusive leads separate from resold ones.
- Revenue per lead. Cost per job ignores ticket size. A channel that costs more per job but sends replacements instead of repairs may be your best buy.
- Unanswered call rate. Track it alongside source. A channel is not underperforming if the real problem is that nobody picked up.
- Lag time from first touch to booked. Tells you how long a channel needs before you are allowed to judge it.
You cannot audit what you do not own
Here is the uncomfortable part. Every step above assumes you can open the ad account and see the real spend. Plenty of contractors cannot. When an agency runs ads through its own account and bills you a bundled number, you are reading a report written by the party being graded. If the agency marks up ad spend, your cost per booked job is wrong by exactly the margin you cannot see - and no amount of call tracking discipline on your end will correct it.
That is why ProForged does it the other way. Your Google and Meta accounts are yours, in your name, from day one. We never mark up your ad spend - you pay the platforms directly and see every dollar of real cost. The tracking numbers, the CRM, and the call data belong to you too, so the history stays with you regardless of who runs the ads next year. And because we take one company per trade, per market, the leads we generate were never sold to the contractor across town, which is the single biggest input into that booking-rate column.
If you cannot answer "what did a booked job cost me on each channel last month," that is the number to build before you raise a budget. See whether your market is still open or claim your slot, and we will build the tracking with you.
Is your industry still open in your city?
We work with one business per niche, per city.
Keep reading
If you fired your marketing company on Friday, what would you still own on Monday?
Contractors usually find out who owns the ad account, the pixel, and the tracking numbers on the way out the door. Here's the 20-minute ownership audit, the exact screens to check, and what to fix before your next renewal.
Your cheapest lead source is the estimate you already wrote
Most contractors send a quote and follow up once, if at all. Here's the math on your unsold estimate pile — and the six-touch cadence that wins jobs back without buying a single new lead.