Contractor building a tagged link in spreadsheet

UTM Tracking for Leads: A Roofing Contractor's Setup Guide

October 27, 2026

UTM tracking means adding short tags to the end of a link so your analytics and CRM can tell you which ad, post or email sent each visitor. For a roofing company, the tag only pays off if it travels with the visitor from the click, through the landing page and lead form, into the CRM record. After that you can compare sources by booked inspections and signed jobs, not just by form fills. This guide shows how to tag links, name them consistently, capture the values and read the results.

Areions
Turn Lead Data Into Better Decisions
Areions manages, optimizes, and qualifies roofing leads, then delivers qualified leads to your CRM so you can focus on your core business.

TL;DR

  • A UTM tag is a set of parameters on a URL. The five standard ones are utm_source, utm_medium, utm_campaign, utm_content and utm_term.
  • Use lowercase and one naming pattern everywhere. Most reporting problems start with inconsistent tags, not with the tool.
  • Tags are only useful if the lead form or call tracking stores them in your CRM next to the homeowner’s record.
  • Judge each source by qualified leads and revenue, not inquiry volume.
  • Tagging is free. The real cost is the discipline to keep it clean.

Table of Contents

What UTM tracking is, and the five parameters

UTM stands for Urchin Tracking Module. In practice it is the habit of attaching parameters to webpage URLs so you can see where traffic came from and what those visitors did next. A tagged link looks like your normal page address followed by a question mark and a string of name-value pairs.

There are five standard parameters, which the CDC’s campaign-link guide lists as utm_medium, utm_source, utm_campaign, utm_content and utm_term. Here is what each means for a roofer:

Parameter What it answers Roofing example
utm_source Which specific site or sender google, facebook, yard_sign_qr
utm_medium Which channel cpc, social, email, print
utm_campaign Which promotion or push hail_response_tulsa
utm_content Which version of the ad or button roof_inspection_cta
utm_term Which keyword (paid search) roof_hail_damage

The CDC describes medium as the marketing channel, such as social, organic, paid search or email, and source as the specific site or sender inside that channel. Some systems, Google Analytics included, require campaign, source and medium. Content and term are optional, and the CDC notes that term is rarely needed.

For most roofing companies, three parameters carry the weight: source, medium and campaign. Add content only when you are testing two versions of the same ad.

Is UTM tracking free?

Yes. The tags are plain text added to a link, so there is nothing to buy. You can build them by hand, in a spreadsheet, or in any free URL builder. Google Analytics 4 reads them automatically once someone lands on a tagged page. What costs money is the layer after the click: a CRM, call tracking and the labor to keep the data clean. If you already use a CRM, check whether it has hidden form fields or an integration that stores UTM values. That is usually all you need to start.

Why roofers need UTMs more than most businesses

Roofing demand is lumpy. A hail event can send a week of searches in one metro and almost nothing in the next. Without tags, a spike of calls lands in your inbox as “Google, probably.” You cannot tell whether the money went to the storm-damage ad, the general brand campaign or the postcard with a QR code.

Tags also separate channels that look alike in analytics. Paid search, a Facebook post, a Google Business Profile link and an email to past customers can all produce visits that get lumped into “direct” or “referral” if they are untagged. The tag tells your reports which one it really was.

If you are earlier in the process of choosing where to spend, our piece on roofing advertising channels covers which channels deserve a test and how fast to answer the leads they produce.

  1. Decide the pattern first. Write down your allowed values for source and medium before you create a single link.
  2. Start with the destination. Use the exact landing page URL people should reach, not your home page.
  3. Add the three core parameters. Source, medium, campaign. Add content only for A/B tests.
  4. Log it. Put every link in one shared sheet with the date, the owner and where it was placed.
  5. Test it. Click the link, submit a test lead and confirm the values appear where you expect.

The documentation of one roofing field-service platform describes this exact workflow: copy a URL builder spreadsheet, enter the website URL, source, medium and campaign, then place the resulting URL on the campaign asset. Per Adobe’s UTM documentation, parameters go at the end of the URL, begin after a question mark and are separated by ampersands.

A naming convention that holds up

