GBP

Google Business Profile UTM Tracking: The Complete GA4 Setup Guide for Contractors

12 min read

If you are running a Google Business Profile for your HVAC, plumbing, or roofing company and relying on GA4 to understand where your website traffic comes from, there is a good chance your GBP is underreported. Without proper UTM parameters on your GBP links, the traffic that comes from people clicking your website button on Google Maps shows up as direct traffic in GA4.

That means every time you look at your analytics and see a spike in direct traffic, some of that is actually customers coming directly from your Google Business Profile. You have no idea how much. You cannot measure what you cannot label.

This guide walks through exactly how to set up Google Business Profile UTM tracking in GA4 so you can see how much traffic and how many conversions your GBP is actually driving.

Why GBP Traffic Shows Up as Direct in GA4

When someone clicks your website button on your Google Business Profile listing, Google does not automatically pass UTM parameters to your site. The browser handles the handoff from Google Maps or the local search results panel as direct traffic depending on several technical factors.

Mobile browsers and the Google Maps app handle link attribution differently. In many cases the referrer gets stripped, and GA4 sees the session as direct with no source or medium information. In other cases it shows as a referral from google.com or maps.google.com, but without campaign information you still cannot tell which actions on your GBP drove the visit.

UTM parameters solve this by appending tracking information directly to the URL. When someone clicks a UTM-tagged link, GA4 reads the parameters and correctly attributes the session to the source, medium, and campaign you defined regardless of what the browser does with the referrer information.

The result is that you go from seeing a blob of direct traffic to seeing a clearly labeled source that says: this session came from your Google Business Profile. That data is worth a lot when you are making decisions about where to focus your marketing time and budget.

UTM Codes: What They Are and Why They Matter for Local Businesses

UTM stands for Urchin Tracking Module, a naming convention inherited from a web analytics platform Google acquired in 2005. Today the urchin tracking module naming is mostly historical, but the utm codes themselves are the foundation of campaign tracking across all digital marketing platforms.

For local businesses like HVAC companies and plumbing contractors, utm codes are the difference between knowing your Google Business Profile is generating leads and guessing that it might be. Without utm codes on your GBP links, Google Analytics groups that traffic into the direct or organic channels with no way to separate it.

Implementing utm tracking on your GBP is one of the highest-leverage 30-minute tasks in local SEO. The utm codes are permanent once added, and the data they generate accumulates over time into a clear picture of how your Google Business Profile contributes to your business.

Local SEO professionals who work with multi location businesses use utm codes to compare GBP performance across locations. If one location generates three times more website visits from GBP than another location with similar rankings, the utm codes surface that disparity so it can be investigated.

The utm_source google utm_medium organic format is the standard for GBP tracking. Using this exact structure ensures that Google Analytics default channel groupings classify the traffic correctly. The utm_source google utm_medium organic combination tells GA4 that the traffic originated from Google and came through organic means, distinguishing it from paid search campaigns.

The Four Core UTM Parameters You Need

UTM parameters are tags you add to the end of a URL. When GA4 sees a URL with UTM parameters, it uses those values to attribute the session. There are five standard UTM parameters, but four are most relevant for GBP tracking.

utm_source

This identifies where the traffic originates. For Google Business Profile, use “google” as your utm_source. This tells GA4 that the session came from Google, which keeps it consistent with how other Google-originated traffic is labeled in your reports.

Some practitioners use “google_business_profile” or “gbp” as the source to make GBP traffic immediately identifiable without drilling into campaign data. Either approach works as long as you use it consistently across all your GBP links.

utm_medium

This identifies the marketing channel. For Google Business Profile, use “organic” as your utm_medium since GBP listings are organic search features. Using “organic” keeps your GBP traffic grouped with other organic channels in GA4 channel groupings.

Some people use “local” or “gbp” as the medium to make it more granular. The tradeoff is that using a non-standard medium value means GA4 will not automatically group it into the Organic Search default channel. Use “organic” if you want standard channel grouping, or use “local” if you want to segment it separately and build a custom channel definition in GA4.

utm_campaign

This identifies the specific campaign or placement. For GBP tracking, use descriptive values like “google_business_profile” or “gbp_listing” as your utm_campaign. This lets you distinguish GBP traffic from other organic sources at the campaign level in GA4.

You can also use the campaign parameter to distinguish between different placements. For example, use utm_campaign=gbp_website_button for the website link and utm_campaign=gbp_appointment for the booking link. This tells you exactly which part of your GBP listing drives the most website visits.

