Skip to content
carpetcleaningSEO

Marketing

Attribution for carpet cleaners: which channel booked the job?

By CarpetCleaningSEO · 9 min read · October 15, 2026

To see which channel booked a carpet cleaning job, give every lead a source the moment it arrives, then carry that source to the job. Use a separate tracking number per channel, UTM tags on web links, and the Lead Source field in Housecall Pro or Jobber. Once a month, match leads to booked jobs and count jobs by source.

What does attribution mean for a carpet cleaning company?

Attribution means connecting each booked job to the marketing channel that produced it. For a carpet cleaner, the usual channels are your Google Business Profile (GBP, your listing on Google Maps), Local Services Ads (LSA, Google's ads where you pay per lead), Google Search ads, Meta ads, your website, referrals, repeat customers and the truck.

The number you want is booked jobs by source, not leads by source. One channel can send plenty of leads that rarely book. Another can send a few that almost all book. Only the job count tells you which one to keep paying for.

Our carpet cleaning marketing playbook covers what each channel does and how to work out cost per booked job. This post covers the layer underneath: how a source gets attached to a lead and stays attached until the job is on the schedule. Four pieces do the work:

  1. A tracking number for each channel, so every call arrives already labeled.
  2. UTM tags and form source fields, so every web lead carries the link it came from.
  3. A lead source on every customer and job in your CRM (customer relationship management software, such as Housecall Pro or Jobber).
  4. A monthly match of leads to booked jobs, rolled up into one report.

Pick one rule for giving credit and use it every month. A simple rule is to credit the last thing that got the customer to call, fill in a form or book online. No rule is perfect, but one rule applied the same way shows you which direction each channel is moving.

Give each channel its own tracking number

A phone call leaves no trail on its own. If the same number is on your website, your ads, your mailers and your truck, every call looks the same in the phone log. Asking the caller helps, but people forget, and "I found you on Google" could mean four different channels.

A tracking number is an extra phone number assigned to one channel. When it rings, you know which channel produced the call before you answer. Housecall Pro sells call tracking as an add-on, and its help center says each number "will be tied to your lead source."

One number per channel. Keep this table where your office can see it.
ChannelWhere its number goesLead source it maps to
Google Search adsIn the ads and on the page the ads send people toGoogle Ads
Meta adsIn the ad and on the promo landing pageMeta
Website from organic searchSite header, contact page and service pagesWebsite
Truck wrap and yard signsOn the truck and the signsTruck or sign
Recall postcards and mailersOn the cardRepeat customer or mailer
Local Services AdsIn Housecall Pro, LSA leads can arrive in the Job Inbox once the integration is connectedLSA

Start with the channels you spend money on. A one-truck company running only LSA and recall postcards may need one or two numbers. Add numbers as you add channels; our paid ads guide covers when adding a channel makes sense.

Tag web leads with UTM tags and form source fields

Web leads need their own labels. A UTM tag is a short piece of text added to the end of a link that names where the click came from. Google Analytics 4 (GA4), Google's website analytics tool, receives these tags when someone clicks the link.

Google's URL builder help page lists the main tags: utm_source for the referrer, utm_medium for the marketing medium, and utm_campaign for the promo. Put them on every link you control that points to your own site.

Example names. Choose your own, write them down and use them the same way every time.
Linkutm_sourceutm_mediumutm_campaign
Website button on your Google Business Profilegoogleorganicgbp
Meta ad for a spring pet odor promofacebookpaid-socialspring-pet-odor
January recall textrecallsmsjanuary-recall
Monthly email to past customersnewsletteremailoctober-email

A tag only helps if the lead keeps it. Your website forms should carry hidden fields that store the source and send it with the request. Our forms use a 90-day first-party cookie, which is a small file your own site saves in the visitor's browser. It holds ad click IDs, the five UTM fields, the first referrer and the first landing page, and those values go with every lead. That is part of how we build websites with forms that record where each lead came from.

Online booking links need their own tagging

Housecall Pro's help center describes tracking attributes you add to a booking link, and "the job or estimate resulting from that link will be tagged." Jobber's help center says UTM tags can "automatically fill out the lead source field on clients." What Housecall Pro reads, and what Google Analytics can see, is covered in our guide to tracking Housecall Pro bookings in Google Analytics.

How do you set lead source in Housecall Pro or Jobber?

Your CRM is where the job and the money live, so the source has to end up there. Housecall Pro's help center says lead sources "can be assigned to customers, jobs, and estimates." It adds that "in some scenarios, we will automatically add the lead source if we know where they came from." Every other job needs a person to set it.

Housecall Pro includes system lead sources such as My Website (Online Booking), Google Reserve, Yelp and Thumbtack, and you can create your own under Settings > Lead Sources. Jobber's Lead Source dropdown includes Referral, Google, Facebook, Instagram, Flyer, Vehicle wrap, Event and Other. CarpetCleaningSEO is an affiliate partner of Housecall Pro and NiceJob and may earn a commission when you sign up through our links.

A lead source list built for carpet cleaning

  • Google Business Profile
  • Local Services Ads
  • Google Search ads
  • Meta ads
  • Website (organic search)
  • Repeat customer
  • Referral (customer, realtor or property manager)
  • Truck or yard sign
  • Lead-gen platform (Thumbtack, Angi)

Rules for whoever answers the phone

  1. Set the lead source when the customer record is created, not after the job.
  2. If the call came in on a tracking number, use that number's source.
  3. If it didn't, ask "How did you hear about us?" If the answer is Google, ask once more: "Did you click an ad, or find our listing on the map?"
  4. Never leave the field blank. Create an Unknown source and watch how often it gets used.
  5. Every Monday, check last week's new jobs and fix any blanks while the calls are fresh.

Match each lead to the job it booked

Tracking numbers, forms and the CRM each hold part of the story. The call log knows where a call came from but not whether it booked. The CRM knows the job and the ticket, but it only knows the source if someone entered it. A monthly match closes the gap.

  1. Export last month's leads: calls by tracking number, form fills with their source fields, and online bookings with their tags.
  2. Export last month's new jobs from your CRM with each customer's phone number, email and lead source.
  3. Match on phone number first, then email. Put the lead's source next to the job.
  4. Settle disagreements. If the CRM says Google but the call came in on the Meta number, trust the tracking number and fix the CRM entry.
  5. Flag leads that never booked. Those give you a booking rate for each channel.

Local Services Ads need one extra check. Once you connect Housecall Pro's LSA integration, its help center says new LSA leads are created automatically in its Job Inbox under the Google channel. It also says LSA and Reserve with Google bookings "are not differentiated" there, so check your LSA account before you give LSA the credit.

Decide how repeat customers count. A customer you cleaned for last spring who rebooks from your January recall text is a repeat customer, even if she also follows your Facebook page. Keeping repeat jobs in their own row stops your recall program from making an ad look better than it is.

Build a monthly booked-jobs-by-source report

Once a month, roll everything into one table. Keep only the columns you will act on.

Illustrative numbers to show the layout. Your own sources and numbers will differ.
SourceLeadsBooked jobsBooking rateJob revenueSpendCost per booked job
Google Business Profile402870%$8,400——
Local Services Ads352160%$6,300$700$33
Meta ads30620%$1,500$450$75
Repeat customer181689%$4,800$60$4
Referral8788%$2,100——

In Housecall Pro, the job lead source report under Reporting gives you jobs by source. The Marketing Dashboard ROI Table has one row per lead source and counts "Jobs created during the selected date range that are marked complete." You enter ad spend by hand or by bulk import, and ROI shows "--" until you do.

In Jobber, the Clients report shows each client's lead source and UTM fields next to "quotes sent, jobs booked, and conversion rates." You find it under Insights, then Reports.

How to read the report

  • Compare each source with its own last few months, not with another company's numbers.
  • Watch booking rate. A channel with lots of leads and a low booking rate needs a better offer or tighter targeting before it gets more budget.
  • Watch the Unknown row. If it grows, the office has stopped asking.
  • Make one change per month so you can tell what moved next month's numbers.

Our monthly client report covers the same ground: calls, leads and booked jobs by source, plus what we plan to change next month.

FAQ

Here are the questions carpet cleaners ask about this.

What if a customer says they found us on Google?
Google can mean your map listing, a Local Services Ad, a search ad or your website in the regular results. If the call came in on a tracking number, the number answers the question. If not, ask one follow-up, such as "Did you click an ad, or find our listing on the map?" Log the best answer and move on.
Should repeat customers be their own lead source?
Yes. A past customer who rebooks from a recall text or postcard came from your customer list, not from whatever ad they saw last. Giving repeat jobs their own source means your ads are judged only on the new customers they bring in.
Do I need call tracking if I only run Local Services Ads?
If you use Housecall Pro and connect its LSA integration, its help center says new LSA leads are created automatically in the Job Inbox. Tracking numbers matter most once you add a second channel. Give that channel its own number so its calls don't blend in with everything else.
Can Jobber fill in the lead source automatically?
For leads that come through Jobber's request form or online booking links, it can. Jobber's help center says UTM tags can automatically fill out the lead source field on clients, using the links in your request settings. Phone leads still need someone to pick the source, ideally guided by the tracking number the customer called.
How often should I check which channel booked my jobs?
Fix blank or wrong lead sources weekly, while the calls are fresh in everyone's mind. Build the booked-jobs-by-source report once a month. Compare each channel with its own previous months, and change one thing at a time so you can see what it did.

Done reading?

Here's how we'd run this for you.

We set up call tracking, form tracking and CRM matching for carpet cleaners on Housecall Pro or Jobber, then report calls, leads and booked jobs by source every month.