The rule that matters most is consistency. The CDC recommends consistent capitalization and underscores between words. Adobe likewise says to follow one naming convention. For a roofer, a workable pattern looks like this:

  • Source: the platform or sender, lowercase: google, facebook, nextdoor, mailer.
  • Medium: the channel type: cpc, social, email, print, referral.
  • Campaign: season or event plus place: spring_inspection_dallas, hail_response_tulsa.
  • Content: the variant: free_inspection_button, financing_banner.

One worked example for a storm-response ad in Kansas:

yourcompany.com/hail-damage?utm_source=google&utm_medium=cpc&utm_campaign=hail_response_wichita&utm_content=free_inspection

If one person writes “Google” and another writes “google”, many reports will count them as two sources. Pick lowercase and enforce it.

Tag anything you control that points to your site and is not another page on your site:

  • Ad destination URLs, or the tracking template in your ad platform.
  • Links in email and text-message follow-ups.
  • The website link on your social profiles and in posts.
  • QR codes on yard signs, door hangers and mailers, each pointing to a tagged URL.
  • The link in partner or supplier directories.

A phone call has no URL, so it needs a second mechanism. Dynamic number insertion swaps the phone number on the page based on where the visitor came from. One platform’s documentation explains that the swap reads UTM parameters from the website URL and automatically assigns campaigns to calls. Another of its pages says a customer who clicks a tagged URL and calls a tracking number can be mapped to a source, medium and campaign. If calls are your main lead type, see our roofing DNI setup checks.

Getting UTM data from the click into your CRM

This is the step most tutorials skip, and it is the one that makes UTMs useful for lead generation. A UTM tag sits in the address bar. When a homeowner fills in your form, that address is gone unless something copies it.

There are three common ways to capture it:

  1. Hidden form fields. Add hidden fields for source, medium and campaign. A small script fills them from the URL when the page loads, and they submit with the form into the CRM.
  2. Page URL through a webhook. One roofing quoting tool can expose the page URL through a webhook, and an automation tool can pull the UTM values out and write them to a spreadsheet.
  3. Scheduler capture. Some booking tools read UTM values from the session URL. One platform says its scheduler captures UTM values and other attribution fields and lets you export them in performance reports.

Whichever you choose, store the values in dedicated CRM fields, not in a notes box. Fields can be filtered and reported on. Notes cannot. Pulling those values out of a long URL and into a report is the same job a weekly marketing planner helps you schedule: one routine review slot where you check the source columns instead of letting them go stale.

Also add a human check. A roofing CRM guide recommends combining analytics and UTM links with a “how did you hear about us?” question, channel-specific phone numbers and a central CRM or spreadsheet. Homeowners find you through a neighbor, a truck and a search in the same week. The UTM records the last click, and the question catches the rest.

Structure your source fields

The same guide suggests splitting the source into three levels: primary source, sub-source and campaign. Its examples read like Digital > Google Ads > Spring Storm Campaign and Digital > Facebook > Community Spotlight. This maps neatly onto UTMs: medium roughly gives you the primary bucket, source the sub-source, campaign the campaign. Build the CRM picklists to match your UTM vocabulary, so values arrive without manual cleanup. Our roofing CRM automations article covers the workflows to set up once the fields exist.

CRM source hierarchy mapped to UTM fields

Reading the results: from clicks to qualified leads

A source that sends 80 form fills and no inspections is worse than one that sends 15 and five signed jobs. A roofing marketing audit guide makes the same point: measure total spend per channel, leads generated and leads converted to sales, then connect source to revenue, because volume alone does not show lead quality.

For each campaign tag, track these in your CRM:

  • Leads received.
  • Leads that were qualified, meaning a real homeowner with a real roof problem in your service area.
  • Inspections booked and estimates sent.
  • Jobs sold and revenue.
  • Cost per lead and cost per sold job.

That last pair is where UTMs pay off. For benchmark ranges and a weekly review rhythm, see our roofing marketing KPIs guide. Once jobs close weeks after the click, send that revenue back to the ad platform, which we explain in offline conversion tracking for roofers.

Watch abandoned journeys too. One scheduler’s documentation says it can retain attribution data for abandoned sessions, so you see demand from visitors who started booking and stopped. Those people deserve a follow-up. Our roofing lead scripts give you wording for each stage.