utm_content

This optional parameter identifies specific elements within a placement. For GBP tracking, use it to differentiate between your main website button, appointment links, and individual GBP posts. Values like “website_button” or “booking_link” give you additional granularity in your reports.

Not every contractor needs utm_content level tracking. If you just want to know how much traffic comes from your GBP overall, the source, medium, and campaign parameters are sufficient. Add utm_content when you want to see which specific part of your GBP listing drives the most website visits.

How to Build UTM-Tagged URLs with Google’s Campaign URL Builder

Google provides a free tool called the Campaign URL Builder at ga-dev-tools.google/campaign-url-builder/. This tool generates properly formatted UTM URLs without requiring any technical knowledge.

Step 1: Enter Your Website URL

In the Campaign URL Builder, enter the full URL of the page you want to send GBP visitors to. For most contractors, this is your homepage. For specific campaigns, it might be a service page or a contact page.

Use the exact URL including the https:// prefix. If your homepage is https://www.yourdomain.com, enter that exactly. Do not use a shortened or redirected version of the URL as this can interfere with the UTM parameters in some cases.

Step 2: Fill in the UTM Parameters

Enter your utm_source (google), utm_medium (organic), utm_campaign (google_business_profile), and optionally utm_content (website_button). Use lowercase for all values. Use underscores instead of spaces. Consistent naming conventions are critical for clean reporting in GA4.

Step 3: Copy the Generated URL

The tool generates the complete URL with all UTM parameters appended. It looks something like: https://www.yourdomain.com/?utm_source=google&utm_medium=organic&utm_campaign=google_business_profile

Copy this URL. This is the URL you will add to your Google Business Profile. The URL includes all the tracking information GA4 needs to correctly attribute the session.

Where to Add UTM-Tagged URLs in Your Google Business Profile

Your Google Business Profile has several places where you can include URLs. Each is an opportunity to add a UTM-tagged link and improve your tracking.

The Website Button

The website button is the primary link on your GBP listing. This is what most people click when they want to visit your site from Google Maps or the local search results panel. Log in to your Google Business Profile at business.google.com, go to Edit Profile, and update the website URL with your UTM-tagged version.

After saving, open your GBP listing on a mobile device and click the website button. The URL that loads in your browser should include the UTM parameters you added. If they do not appear, check that the URL was saved correctly in your GBP settings and confirm your UTM parameters are passing through correctly.

The Appointment or Booking Link

If you have an appointment booking link on your GBP, this should also carry a UTM-tagged URL. Create a separate UTM URL for this link with a different utm_content value (for example, “booking_link”) so you can track appointment requests that originate from your GBP specifically.

This is particularly valuable for HVAC and plumbing companies that use online booking tools. Knowing that a booking came from a customer who found you on Google Maps and clicked the appointment button is direct evidence that your GBP is generating revenue.

Posts and Updates

When you create GBP posts (updates, offers, or events), any call-to-action button in the post can include a URL. Use a UTM-tagged URL with utm_campaign=gbp_post and a utm_content value that identifies the specific post. This lets you measure whether your GBP posts are actually driving website traffic.

Most contractors never check whether their GBP posts generate any clicks. UTM tracking on post links turns them into a measurable marketing activity. Each time you create google posts, include a UTM-tagged URL in the call-to-action button. The traffic they generate is invisible in GA4 unless you add utm codes to the links inside your google posts.

When you run seasonal promotions through google posts, track them with utm codes using utm_campaign values that match the promotion. This lets you compare which promotions drive the most traffic from your GBP and which ones nobody clicks. Over time that data tells you what your local audience responds to.

Verifying UTM Tracking Is Working in GA4

After adding UTM-tagged URLs to your GBP, verify that the tracking is working correctly before relying on the data.

Test the Link Manually

On a mobile device (since most GBP traffic comes from mobile), search for your business name on Google or open your listing in Google Maps. Click the website button. The URL that loads in your browser should include the UTM parameters you added. If they do not appear, check that the URL was saved correctly in your GBP settings.

If your UTM parameters are missing after clicking the link, the most common cause is a redirect that strips parameters. Some website platforms or caching plugins can interfere with UTM parameters passing through correctly. Common causes include URL shorteners that strip parameters, redirects that drop parameters, or errors in how the URL was entered in GBP.

