Book a Call

Tracking guide

How to know which marketing actually books jobs at your shop

You don't need a marketing department to know what's working. You need one question, a few tagged links and ten minutes a week with a simple sheet.

Updated 2026-10-08 · Elevate Digital

Most shop owners can tell you what they spend on marketing. Very few can tell you which of those dollars turned into a car in the bay. This guide sets up a tracking system a one-person front desk can run: a question for every customer, tagged links, a clear rule for phone numbers and a sheet you update once a week.

The goal is one number per channel that you can act on: what it costs you to book a job from that source, and what those jobs bring in. If you want the exact definitions we use for those numbers, they're on our results page. This page is about collecting the data that feeds them.

Step one: ask every customer the same question

The cheapest tracking tool you'll ever have is a person asking, "How did you hear about us?" It works for phone calls, walk-ins, DMs and texts, which is where most tint and detailing jobs start. Website analytics can't see any of those.

When and how to ask

Follow up on vague answers

Customers compress everything into "Google" or "Instagram." One follow-up question fixes most of it:

They sayAskWhy it matters
"Google""Did you find us on the map, or was it an ad at the top?"Free map traffic and paid search are different channels with different costs
"Instagram" or "Facebook""Was it a video that came up while you were scrolling, or did you look up our page?"A video that "came up" is often a paid ad. Looking you up is organic.
"A friend""Nice, who was it?"You can thank the referrer, and you'll see who sends you work
"I drove by""Did you see us online before you came in?"Some drive-by customers looked you up first, which shows your profile doing work you'd otherwise miss

Use fixed categories

Free-text answers turn into a mess nobody can total. Pick 8 to 10 categories and use only those. A typical list for a tint, PPF or detailing shop:

"Don't know" is an honest answer. Keep it. If it climbs above roughly one in five leads, check first whether the question is being asked at the start of the call.

Where to log it

Log it in the same place you already write down the job, so it can't get skipped. If your booking software has a "referral source" or custom field, use that (more on this below). If not, keep a shared spreadsheet open on the front-desk computer or phone. A paper sheet by the phone works too, as long as someone types it in weekly.

Step two: tag the links you control with UTMs

A UTM is a short tag added to the end of a link. When someone clicks the link, your website analytics records where they came from. You need analytics installed on your site to read these. Google Analytics 4 is free and is the usual choice.

What each part means

ParameterWhat it answersExample value
utm_sourceWhich site or platform sent the click?google, instagram, facebook
utm_mediumWhat kind of traffic is it?organic, social, paid_social, print
utm_campaignWhich specific link or promotion?gbp_listing, bio_link, spring_ceramic
utm_content (optional)Which version of the ad or link?suv_video, before_after

Here's what a tagged Google Business Profile website link looks like:

https://yourshop.com/?utm_source=google&utm_medium=organic&utm_campaign=gbp_listing

Everything after the ? is the tag. The page the customer sees is the same. Google's free Campaign URL Builder will assemble the link for you if you'd rather not type it.

Which links to tag

Where the link livesSuggested tags
Google Business Profile website buttonutm_source=google&utm_medium=organic&utm_campaign=gbp_listing
Google Business Profile booking or quote link, if you use oneSame as above with utm_campaign=gbp_booking
Instagram bio linkutm_source=instagram&utm_medium=social&utm_campaign=bio_link
Facebook page website linkutm_source=facebook&utm_medium=social&utm_campaign=page_link
Meta adsutm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}, entered in the ad's URL parameters field so Meta fills in the names
QR code on a flyer, invoice or window stickerutm_source=flyer&utm_medium=print&utm_campaign=fall_flyer

Google Ads handles this differently. It can tag clicks automatically when it's linked to Google Analytics, so you usually don't add UTMs by hand there.

Rules that keep UTM data clean

Know what UTMs can't see

UTMs only track visits to your website. A customer who taps "Call" on your Google profile, or messages you straight from an Instagram reel, never touches a tagged link. That's why the source question in step one stays your primary tool, and UTMs fill in the website side.

Step three: decide how you'll handle phone numbers

Call tracking services give you separate phone numbers that forward to your real line. Each number is tied to one source, so the service can count calls by channel. Most offer two kinds:

The tradeoffs

What you gain

Accurate call counts by source without relying on the customer's memory. Many services also record calls and log missed ones, which shows you how many leads go unanswered during installs.

What it costs

A monthly fee, usually priced by numbers and minutes. Another vendor to manage. Customers who save a tracking number end up calling it for years, so canceling the service later can strand old customers.

Recording rules

Call recording laws vary by state and depend on where both callers are. If you record, announce it at the start of the call. This is general information, not legal advice, so check your state's rules before turning recording on.

Keep your main number consistent on Google

Our recommendation for most shops: keep your real main number as the primary number on your Google Business Profile, and use that same number on your website and in directories. A number that matches everywhere helps customers and keeps your listings consistent. If you decide to put a tracking number on the profile anyway, use a local number that rings your shop directly, and put your real number in the profile's "Additional phone" field so the two stay connected. Never let a profile number route callers anywhere other than your shop.

You often don't need a tracking number there anyway. Your Business Profile's performance report already shows how many people tapped the call button from your profile. That count isn't the same as answered calls, but it's a free starting point. The rest of the profile setup is covered in our Google Business Profile guide.

The cleanest place for tracking numbers is where your real number would never appear anyway: a specific ad landing page, a flyer or a direct mailer.

Step four: use your booking software's source field

