SEO · 8 min read
How to Track Leads From Your Google Business Profile
Summary
Google's Performance tab counts button taps, not customers, and most of it never reaches GA4. How to tag, track and cost every Business Profile lead.
By Hyder Shah, Founder & CEO · Published July 13, 2026 · Updated July 13, 2026
Ask a plumber where their work comes from and you'll hear 'Google, mostly.' Ask which Google — the map pack, the website, the ads — and the room goes quiet. That silence costs money, because the channel you can't measure is the channel you can't defend when it's time to cut budget.
Your Business Profile is the worst-instrumented asset most service businesses own. Not because Google gives you nothing — it gives you a Performance report — but because that report lives in a walled garden, counts taps instead of customers, and never talks to your analytics. This is how you close the loop.
Why is your biggest lead source also your worst-measured one?
Of the customer actions Google reports on a Business Profile — calls, messages, bookings, direction requests and website clicks — only website clicks ever land on a page your analytics can see. The other four happen entirely inside Google's interface.
So a caller taps the call button in the map pack, your phone rings, you book a $900 drain job, and nothing in Google Analytics ever knows it happened. Meanwhile the one action that does reach your site — the website click — arrives untagged and gets filed under Organic Search or Direct, indistinguishable from someone who typed your URL from a fridge magnet.
That is the whole problem. Your best channel reports into a dashboard you don't own, and your second-best signal disappears into a bucket you can't segment. Everything below is about fixing those two holes.
What does the GBP Performance report actually tell you — and what does it hide?
Google's help documentation defines a 'call' as the number of times a customer clicked on the call button on your Business Profile — a tap, not a conversation, not a booked job (Google Business Profile Help). Every number in that report is an interaction count, and you should read all of them that way.
Three things in the same documentation quietly change how you should read the report:
- Views are de-duplicated people, not impressions. Google counts unique visitors, and says 'a person can only be counted once a day' — so views will look lower than you expect, and always lower than an impressions-style metric.
- Paid is baked in. Google states performance data 'includes views, searches, and actions from both organic search results and Google Ads.' If you run Google Ads with location assets, some of your 'profile' calls were bought.
- Searches lag. The search-terms metric updates at the start of each month and 'might take up to 5 days to show up' — so a mid-month check on which queries surfaced you is looking at stale data.
Here is what each metric is worth, and where it lands once it leaves Google:
| Metric | What Google counts | Where it lands in GA4 | What to do about it |
| Calls | Taps on the call button | Nowhere | Route to a tracking number, log every call |
| Website clicks | Clicks on the profile's website link | Organic Search or Direct, unlabeled | Tag the link with UTMs |
| Direction requests | Unique requests, de-duped for repeat taps and cancelled requests | Nowhere | Ignore unless customers physically visit you |
| Messages | Number of separate conversations | Nowhere | Only enable it if someone answers within the hour |
| Bookings | Bookings completed via a Google booking partner | Depends on the provider | Useful only if you actually use a booking provider |
Direction requests are the metric owners quote most and should trust least. If you're a service-area business — a plumber, an HVAC contractor, an electrician — nobody drives to you. Treat direction requests as a vanity number and delete them from your reporting.
How do you tag the GBP website link so it stops landing in Direct?
Add three UTM parameters — utm_source, utm_medium and utm_campaign — to the website URL saved on your profile, and GA4 will report Business Profile clicks as their own row instead of folding them into Organic Search or Direct. Google's own guidance is to always set those three together, and warns that missing parameters 'will result in (not set) values being present in reporting' (Google Analytics Help).
The URL you paste into the Website field of your profile:
- Base: https://yoursite.com/?utm_source=google&utm_medium=organic_gbp&utm_campaign=business_profile
- utm_source=google — keeps the source honest; the click really did come from Google.
- utm_medium=organic_gbp — do NOT use 'organic' alone, or GA4's default channel rules ('Medium exactly matches organic') will re-file it straight back into the Organic Search channel you were trying to escape.
- utm_campaign=business_profile — one stable name, forever. Don't version it monthly.
- Lowercase everything. Google states parameter values are case sensitive: utm_source=Google and utm_source=google become two different rows.
Then test it like an operator, not a marketer. Open the profile on your phone, tap Website, and check the query string is still on the URL when the page finishes loading. A sloppy redirect chain — http to https, non-www to www, missing trailing slash — can strip the parameters and hand you a clean-looking setup that measures nothing.
This does not violate Google's guidelines. Those rules ban URLs that 'redirect or refer users to landing pages... other than those of the actual business' — a tagged link to your own homepage is your page. If your profile keeps sending people to a generic homepage, that's a bigger leak than the tagging; a click from the map pack should land on a page that matches the job, which is what our conversion-focused website work exists to fix.
Can you put a call tracking number on your Business Profile safely?
Yes — under two conditions Google states plainly: the number must be 'under the direct control of the business,' and you may not use numbers that 'redirect or refer users to... phone numbers other than those of the actual business' (Google's representation guidelines). A tracking number you own, that forwards to your real line, clears both bars. A number owned by a lead-gen middleman that routes calls to whoever pays most does not.
Two more rules from the same page that kill most lazy setups: use a local number rather than a central call-center line 'whenever possible,' and premium-rate numbers 'are not acceptable regardless of the rate charged to the caller.' So: local area code, matching your service area, or don't bother.
Which number goes in the primary field, which goes in the additional field, and how to keep your citations from drifting is its own job — we cover it in call tracking without breaking your NAP, and the tool trade-offs live in our call tracking software comparison. Two warnings worth repeating here:
- A tracking number is a dependency. Stop paying the vendor and your Business Profile's phone number goes dead — or worse, gets recycled to another business that inherits your calls. Own the number, or budget for it permanently.
- Dynamic number insertion does not cover you. DNI swaps the number on your website per visitor. The GBP call button never touches your website, so DNI sees none of it. The profile needs its own dedicated number.
Why won't Google's GBP numbers match GA4, and how big is the gap?
They will never match, and Google's number will almost always be the larger one — because Google counts a click on the link, while GA4 only counts a session that loaded your page and fired the tag. Every step between those two events loses people.
The gap is made of four things, and none of them are a bug:
- Bailouts. A tap that never finishes loading is a Google website click and not a GA4 session. Slow mobile pages widen this gap directly.
- Blocked tags. Any browser or extension that blocks the analytics tag is invisible to GA4. Google's own count doesn't depend on your tag firing.
- Different counting units. Google de-dupes to a person-per-day; GA4 counts sessions. One customer checking you twice is one view and two sessions.
- Paid contamination. Google's report mixes organic and Google Ads activity. If you run Local Services Ads or location assets, some of those profile calls were bought. Your GA4 UTM row doesn't include them.
So don't chase a reconciliation to zero — you'll burn a week and find nothing. Pick a system of record and stick to it. Ours: GA4 plus the call log is the truth; the Performance report is directional. Google's number is your ceiling, GA4's is your floor, and the trend line matters more than either level. If the two ever move in opposite directions for a full month, something broke — usually a redirect eating your UTMs.
One more thing worth knowing: Google's help page documents how to pick a date range and download the report, but it doesn't promise you a retention window. Export the Performance report to a sheet every month. History you didn't save is history you don't have.
How do you count booked jobs from GBP, not just clicks?
One required field on every lead — 'how did they reach us' — with three values (profile call, profile website, other) turns a click count into a booked-job count. Everything else is plumbing to make that field fill itself in.
The wiring, in order:
- Calls: the tracking number on the profile is the tag. Any call to that number is a GBP lead, no human judgement required.
- Forms: capture utm_source and utm_medium into hidden fields on the form, and push them into the CRM record. The lead arrives already labeled.
- Outcome: every lead gets marked booked / not booked, with the job value. This is the only field that turns marketing data into money data.
- Speed: timestamp the first call-back. It's the cheapest lever you own.
That last one is not a soft metric. In a 2011 Harvard Business Review study, firms that contacted an online lead within an hour were nearly seven times as likely to qualify that lead — defined as having a meaningful conversation with a key decision maker — as firms that waited just one hour longer (HBR, 2011). A map-pack caller is comparing three plumbers in the same five minutes. Your ranking bought you the call; your answer rate decides who gets the job.
If your ad spend has the same blind spot, the fix is the same shape — see why most service businesses can't tell which ad dollar made them money.
What does a lead from your Business Profile actually cost you?
Cost per booked job from GBP = your total monthly local search spend divided by the jobs you closed from profile leads — and it is never zero, because the profile only produces work when someone is maintaining the rankings, the reviews and the tracking behind it.
Run the math with your own numbers. If you spend $2,500 a month on search, close 10 jobs that came in through the profile, and your average ticket is $1,200, that's $250 per booked job against $12,000 of revenue. If you close 3 jobs, it's $833 per job against $3,600 — and now you have a real decision to make instead of a feeling.
That's the entire point of instrumenting this. We run a 90-day kill switch on every channel: no qualified leads in 90 days and it gets cut. You cannot run that rule on a channel whose calls vanish into a walled garden. Tracking isn't reporting hygiene — it's what makes the budget decision possible at all.
And the ranking side still has to work, or there's nothing to measure. Profile optimization, review velocity and the rest of the map-pack job are covered in Google Business Profile optimization for service businesses and the wider local SEO guide.
What should you do this week?
Four tasks, roughly two hours of work, and you'll know more about your best channel than you have in years.
- 1. Paste the UTM-tagged URL into the Website field on your profile, then click it from your phone and confirm the parameters survive to the landing page.
- 2. Buy one local tracking number, forward it to your real line, and set it as the profile's phone.
- 3. Add the 'how did they reach us' field to your CRM and make it required.
- 4. Export this month's Performance report to a sheet. Do it again next month.
If you'd rather someone else wire it up and then tell you what the numbers say, that's what our local SEO work does — tracking first, rankings second, because a ranking you can't measure is a story, not a result. Get my free audit and we'll tell you exactly where your Business Profile leads are leaking.
Where does this fit in your stack?
If you're running a US service business, the playbook in this post pairs with our full services lineup and applies cleanly across our supported industries and US locations. If you want help implementing it, book a free strategy call — we'll review your current setup and prioritize the next three moves.
For the deeper engagement details, see our SEO service. New to the terminology here? Our SEO & marketing glossary defines every acronym in this post.
Want this built for your vertical? See SEO for Plumbing Companies, SEO for HVAC Companies, SEO for Electrical Contractors.
What are the most common questions about this topic?
Common questions readers send us about this topic.
How do I track leads coming from my Google Business Profile?
Three moves. Tag the website link on your profile with utm_source, utm_medium and utm_campaign so GA4 reports those clicks as their own row. Put a call tracking number you own on the profile so every tap on the call button is logged. Then add a required 'how did they reach us' field in your CRM and mark each lead booked or not booked. Google's Performance report on its own tells you about taps, not jobs.
Does Google Business Profile traffic show up in Google Analytics?
Only website clicks do, and only if you tag them. An untagged click from your profile arrives in GA4 as Organic Search or Direct, depending on whether Google passed a referrer — there is no built-in Business Profile channel. Calls, messages, bookings and direction requests never reach GA4 at all, because they happen inside Google's own interface and never load a page on your site.
Can I use a call tracking number on my Google Business Profile?
Yes, if you own it. Google's representation guidelines require that the phone number be 'under the direct control of the business' and forbid numbers that redirect callers to a business other than yours. A tracking number you rent from a vendor and forward to your real line meets both conditions. Use a local area code, not a call-center or premium-rate number. Just remember the number is now a permanent dependency — cancel the vendor and your profile's phone goes dead.
Why don't GBP Performance numbers match GA4?
Because they count different things. Google counts a click on your website link; GA4 counts a session that finished loading and fired the analytics tag. People who bail mid-load, or who block the tag, are counted by Google and not by GA4. Google also de-duplicates to one person per day while GA4 counts sessions, and its report mixes organic activity with Google Ads. Expect Google's number to be higher and treat it as directional, not authoritative.
How do I add UTM parameters to my Business Profile website link?
Edit the Website field on your profile and paste the tagged URL — for example, yoursite.com/?utm_source=google&utm_medium=organic_gbp&utm_campaign=business_profile. Keep every value lowercase, because Google states UTM values are case sensitive. Avoid utm_medium=organic on its own: GA4's default channel rules file anything with a medium of exactly 'organic' back into Organic Search, which defeats the purpose. Then click the link from your phone and confirm the parameters survive any redirects.
Are direction requests a useful lead metric?
Rarely, for service businesses. If you're a plumber, an HVAC contractor or an electrician, customers don't drive to you — so a direction request is closer to curiosity than intent. Google also notes it changed how it counts unique direction requests to account for multiple taps and cancelled requests, so the number isn't a clean count of humans either. If you have a storefront customers actually visit, it's a soft proxy. Otherwise, ignore it.
How long does Google keep my Business Profile performance data?
Google's help page documents how to choose a date range and download the report to a spreadsheet, but it doesn't publish a retention guarantee — which is reason enough not to treat the Performance tab as your system of record. Export it to a sheet every month, on a calendar reminder. If you ever want to compare this spring against last spring, only the history you saved yourself will be there.
How do I calculate cost per lead from Google Business Profile?
Divide everything you spend on local search in a month — retainer or in-house time, call tracking subscription, review tooling — by the number of leads the profile produced, using your tracking number and UTM row as the count. Then do it again using booked jobs instead of leads. Cost per booked job is the number that decides whether the channel stays funded, and it's the only one worth reporting to yourself.
About the author
Hyder Shah
Founder & CEO, Foundgrove
Hyder Shah is the founder of Foundgrove, an SEO and GEO agency for US service businesses. See our editorial policy for how these guides are researched and reviewed.
Related reading
Other tactical pieces from the Foundgrove blog.
- SEO · 12 min read
Google Business Profile Optimization for Service Firms (2026)
Optimize your Google Business Profile to win the map pack as a service area business: category, hidden address, service areas, reviews.
Read the seo playbook → - SEO · 13 min read
Local SEO for Service Businesses: The 2026 Operator Guide
Local SEO puts your service business in the Google map pack and 'near me' results. Here's how proximity, prominence, and relevance decide who wins in 2026.
Read the seo playbook → - Paid Ads · 12 min read
CallRail vs WhatConverts vs Invoca: Call Tracking 2026
Compare CallRail, WhatConverts, and Invoca to find the platform that ties calls to job bookings and ROI attribution for your service business.
Read the paid ads playbook → - SEO · 9 min read
Does Call Tracking Hurt Your Local SEO? The NAP Rules
Call tracking does not wreck your NAP — a sloppy setup does. The exact GBP phone slots, schema rules, and DNI config that keep your map pack safe.
Read the seo playbook → - SEO · 9 min read
Direct Traffic in GA4: Where Your Leads Go to Die
Direct is GA4's junk drawer, and it is packed with the channels that book your jobs. Here is what is hiding in there and how to tag your way out.
Read the seo playbook → - SEO · 9 min read
Geo-Grid Rank Tracking: Measure Real Map Pack Reach
Your rank tracker says #2 but the phone is quiet. Map pack rank is computed from the searcher's location. Here is how a geo-grid shows your real reach.
Read the seo playbook →
Want help applying this to your business?
Book a free 30-minute call. We'll review your current acquisition stack and show you the three highest-leverage moves for your industry and state. Or read how our SEO service works.