Check Real-Time Reports in GA4

After testing the link manually, open GA4 and go to Reports, then Realtime. You should see your test session appear with the session source matching your utm_source value. If the real-time report shows the session as direct traffic instead of the source you set, the UTM parameters are not passing through to GA4 correctly.

Check DebugView in GA4

For more detailed verification, use GA4’s DebugView. In GA4, go to Admin, then DebugView. Enable debug mode on your device by adding the _ga_debug=1 parameter to your test URL. DebugView shows you every event in real time with full parameter details, letting you confirm that the session_source and session_medium values match what you set in your UTM tags.

Building a GBP Traffic Report in GA4

Once your UTM tracking is in place and verified, set up a dedicated report or exploration in GA4 to monitor your GBP traffic over time.

Using the Traffic Acquisition Report

In GA4, go to Reports, then Acquisition, then Traffic Acquisition. This report breaks down sessions by session source and medium. Look for rows showing your utm_source and your utm_campaign name. This is your GBP traffic.

For more detailed analysis, create a Free Form exploration in GA4 under Explore. Add the dimensions: session source, session medium, session campaign, and session default channel grouping. Add metrics: sessions, engaged sessions, conversions, and total revenue or conversion events relevant to your business.

Add a filter for session_campaign exactly matching “google_business_profile”. This exploration gives you a dedicated view of your GBP traffic with all the metrics you care about in one place.

Save this exploration and check it monthly. Over time you will build a dataset that shows you the true contribution of your Google Business Profile to your website traffic, lead generation, and revenue.

Setting Up a Comparison in GA4 Reports

In any GA4 standard report, you can add a comparison to segment your data. Click the Add Comparison button and set the condition to session_campaign exactly matches google_business_profile. This lets you see GBP traffic alongside your overall traffic in any report without building a custom exploration.

Use this comparison in the Engagement report to see what pages GBP visitors land on, how engaged they are compared to other traffic sources, and which service pages they visit most. This type of data is useful for service page optimization. If your HVAC tune-up service link gets ten times more GBP clicks than your indoor air quality service link, that tells you where customer demand is concentrated in your local market.

GBP Insights vs. GA4 UTM Data

Your Google Business Profile has its own analytics section called GBP insights. GBP insights shows you how many times your listing appeared in search, how many people clicked your website button, how many called directly from the listing, and how many requested directions.

GBP insights and GA4 UTM data measure different things. GBP insights counts the clicks on your website button directly in the Google interface. GA4 UTM data counts the sessions that actually reached your website with the UTM parameters intact.

These numbers are almost never equal. GBP insights typically shows more website button clicks than GA4 shows UTM-tagged sessions from GBP. The gap comes from users who click the link but close the browser before the page loads, bot traffic, and attribution differences between how Google counts clicks versus how GA4 counts sessions.

Use both data sources together. GBP insights tells you how your listing performs in the Google interface. GA4 UTM data tells you how many of those clicks actually converted into real website sessions and what those visitors did on your site.

Connecting GBP UTM Data to Google Search Console

Google Search Console shows you the search queries people use to find your GBP listing, the impressions your listing receives, and how those metrics change over time. When you combine this data with your GA4 UTM tracking, you get a complete view of the GBP funnel.

In Google Search Console, look at your local search performance using the Search Type filter set to Web and filtering for queries that include your city name and service type. These are the queries driving your GBP impressions. The click-through rate from those impressions to your GBP listing determines how much UTM-tagged traffic ultimately reaches your website.

If your Google Search Console shows strong impressions for your target service keywords but your GA4 UTM data shows low GBP traffic, the issue is likely click-through rate on your listing rather than ranking. Your listing might rank well but not be compelling enough to drive clicks. That is a different optimization problem than if both impressions and GBP traffic are low.

Tracking GBP Conversions with Google Tag Manager

Once you are tracking GBP sessions in GA4, the next step is connecting those sessions to conversion events. For most contractors, conversions are phone calls, form submissions, and online bookings.

In Google Tag Manager, create a trigger based on the utm_source and utm_campaign parameters matching your GBP values. Then create custom events that track form submissions, phone number clicks, or booking completions that occur during GBP-sourced sessions. These events flow into GA4 as conversions attributed to your GBP traffic.

This setup is particularly useful for local businesses that want to see a full conversion funnel from GBP click to booked job. When you can report that your GBP generated 47 website sessions last month, 12 of which submitted a contact form, and 8 of which became booked jobs, you have a compelling case for continuing to invest in GBP optimization.