If you book jobs in shop-management or scheduling software, check its settings for a "referral source," "lead source" or custom field on the customer or job record. Then:

  1. Load the same categories from your source list as dropdown options. No free text.
  2. Make it required if the software allows, so a job can't be saved without it.
  3. Fill it on the first contact, not at checkout. By pickup, nobody remembers.
  4. Pull a monthly report of jobs and revenue by source, if the software offers one. If it doesn't, export the jobs list to your spreadsheet.

If your software has no source field, put a short fixed code at the start of the notes field, like "SRC: META AD." It's ugly, but you can search and count it.

Step five: the weekly 10-minute tracking sheet

Everything above feeds one spreadsheet. Each lead gets one row. Once a week, update the "booked" and "ticket" columns for anyone who scheduled.

Columns

DateCustomerVehicleService asked aboutSourceSource detailBooked?Job dateTicket $
10/1Mike R.2024 F-150Ceramic tint, fullMeta adTruck videoY10/6$450
10/1Dana K.2022 Model YFull front PPFGoogle MapsQuoted
10/2Chris L.2019 CivicInterior detailReferralSent by Tony B.Y10/3$180
10/3Sam P.2023 TahoeWindshield tintRepeat customerFirst came via Meta ad, 2025Y10/9$320
10/4Alex M.2021 CamryTint price checkDon't knowN

The names and ticket amounts above are made-up examples to show the format. They aren't prices or typical tickets. Use "Quoted" for leads still deciding. Protection and coating jobs often take weeks to close, so keep those rows open and check them each week.

The 10-minute weekly routine

  1. Add any leads that didn't get logged from your call log, DMs and form inbox. (3 minutes)
  2. Update "Booked?" and "Ticket $" for every row from the last few weeks. (4 minutes)
  3. Refresh the summary tab: a pivot table or COUNTIFS and SUMIFS by source. Enter what you spent on each paid channel that week. (3 minutes)

The summary: leads, booked and revenue by source

Your summary tab should show, for each source: leads (count of rows), booked (count of "Y"), booking rate (booked divided by leads), revenue (sum of tickets for booked rows) and spend. Count each lead under the date of first contact, even if it books a month later. Otherwise a slow-closing PPF job makes last month's marketing look worse and this month's look better.

The math: cost per booked job and revenue per ad dollar

Two divisions tell you most of what you need. Both are defined on the results page. Here's how to compute them from your sheet.

Example numbers only

The figures below are made up to show the math. They aren't benchmarks, typical results or prices for any shop.

Source (example month)SpendLeadsBookedRevenueCost per booked jobRevenue per ad dollar
Meta ad$600306$2,400$600 ÷ 6 = $100$2,400 ÷ $600 = $4.00
Google ad$500122$900$500 ÷ 2 = $250$900 ÷ $500 = $1.80
Google Maps$02510$3,500No ad spendNot applicable

In this example, the Meta ads cost $100 to book each job and returned $4 in booked revenue per ad dollar. The Google ads cost more than twice as much per booked job. Before you compare them, also compare against your margin. A source that returns $1.80 per ad dollar may still lose money once you pay for film, labor and the agency or software fees. Unpaid channels like the map still cost you time, so judge them by booked jobs and revenue, and keep doing what feeds them.

What to do with the answers

Give a channel enough time before you judge it

When to cut or change a channel

Common mistakes

Counting likes and views

Keep likes, followers and reach out of the sheet. Our Meta ads guide explains why booked jobs are the measure.

Double-counting repeat customers

A returning customer who says "Instagram" probably means they follow you now. Log them as "Repeat customer" and note the original source once in the detail column. Otherwise your ads get credit for every return visit.

The referral who saw an ad

A friend recommends you, then the customer sees your ad and calls. Both played a part. Log the source the customer names first, and add the other in "Source detail." Over time, you'll see how often ads support referrals.

Trusting the platform's numbers alone

Ad platforms count conversions their own way, including people who saw an ad and later acted. Their reports are useful, but your sheet of booked jobs is the record you make decisions on.

One lead counted twice

The same person DMs on Monday and calls on Wednesday. That's one lead. Search the sheet by phone number before you add a row.

Skipping weeks

A sheet updated once a quarter is a guess. Ten minutes every week keeps it accurate, and you'll catch a dead channel before it eats a month of budget.

Tracking questions from shop owners

Do I need call tracking to get started?

No. The source question plus your Google profile's call-button count covers most small shops. Add tracking numbers when you're spending enough on a channel that guessing would cost you real money.

What if customers give the wrong answer?

Some will. That's why you combine the question with tagged links and form data. Use the follow-up questions above. A few wrong answers won't hide a channel that books dozens of jobs, or one that books none.

Will an agency do this for me?

An agency can set up the links, forms and reports, but only your shop knows which leads booked and for how much. When we run ads for a shop, we ask the owner to share that weekly, because it's what tells us where to put the budget.

Can my Meta ad links tell Instagram and Facebook apart?

Yes. In the ad's URL parameters, use utm_source={{site_source_name}} in place of a fixed source. Meta fills in a short code for where the ad ran, such as fb for Facebook or ig for Instagram, so your analytics splits the two without separate ads.

Want help setting up the links, form fields and sheet for your shop? Book a call and we'll walk through what you're running now and what's worth tracking.

See where your shop stands before you spend a dollar.

Run the free audit on your website, or book a 30-minute call. You'll get honest feedback, a straight answer on pricing, and no pressure.

Call Free Audit