Lead source attribution in plain English
Every job started somewhere. A homeowner saw a truck, clicked an ad, got a referral from a neighbor or found you on Google Maps. Attribution writes that origin down at the moment the lead arrives and keeps it attached as the lead becomes a booked job, then a completed job, then a paid invoice.
Example: a plumbing company spends money on Google Ads, Local Services Ads, a lead marketplace and door hangers. At the end of the quarter it can either say "the phones were busy" or say which source produced which paid invoices. Attribution is the difference.
How do contractors track lead sources?
No single method catches everything, so most shops layer several:
| Method | What it catches | Where it falls short |
|---|---|---|
| A tracking phone number per channel | Calls from ads, mailers, truck wraps, listings | Customers who save the number and call it years later |
| UTM tags on links | Website visits from ads, email and social; Google Analytics reads utm_source, utm_medium and utm_campaign1 | Only covers clicks, not calls from print |
| Ad click IDs (such as Google's) captured on your web form | Which ad click produced a form lead | Lost if the form doesn't store them |
| Lead marketplace integrations | Angi, Thumbtack and similar leads arrive tagged | Only for sources you've connected |
| A required source field at booking | Everything the office books | Depends on the CSR picking honestly |
| "How did you hear about us?" | Referrals, word of mouth, yard signs | Memory is unreliable |
Google recommends always setting utm_source, utm_medium and utm_campaign together, and values are case sensitive, so "Google" and "google" show up as two sources.1
What are attribution models?
An attribution model is the rule for giving credit when a customer touched more than one channel.
| How credit is given | Who uses it | |
|---|---|---|
| Last click / last touch | All credit to the final interaction before the conversion | Google Ads (available), most simple reports |
| Data-driven | Credit spread using the account's own conversion history | Google Ads default for most conversion actions |
| First touch | All credit to the first known interaction | Some CRMs and analytics tools; no longer offered in Google Ads |
| Lead source of record | The source of the lead that booked the job | Most contractors, in their job records |
Google Ads no longer supports first click, linear, time decay or position-based models; conversion actions that used them were moved to data-driven.2 For a contractor, the practical rule is simpler: the job carries the source of the lead that booked it, and ad platforms get told which leads became paid work.
What should you report by lead source?
Clicks and calls are the cheapest numbers to get and the least useful. Report each source down the full funnel:
Metric
Revenue by lead source
Paid invoice revenue from jobs whose lead came from this source, in the period.
Sum of invoice totals where job.lead_source = source
Where the numbers come from: Leads, jobs and invoices that share the same source or campaign.
| Stage | Example question it answers |
|---|---|
| Leads | Is the channel producing inquiries? |
| Booked jobs | Are those inquiries real customers in your area? |
| Completed revenue | Do they buy, and how much? |
| Gross margin | Is the work profitable after labor and materials? |
| Cost per lead and per booked job | What did each stage cost? See cost per lead. |
Common attribution mistakes
Check for these
- Defaulting every unknown lead to 'Google' or 'Other'
- Letting CSRs skip the source field on busy days
- Crediting repeat and member jobs to the ad that won the first visit
- Judging channels on lead count instead of revenue
- Using different spellings for the same source
- Never sending completed sales back to the ad platform
Offline conversion imports in Google Ads let you report what happens after an ad results in a click or call, including sales closed by phone or in person.3 That turns Google's bidding toward leads that become paid jobs. The setup is covered in offline conversion tracking.
For the full channel-by-channel picture, see the marketing attribution hub.
How do you set up lead source attribution?
- 1
Write a short source list
Ten to fifteen sources is plenty: each paid channel, each lead marketplace, website organic, Google Business Profile, referral, repeat customer, vehicle and signs, other. Fix the spelling once.
- 2
Give each paid channel its own phone number
Ads, Local Services Ads, mailers and your website should each ring a different tracked number that forwards to the office.
- 3
Tag every link
Add utm_source, utm_medium and utm_campaign to ad, email and social links, and make sure your web form stores them with the lead.
- 4
Make source required at booking
The CSR can't save a new customer's first job without picking a source. 'Unknown' is allowed; blank is not.
- 5
Review monthly by revenue
Leads, booked jobs, completed revenue and margin by source. Fix the biggest 'unknown' bucket first.
Lead source attribution in TradesWork
In TradesWork, every lead and the job it becomes share a campaign, so cost per booked job by source is a report rather than a guess. The lead inbox takes leads from sources such as Angi, Thumbtack, Yelp, Google Local Services and your own website form, which captures UTM tags and Google or Facebook click IDs. On the phone side, booking from a call links the job to the campaign behind the dialed number.
Footnotes
-
Google Analytics Help, URL builders: Collect campaign data with custom URLs. ↩ ↩2
-
Google Ads Help, About attribution models. ↩
-
Google Ads Help, About offline conversion imports. ↩
