Waseem Ranker

Blog · 29 October 2026 · 8 min read

Tag Your Profile Links So GA4 Stops Guessing

Out of the box, GA4 files most of your profile traffic under direct or organic and you lose the ability to prove anything. Five steps fix that permanently.

Why GA4 files your profile traffic as direct

Clicks from your Google Business Profile do not always arrive with a referrer. On mobile especially, the handoff from the Maps app to the browser drops it.

With no referrer, GA4 has nothing to attribute the session to, so it lands in direct. Some of it lands in organic search, mixed in with everyone who found you through a normal search result.

The result is that the channel you are working hardest on is the one you can see least clearly.

Tagging the website link on your profile fixes this in about fifteen minutes, and it is the first thing I set up on any new account.

Step 1: decide what you are measuring

Do not start with the tool. Start with the sentence you want to be able to say at the end of the month.

For most local businesses that sentence is: this many people came from the profile, and this many of them called or submitted the form.

If that is your sentence, you need one tagged link and one conversion event. You do not need a tag per button, per city, or per post.

Over-tagging is the most common failure here. I have inherited accounts with eleven variants of the same link and no usable report.

Step 2: build the tagged link

Take your homepage URL and add three parameters to it: a source, a medium, and a campaign name.

Set the source to google, the medium to organic_profile, and the campaign to something stable like gbp. Use lowercase throughout, because GA4 treats differing cases as separate values.

Do not use the medium organic on its own. That collides with normal search traffic and defeats the whole exercise.

Avoid a URL shortener. Shorteners add a redirect that some mobile browsers handle badly, and you lose the tag on the hop.

Step 3: put it in the three places that matter

The website field on the profile is the obvious one, and it is the one that carries most of the traffic.

The appointment or booking link is the second. If you have one, it needs its own campaign value so you can separate browsing traffic from booking intent.

Profile posts are the third. Each post link should carry a distinct campaign value, because that is the only honest way to see whether posts drive anything at all.

Leave the phone number alone. A tagged link cannot track a call, and the attempt to make it do so is how people end up with the number mismatch problem.

Step 4: confirm the tag is landing

Open your profile on a phone, tap the website button, and watch the realtime report in GA4.

You are looking for a session with the source and medium you set. If it shows as direct, the tag was stripped, and the usual cause is a redirect between the tagged URL and the page that actually loads.

Test from both a phone and a desktop. The two paths behave differently often enough that checking only one gives false confidence.

Repeat the test a week later. Profile edits sometimes revert, especially on listings with multiple managers.

Step 5: build the one report you will read

Create a single exploration with session source and medium as the dimension, and sessions plus your key conversion as the metrics.

Filter it to the medium you chose. Now you have a line that means profile traffic and nothing else.

Add a month-over-month comparison and stop there. A report you open once a month and understand in ten seconds beats a dashboard nobody reads.

This number is also the honest input for any GMB audit, because it tells you whether profile work is producing sessions or only impressions.

A worked example

A clinic I set this up for had been reporting four hundred monthly sessions as direct and assuming most were returning patients.

After tagging, two hundred and ten of those four hundred turned out to be profile clicks, and the form completion rate on them was more than double the site average.

That one number changed where the budget went. Profile work moved from a side task to the main task, because it was now the measurable channel rather than the invisible one.

Nothing about the website changed. Only the measurement did, and the measurement is what made the case.

What this will never tell you

It will not tell you about calls made from the map pack. Those never reach your website, so no website analytics tool can see them.

It will not tell you about people who read your profile, decided against you, and left. Only the profile insights hint at that, and vaguely.

It will not tell you why a position changed. For that you need position data across a grid rather than session data, which is a different exercise covered in my local SEO audit guide.

What it does give you is a defensible number for the traffic the profile sends, and that is usually the number an owner has never had before. If you would rather have it set up and reported for you, that is part of how I work with clients.

The conversion events worth defining

Sessions on their own prove interest, not value. The report only becomes useful when a session can be marked as having done something.

For a local business there are usually three: a tap on the phone number, a form submission, and a click on the directions or map link.

Define those three and nothing else. Scroll depth, video plays and time on page add rows to a report without adding decisions to your week.

Mark the phone tap as a conversion even though you cannot tell whether the call connected. An imperfect measure, compared only to itself over time, is still a measure.

Two mistakes that corrupt the data quietly

The first is inconsistent capitalisation. A medium written one way in January and another way in March becomes two separate rows, and your trend line breaks in half without warning.

The second is tagging internal traffic. If you and your staff click the profile link while testing, those sessions land in the same bucket as real customers.

Exclude your own network addresses before you start, and do your testing with that exclusion temporarily switched off rather than leaving it off permanently.

A small business with forty monthly profile sessions is badly distorted by six internal visits, and that distortion always flatters you.

What to do in month one if nothing is set up

Do not try to reconstruct history. The data for untagged months does not exist and cannot be recovered, and estimating it invites arguments.

Tag the link, define the three events, exclude internal traffic, and declare month one a baseline rather than a result.

Then leave it alone for thirty days. Checking daily produces noise, and acting on that noise produces changes that undo each other.

From month two onwards you have a comparison, and from month three you have a trend, which is the first point at which the numbers can honestly support a decision.

Written by Waseem Abbas. More about how I work, or see client results with the screenshots.

Want this checked on your own account?

Send your business name and city and I will run a geo-grid check and a profile audit, then tell you what is actually wrong.

Want this measured properly?WhatsApp meChat on WhatsApp