Common UTM mistakes that misattribute roofing leads

Most bad data comes from a handful of habits. A guide to UTM mistakes lists several of them. These are the ones that hurt roofers most:

  • Mixed capitalization. “Facebook” and “facebook” show up as separate rows. Standardize on lowercase.
  • Tagging internal links. If a button on your own site carries UTMs, it can overwrite the true source of the visit. Tag links that bring people in, not links between your pages.
  • Skipping the source parameter. Google Analytics expects source, medium and campaign, so leaving one out leaves gaps in your reports.
  • Mislabeling the medium. Using a paid medium label for organic social posts mixes paid and free results and makes both look wrong.
  • No testing. Always click the link and submit a test lead before the campaign goes live.
  • Unique campaign names for every placement. If every ad gets its own campaign, you cannot compare anything. Reuse campaign names across sources.

Two roofing-specific problems come on top of those. First, forms that redirect through a thank-you page or a booking widget on another domain can drop the parameters, so test the entire path. Second, a lead that calls instead of filling the form never carries the tag, which is why call tracking and the human question matter.

Our perspective: tracking is only as good as the lead behind it

We build storm-response lead systems for roofers, so we see the same pattern often. A contractor tags everything, sees a dashboard full of sources, and still cannot say which leads were worth the money. The tags were fine. The leads were not qualified, or they were never followed up inside a few hours.

Our perspective: tracking is only as good as the lead behind it — overview diagram

Our view is that UTMs should answer one question: which sources produce verified homeowners with storm damage who agree to an inspection? That is why we pair campaign tracking with human-verified qualification and route every lead into the contractor’s CRM with its source attached. Tracking tells you where leads come from. Qualification tells you whether to want more of them.

We also think the tagging scheme should be boring. Three parameters, lowercase, one shared sheet, reviewed weekly. Elaborate schemes break the first time a busy owner or a new office hire builds a link from memory. Take the time to set the system up once, and let storms test it, not your staff.

— Angel

How Areions handles tracking for you

If you would rather not build and maintain this yourself, our managed system includes Google Ads campaigns, landing pages, call tracking, CRM and pipeline setup, automated lead routing and human-verified homeowner qualification. Plans are published as Foundation at $97 per month, Professional at $1,500 per month and Enterprise at $5,000 per month, with month-to-month service and no long-term contract. You can compare them on the Areions site, or book a strategy call to talk through your territory and tracking setup. For how appointment handoff works once a lead is verified, read roofing appointment setting.

A simple setup checklist

  1. Write your allowed source, medium and campaign values in a shared sheet.
  2. Create CRM fields for source, medium and campaign.
  3. Add hidden fields to every lead form and test them.
  4. Tag ad URLs, emails, social profiles and QR codes.
  5. Set up call tracking so phone leads get a source too.
  6. Add a “how did you hear about us?” question to intake.
  7. Review leads, qualified leads, booked inspections and revenue by source every week, and cut or fund sources accordingly.

If paid search is a main channel, tidy up what triggers your ads too. Our guide to roofing negative keywords keeps tracked clicks from being wasted on job seekers and DIYers, and storm-driven ROI explains why timing changes what a tracked lead is worth.

FAQ

How do you track UTM?

Add UTM parameters to the links you share, then view the results in Google Analytics 4 under traffic acquisition reports. For lead tracking, also capture the values in hidden form fields so they land in your CRM beside each homeowner’s record. Click the link and submit a test lead to confirm the values arrive.

What are the 5 UTMs?

They are utm_source, utm_medium, utm_campaign, utm_content and utm_term. Source, medium and campaign are the core three, and content and term are optional. Content separates ad versions, and term records the paid keyword.

What does UTM stand for?

UTM stands for Urchin Tracking Module, named after the analytics software that Google later built into Google Analytics. Today it simply means the parameters that label a link’s traffic source.

Can UTMs track phone calls?

Not by themselves, because a call has no URL. Call tracking with dynamic number insertion reads the UTM values on the page and shows a matching tracking number, so the call can be credited to the same campaign. Combine it with a source question on every call.

Sources

Back to Blog