Back to Blog

Tracking Campaign Performance for Contractors: Dollars In, Dollars Out

Pipeline Research Team
Blog

Key Takeaways

  • SearchLight Digital tracked $14.9M across 816 contractors and 8,077 campaigns - average CPL is $104, but $34 on branded vs $149 on non-branded search
  • A healthy ROAS for home service PPC is 7-9x according to Coalmarch 2026 benchmarks - anything under 4x usually means broken tracking, not broken ads
  • 83% of marketing leaders now rank proving ROI as their top priority, up from 68% five years ago
  • Contractors who track call source down to the keyword reallocate 20-30% of budget within 90 days and lower blended CPL by double-digit percentages

SearchLight Digital tracked $14.9 million in HVAC and plumbing Google Ads spend across 816 contractors and 8,077 campaigns in January 2026. Blended cost per lead came in at $104. But the same data shows branded search at $34 per lead and non-branded search at $149 - a 4.4x difference hiding inside a single “Google Ads” line on a P&L.

If your tracking lumps every campaign into one number, you cannot see that gap. You cannot cut what is overpriced or scale what is working.

83% of marketing leaders now rank proving ROI as their top priority, up from 68% five years ago according to Coalmarch’s 2026 benchmark report. Tracking campaign performance is the work that gets you from “we spent $12,000 last month” to “the heat-pump campaign returned 9x and the maintenance-plan campaign returned 1.3x.”

What does tracking campaign performance actually mean for a contractor?

For most agencies it means impressions, clicks, and CTR. For a contractor it means dollars in and dollars out per booked job.

A click is not a lead. A lead is not a job. A job is not revenue until it closes and gets paid.

Real campaign tracking ties every stage together: ad spend, call or form, booked appointment, sold ticket, collected cash. If your dashboard stops at “lead,” you are flying half blind.

SearchLight’s data shows the book rate on non-branded leads is 37.6%, with a 42.1% match rate and an $804 cost per paying customer. Performance Max books at 32.2% with a $447 cost per paying customer. Those numbers only exist because the tracking stack feeds CRM revenue back into the ad platform.

Why does last-click tracking lie to contractors?

A homeowner sees your truck wrap in March. They check your reviews in April. In May their AC dies and they search your company name. They click your Google Ad and book.

Last-click attribution gives Google Ads 100% credit. The truck wrap and the reviews get zero.

We covered the mechanics in detail in multi-touch attribution for home service: the average homeowner hits 7-12 touchpoints before booking, and last-click overvalues Google Ads by 40-60%.

When you cut a “low performing” channel based on last-click data, branded search volume usually drops 60-90 days later. The dollar saved on radio or yard signs costs you three dollars in lead flow you cannot trace back.

Which numbers actually matter on a contractor campaign tracker?

Five numbers per campaign, per month. That is the minimum viable scorecard.

Ad spend. What you paid the platform.

Leads generated. Calls plus forms, deduplicated against your CRM so the same caller across three campaigns does not get counted three times.

Cost per lead. Spend divided by leads. WordStream’s 2025 Google Ads benchmark report pegs home service CPL between $80 and $150 depending on trade. Anything outside that range needs explanation, not assumption.

Booked job rate. Of the leads, how many turned into appointments. SearchLight’s 37.6% non-branded book rate is your benchmark. If yours is 15%, the campaign is fine and your call handling is broken.

Revenue per dollar spent. Coalmarch’s 2026 benchmark says a healthy ROAS for home service PPC is 7-9x. SEO averages around 19x. If your campaign returns under 4x, you have either bad tracking, bad targeting, or bad close rates - never assume it is the ads.

Stop tracking impressions and CTR unless you are an agency selling reports. Contractors get paid in collected revenue.

How do you set up the tracking stack without overspending?

You do not need an enterprise suite. You need four connected layers.

Layer 1: UTM parameters on every paid link. Every Google Ad, Facebook Ad, email, and yard sign QR code gets tagged. Use a consistent naming convention. We broke down the structure in UTM parameters explained for contractors.

Layer 2: Call tracking with dynamic number insertion. CallRail is the only call tracking provider in the ServiceTitan marketplace today. The integration sends inbound calls into ServiceTitan with marketing source, medium, campaign, and keyword attached. CallRail starts at $50/month. For a contractor spending $8,000 on ads, skipping this is malpractice.

Layer 3: A conversion tracking pipe from CRM back to the ad platform. Google Ads needs to know which leads closed, not just which clicked. Most contractors never wire this up. The ones who do see their smart-bidding performance jump within 60 days because the algorithm finally has revenue signal. The setup is covered in our conversion tracking guide.

Layer 4: A dashboard. Looker Studio (free) pulls Google Ads, GA4, and CallRail into one view. ServiceTitan’s Marketing Pro Ads dashboard does the same inside the CRM. Jobber’s reports cover the basics for smaller shops. The full lineup of campaign performance tools for contractors goes deeper - LocaliQ tracked 3,200 home service campaigns where CPL jumped 10.51% YoY, and the right stack ties spend to booked jobs.

The total cost of this stack runs $50-$300/month depending on volume. That is 1-2% of a typical contractor ad budget.

How do contractors who track well actually use the data?

A plumbing operator on r/sweatystartup posted his Q1 numbers after wiring CallRail into ServiceTitan. Non-branded search showed a $186 CPL and 28% book rate. Branded search showed a $31 CPL and 64% book rate. He cut non-branded budget 40% and shifted spend to LSAs and brand-builders. Blended CPL dropped from $112 to $74 in 60 days.