Common UTM Mistakes Contractors Make

Most UTM tracking problems come down to a handful of consistent mistakes. Avoiding them will keep your data clean and your reporting accurate.

Using Spaces Instead of Underscores

Spaces in UTM values get encoded as %20 in URLs, which can make your campaign names look messy in GA4 reports. Use underscores instead. Write google_business_profile not “google business profile.”

UTM parameter values are case-sensitive in GA4. If you use “Google” in one link and “google” in another, they will appear as two separate sources in your reports. Always use lowercase for all UTM values to prevent fragmented data.

Forgetting to Update the URL After Business Profile Edits

If you update your website URL as part of a website migration or rebranding, remember to update the UTM-tagged URLs in your GBP as well. A link pointing to an old URL or a redirect chain will either break the tracking or introduce a redirect that strips your UTM parameters.

Not Tagging All GBP Links

Tagging only your main website button and leaving other GBP links untagged gives you an incomplete picture. Tag every URL you add to your GBP with appropriate utm codes. Each additional tagged URL is worth it for the visibility you get in GA4.

Monitoring Organic Traffic from GBP Over Time

Once your utm codes are in place, set a monthly calendar reminder to check your GBP UTM data in Google Analytics. Look at three metrics: session volume, engagement rate, and conversions.

Organic traffic from GBP should grow over time if your local rankings are improving. If your session volume from GBP is flat or declining, investigate whether your Map Pack rankings have dropped using a local rank tracking tool.

Compare your organic traffic from GBP to traffic from paid search campaigns. This comparison shows you the relative efficiency of each channel. For many home service contractors, GBP generates a significant portion of total leads at zero cost per click. That data, made visible through utm codes, is a powerful argument for investing in local SEO over increasing paid search campaigns spend.

Track seasonal patterns in your GBP organic traffic. HVAC companies typically see spikes in GBP traffic during heat waves and freeze events. Plumbers see spikes during freeze events and after heavy storms. Knowing your seasonal GBP traffic patterns helps you time your GBP optimization activities and review generation pushes to coincide with the periods when your listing receives the most visibility.

Use GBP conversion data to justify GBP management time. When clients ask whether maintaining their GBP is worth the effort, I can show them exactly how many leads came from their profile last month. UTM tracking turns GBP from a vague organic presence into a measurable channel with a clear contribution to the business.

The Bottom Line on GBP UTM Tracking for Contractors

Most contractors are flying blind on how much value their Google Business Profile is actually generating. Without UTM parameters on your GBP links, GA4 hides that traffic in the direct channel and you never know what you are looking at.

If you are managing marketing for an HVAC, plumbing, or roofing company and you are not tracking your GBP traffic with UTM parameters, fix that today. It is one of the fastest wins in contractor marketing analytics. Thirty minutes of setup work produces months and years of clean attribution data that will inform every GBP investment decision you make going forward.

Compare your GBP-sourced conversion rate against other traffic sources. If visitors from your GBP convert at a higher rate than paid search visitors, that is evidence that your GBP is attracting higher-intent customers. That insight might shift how you prioritize GBP optimization versus paid ad spend.

Track GBP traffic volume over time alongside your rankings. If your GBP traffic drops, check whether your ranking in the local Map Pack has declined. The correlation between GBP traffic and Map Pack position is usually very tight. A traffic drop that matches a ranking drop confirms the ranking change is the cause.

If your GBP tracking reveals strong traffic but weak conversions, the problem is on your website not your listing. If it reveals low traffic despite good rankings, the problem is click-through rate from the listing itself. UTM tracking pinpoints which part of the funnel needs attention. That is the value of building this infrastructure before you need it.

Sequoia GEO helps home service contractors build measurement systems that connect GBP performance, local SEO rankings, and actual revenue. If you want to understand exactly what your marketing is producing before spending another dollar, book a strategy call.

AH
Aaron HusakFounder, Sequoia GEO

13 years building Balanced Comfort Heating & Air from startup to 130+ employees. 4x Inc 5000 (2020–2023). CA Licensed Contractor B, C-2, C-20, C-36. Now working with 10 home service companies at a time as a growth operator and Fractional CMO.

About Aaron

Want an operator’s read on your marketing?

Tell me what you’re spending. I’ll tell you what it’s actually producing.