Which Ads Actually Bring in Jobs? Track Local Marketing With UTM Links
- What UTM Tracking Actually Tells You
- Set Up the Actions That Matter Before Comparing Ads
- Treat Calls and Bookings Carefully
- Choose a Naming System You Can Keep Using
- How to Tag Each Local Marketing Channel
- Google Business Profile
- Google Ads
- Facebook and Instagram Ads
- Yelp, HomeStars, and Other Directories
- Build and Test Your Links Before Publishing
- Read the Results in Google Analytics 4
- Example: An Electrician Compares Panel-Upgrade Campaigns
- Example: A Spa Compares Instagram and Google
- Move Budget Based on Booked Work, Not Busy Dashboards
Your Facebook ad got 200 clicks. Your Google campaign got 75. Which one deserves more money next month?
For a plumber, electrician, HVAC company, or spa, the answer depends on what happened after those clicks. Did someone book a service call? Was the caller inside your service area? Did the appointment turn into paid work?
UTM tracking helps connect website visits to the marketing that generated them. Combined with booking events, call tracking, and customer records, it can reveal which channels produce customers instead of just traffic.
You don’t need a complicated reporting system to start. You need consistent link labels, a working analytics setup, and a clear definition of a valuable inquiry.

What UTM Tracking Actually Tells You
A UTM is a label added to the end of a website address. It tells analytics software where a visitor came from and which campaign brought them there.
For example, an electrician’s Facebook ad might link to:
https://example.com/panel-upgrades?utm_source=facebook&utm_medium=paid_social&utm_campaign=panel_upgrade&utm_content=before_after
The landing page is still the panel-upgrade page. Everything after the question mark adds tracking information.
In this example, utm_source identifies Facebook, utm_medium describes the traffic as paid social, utm_campaign names the promotion, and utm_content identifies the particular ad.
Those labels help answer practical questions. Did Facebook visitors request estimates? Did the before-and-after photo produce more bookings than the video? Did a local directory send any useful inquiries at all?
But UTMs have a boundary: they label website traffic. They do not automatically tell you whether someone called, booked, or paid. Those actions need their own measurement.
Think of the tagged link as the beginning of the trail, not the whole trail.
Set Up the Actions That Matter Before Comparing Ads
Start by deciding what counts as a useful result.
For an HVAC business, a completed repair request may matter more than a brochure download. An electrician might prioritize qualified panel-upgrade estimates. A spa may care most about confirmed appointments, preferably with a deposit.
In Google Analytics 4, or GA4, website interactions are recorded as events. You can mark important events as key events so they appear in reporting.
A submitted lead form might use the recommended generate_lead event. A confirmed appointment could use a custom event such as appointment_booked. Whatever names you choose, trigger the event after success, not merely when someone opens the form.
Treat Calls and Bookings Carefully
A click on a phone number is useful to measure, but it isn’t proof of a completed call. The visitor may cancel before dialing.
To measure actual website-generated calls, you generally need a call-tracking service. Dynamic number insertion can connect a call to a visitor’s marketing source when configured correctly. Your team or CRM can then record whether the caller was qualified and whether the job booked.
Calls made directly from a Google Business Profile, directory listing, or ad without a website visit won’t carry website UTM data. Review the platform’s call reporting or use supported call-tracking options for those interactions.
External booking systems need attention, too. A spa’s booking provider may support GA4 integration or cross-domain measurement. Test the entire journey before trusting the numbers. Otherwise, you may see plenty of booking-page visits and no reliable record of completed appointments.
Choose a Naming System You Can Keep Using
Consistency matters more than clever campaign names.
Use lowercase labels with underscores instead of spaces. Keep facebook consistent rather than switching between Facebook, fb, and facebook.com. Inconsistent labels can split one channel into several rows.
For a simple small business marketing setup, use the source for the platform name, the medium for the traffic type, and the campaign for the service or promotion.
Typical combinations include facebook / paid_social, instagram / paid_social, and yelp / referral. Google search ads usually appear as google / cpc.
Use utm_content when you need to distinguish individual ads or placements within a campaign. Labels such as video, before_after, or evening_appointments are easier to interpret than ad_7_final_new.
A shared spreadsheet is enough to document your naming rules. Record the destination page, tagged URL, campaign dates, and spending alongside them.
Never put customer names, email addresses, phone numbers, or other personal information in UTM parameters. URLs can appear in analytics, browser histories, and other logs.
How to Tag Each Local Marketing Channel
The process is similar across platforms, but Google Ads deserves special handling.
Google Business Profile
Add a tagged URL to your profile’s website field. For example:
https://example.com/?utm_source=google&utm_medium=organic&utm_campaign=business_profile
This separates visits through your Business Profile link from other Google organic traffic in campaign-level reporting.
If your profile supports a separate appointment link, tag that destination too. You could use the same campaign with utm_content=appointment_link.
These labels measure visits through those links. They do not capture every interaction with your profile, such as someone reading reviews and calling without visiting your site.
Google Ads
For Google Ads, the preferred starting point is to link your Google Ads and GA4 accounts and enable auto-tagging. Auto-tagging adds a Google click identifier, commonly called a GCLID, that supports more detailed advertising measurement than manual UTMs alone.
You usually don’t need to manually tag Google Ads solely to identify its traffic in GA4.
If a CRM or another reporting tool also requires UTMs, add compatible parameters through the final URL suffix or an appropriate tracking configuration. A basic suffix might contain:
utm_source=google&utm_medium=cpc&utm_campaign=panel_upgrade
Keep auto-tagging enabled, preserve click identifiers through redirects, and avoid conflicting campaign labels. UTMs should supplement the setup where needed, not replace working Google Ads measurement.
Facebook and Instagram Ads
In Meta Ads Manager, add tracking parameters using the ad’s URL parameters field. For a Facebook panel-upgrade campaign, you might enter:
utm_source=facebook&utm_medium=paid_social&utm_campaign=panel_upgrade&utm_content=before_after
For a spa’s Instagram massage promotion:
utm_source=instagram&utm_medium=paid_social&utm_campaign=massage_promo&utm_content=relaxation_video
If one campaign runs across both Facebook and Instagram, don’t label every visit as Facebook. Use supported dynamic parameters or separate tagged ads to identify the actual platform. Check the resulting values so your naming stays consistent.
Yelp, HomeStars, and Other Directories
Where a directory allows an editable website link and preserves tracking parameters, use a tagged destination such as:
https://example.com/?utm_source=homestars&utm_medium=referral&utm_campaign=directory_profile
Use yelp, or the relevant directory name, as the source for other listings.
For paid placements, record the fee alongside the traffic and lead results. If a directory supports distinct paid links, you can label them separately, but remember that custom medium names may not fit GA4’s default channel categories neatly.
Some directories route inquiries through their own forms or phone systems. Those leads need to be reconciled with directory reports and your customer records. UTMs alone won’t capture them.
Build and Test Your Links Before Publishing
You can type tracking parameters manually, but small mistakes are frustratingly easy.
A free UTM link builder lets you enter the destination, source, medium, and campaign, then generate a tagged URL. Use the same naming rules each time.
Send visitors to a relevant page. A drain-cleaning ad should lead to drain-cleaning information, not a homepage that makes customers hunt for it.
Open the finished link on your phone. Confirm that the page loads, the parameters survive any redirects, and the form or booking process works. If the original URL already contains a question mark, additional parameters must use an ampersand rather than a second question mark.
Use GA4 Realtime or DebugView to check event collection during testing. Standard acquisition reports take longer to populate. Consent settings and browser restrictions can also limit what gets recorded.
Use UTMs on incoming marketing links, not links between pages on your own website.
Read the Results in Google Analytics 4
In GA4, open Reports, then Acquisition, then Traffic acquisition. Navigation can vary if your reports have been customized.
Start with the “Session source / medium” dimension. This shows combinations such as facebook / paid_social or google / cpc. Switch to “Session campaign,” or add it as a secondary dimension, to compare specific promotions.
Use Traffic acquisition when evaluating the sources of visits during a campaign. User acquisition answers a different question: how users were first acquired.
Look beyond session counts. Review the relevant key event, such as a submitted inquiry or confirmed booking, and the session key event rate. Select the specific event where the report supports it, so unrelated actions don’t inflate the comparison.
GA4 generally won’t contain all your Facebook spending, directory fees, or completed-job revenue automatically. Combine analytics with platform costs and CRM records.
The most useful calculations are straightforward:
Cost per qualified lead equals campaign spending divided by qualified leads.
Cost per booked job equals campaign spending divided by booked jobs.
Use actual spend rather than the campaign’s budget limit. Keep the date ranges consistent, and allow time for estimates to turn into bookings.
Example: An Electrician Compares Panel-Upgrade Campaigns
Imagine an electrician tests Facebook ads and Google Ads for the same panel-upgrade service. These figures are illustrative.
Facebook costs $600 and brings 300 website sessions. It generates 12 inquiries, of which six are qualified. Two become booked jobs.
Google Ads costs $900 and brings 150 sessions. It generates 15 inquiries, of which 12 are qualified. Six become booked jobs.
Facebook looks better if you stop at traffic: $2 per session compared with Google’s $6.
The business result tells a different story. Facebook costs $300 per booked job. Google costs $150.
That doesn’t prove Facebook is useless. Its visitors may be earlier in their decision process, and some could book later. But for immediate panel-upgrade bookings, Google is producing better results in this test.
Before increasing spending, the electrician should compare job value, cancellations, and profit after direct job costs. Then they can shift a measured amount toward Google and check whether its cost per booking holds as spending rises.
Example: A Spa Compares Instagram and Google
Now consider a spa promoting a massage package.
Its Instagram ads cost $400 and generate 20 confirmed appointments. Google search ads cost $600 and generate 15.
Instagram’s initial cost per appointment is $20. Google’s is $40. That makes Instagram the stronger performer on the first comparison.
But suppose only 12 Instagram appointments are attended, while 14 Google appointments are attended. The cost per attended appointment becomes about $33 for Instagram and $43 for Google. Instagram still leads, but the gap is smaller.
The spa should also check whether one channel attracts more repeat customers or higher-value treatments. A discounted first appointment and a regular customer have different financial value.
If the spa also receives unpaid Google traffic, keep it separate from Google Ads. Combining organic and paid Google visits would muddy the spending comparison.
Move Budget Based on Booked Work, Not Busy Dashboards
Review results on a regular schedule, but resist making big decisions after a handful of clicks. Expensive services and longer buying cycles need more time.
When a channel produces traffic but few inquiries, inspect the landing page, targeting, and booking process. When inquiries arrive but few qualify, examine location settings and ad promises. When qualified leads don’t book, review response times and follow-up.
UTM tracking won’t produce a perfect account of every customer journey. People switch devices, return later, and decline analytics cookies.
It can still give you a much better basis for spending decisions. Start with consistent tagged links, verify the actions that matter, and connect those actions to real customer outcomes. Then put more money behind marketing that fills the schedule, not merely the traffic report.