An HVAC owner in the r/hvac community ran the same analysis on Facebook Ads. The maintenance-plan campaign showed a $42 CPL but a 4% book rate and $1,200 cost per paying customer. He killed it. The repair-emergency campaign showed an $89 CPL with a 31% book rate and $290 cost per paying customer. He doubled it.

A roofer posted on ContractorTalk that he tracked door-knockers against Google Ads using unique tracking phone numbers and UTMs on yard-sign QR codes. The door-knockers cost $340 per booked job. Google Ads cost $510. The yard signs - which “felt like a waste” - cost $90. He cut Google Ads spend 30% and tripled yard-sign placement in winning zip codes.

None of these moves are possible without the layer that ties spend to collected revenue.

What tools do contractors actually use?

The shortlist matters because contractor budgets are not unlimited.

CallRail for call tracking and dynamic number insertion. Native integration with ServiceTitan, Housecall Pro, and Jobber.

ServiceTitan Marketing Pro for ad attribution inside the CRM. Pulls Google Ads spend, matches to booked jobs, and reports ROI per campaign in one dashboard.

Jobber’s reporting suite for smaller shops. Tracks revenue by source if you tag leads correctly at entry. If your accounting already lives in QuickBooks, tracking marketing ROI in QuickBooks covers the three custom fields that surface cost-per-job by channel in under 15 minutes.

Looker Studio (free) for stitching Google Ads, GA4, CallRail, and a CRM export into a single weekly view. Templates exist - do not build from scratch.

Workiz if you run a field-service operation on a tighter stack. Workiz handles revenue attribution at the job level and we covered it in Workiz revenue tracking for marketing ROI.

GA4 for the source layer. Free, mandatory, and most contractors have it configured wrong. WordStream’s 2025 data shows GA4 conversion events get misfired on roughly 40% of contractor sites.

For the full breakdown of how these fit together with visitor identification and behavior analytics, the parent guide is paid ads analytics tools for contractors.

What about leads that never identify themselves?

CallRail handles phone attribution. UTM tags handle form attribution. Neither one tells you who the 96% of anonymous website visitors actually were.

LocaliQ analyzed over 50,000 service businesses and put HVAC LSA leads at $52 each. But for every form fill and call, anywhere from 20-40 homeowners visited your site, hit your service page, and left without converting. That is anonymous traffic - and most of it is paid traffic you already bought.

Visitor identification closes the loop. You see which campaign drove the visit, which homeowner it was, and you can follow up directly instead of paying again to retarget. The mechanics are covered in identify anonymous website visitors without forms and identify website visitors who abandon forms.

A contractor running Google Ads at $5,000/month with a 2% form conversion is paying for 2,500 visitors to identify 50. The other 2,450 are bought traffic walking out the door. Visitor ID recovers a meaningful slice of that.

What does a weekly campaign review actually look like?

Forty-five minutes, every Monday. One operator, one spreadsheet or dashboard.

Pull the prior week. Spend per campaign, leads per campaign, booked jobs per campaign, revenue per campaign. Compare to the trailing 4-week average.

Flag anything moving more than 25% in either direction. Cost per lead jumped 30%? Check the search terms report - usually a bad-match keyword started spending. Booked rate dropped 20%? Pull three call recordings - usually a CSR change or after-hours coverage gap.

Decide one change. Cut a campaign, raise a bid, add a negative keyword, swap a landing page. One change per week beats five changes nobody can attribute.

This is what sales tracking software and a lead management system exist to enable. Without the review cadence, the data sits unused.

Frequently Asked Questions

How long does it take to see useful data after setting up campaign tracking?

Two to four weeks for click and lead data. Sixty to ninety days for booked-job and revenue data because the contractor sales cycle includes estimates, follow-up, and scheduling. Do not make major budget changes based on the first 14 days.

Can I track campaigns without CallRail or ServiceTitan?

Yes. GA4 plus UTM tags plus a manual lead-source dropdown in your CRM covers 70% of the value at zero software cost. The gap is phone-call attribution - which is where 60-80% of contractor leads land. We compared the trade-offs in call tracking vs form tracking.

What is a realistic cost per booked job for HVAC Google Ads in 2026?

SearchLight’s data puts the average at $804 for non-branded and $447 for Performance Max. LSAs run lower at $52-$71 per lead with higher book rates. If your cost per booked job is above $1,200, the tracking stack will show whether it is bid strategy, landing page, or call handling - rarely the ad itself.

Do I need to track campaigns separately for emergency vs maintenance vs install jobs?

Yes. Average ticket varies by 5-20x across those job types. Blending them produces meaningless CPL numbers. A $90 CPL on a $400 maintenance job is bad. The same $90 CPL on a $14,000 install is excellent.

What is the single biggest tracking mistake contractors make?

Counting leads but not closing them back to revenue. The $10,000 mistake of running paid ads without tracking is rarely a missing pixel. It is missing the loop from CRM revenue back to the ad platform.

Track every dollar to its source

Tracking campaign performance is not a dashboard project. It is a discipline.

Five numbers per campaign per month. A weekly 45-minute review. One change at a time. Tools that cost 1-2% of your ad spend and reveal the other 98%.

The contractors winning in 2026 are not spending more. They are tracking better. They know which keyword pays for itself in 30 days, which truck wrap drives branded search, and which homeowner visited their site three times without ever filling out a form.

PipelineOn identifies the anonymous visitors your tracking stack already paid to attract. Pair it with CallRail, ServiceTitan, and a Looker Studio dashboard, and every dollar gets a source - or gets cut.