UTM links: how to check where your website customers come from
UTM links in practice: utm_source, utm_medium and utm_campaign, where to add them, how to read them in GA4, a naming convention and mistakes. With a table for a local business.
You know that someone visited your website. But did they come from a flyer, a newsletter, Instagram or your Google Business Profile? Without tagged links, GA4 will often throw some of those visits into the shared “Direct” bucket, and the guessing is left to you.
The solution is simple and free: UTM links. A UTM link is an ordinary page address with an ending attached that says where the click came from. In this guide I’ll show you how to build them, where to put them and how to read the results in GA4.
What is a UTM link
UTM is a set of parameters added at the end of an address, after a question mark. The page looks the same to the customer, and Google Analytics records which link they came from. An example:
https://yourcompany.pl/offer?utm_source=flyer&utm_medium=qr&utm_campaign=spring-2027
The three basic parameters:
- utm_source: where from, that is, the specific place (e.g.,
newsletter,instagram,flyer), - utm_medium: what type of channel (e.g.,
email,social,qr), - utm_campaign: which campaign it belongs to (e.g.,
spring-2027,november-sale).
There are also the optional utm_content (which button or graphic) and utm_term (the keyword in paid ads). The first three are enough to start with.
Step 1: set a naming convention
This is the most important step, because GA4 is case-sensitive. You will see “Newsletter” and “newsletter” in the report as two separate sources, and your data will split.
The rules I suggest:
- Lowercase only.
- No Polish or other special characters and no spaces, with a hyphen instead of a space (
spring-2027). - One name for one meaning: always
instagram, neverinstaone time andigthe next. - Short campaign names you will still understand six months later, ideally with a date.
- Write them down in a spreadsheet and use only names from that list.
Be careful with the medium. GA4 assigns traffic to channels on its own based on the medium, so email will go to the Email channel, while a made-up qr may end up in “Unassigned”. That’s not an error: the data is there, you just look for it in the report with source and medium, not in the channel groups.
Step 2: where to add UTM links
Tag everything that leads to your website from places Google won’t recognize on its own.
Newsletter
Every link in the email: utm_source=newsletter, utm_medium=email, and utm_campaign with the name of the mailing. If you have two buttons in one email, add utm_content=top-button and utm_content=bottom-button, and you’ll see which one works better.
Instagram and Facebook bio
The link in your bio is one place that everyone sees. Tag it as utm_source=instagram, utm_medium=social, utm_campaign=bio. Tag posts with a link (Facebook, groups) with a separate campaign, e.g., post-terrace.
Flyers, business cards and posters with a QR code
A QR code doesn’t reveal where it was scanned, and without UTMs the visit will often land as Direct. Make a separate link for each medium: flyer-neighborhood, business-card, car-sticker. Only then will you see that the neighborhood flyer brought 12 visits and the sticker only 2. I write more about making the codes in the guide on QR codes in business.
Email signature, PDFs and quotes
You can also tag the link to your website in your email footer and in a PDF quote, e.g., utm_source=email-signature. You’ll see whether customers click it at all.
What not to tag
Google usually tags Google Ads ads itself, if the account is linked to GA4 and auto-tagging is turned on. Don’t add your own UTMs there unless you need to. Your Google Business Profile has its own links, which I write about below.
Step 3: a sample link table for a local business
This is what the spreadsheet could look like for a renovation company from Giżycko. Base address: https://yourcompany.pl/quote.
| Where the link goes | utm_source | utm_medium | utm_campaign |
|---|---|---|---|
| Newsletter with an offer | newsletter | spring-2027 | |
| Instagram bio | social | bio | |
| Facebook post | social | post-terrace | |
| Flyer in a neighborhood | flyer | qr | new-neighborhood |
| Sticker on a car | sticker | qr | company-car |
| Link in an email signature | email-signature | footer |
The finished link for the flyer then looks like this:
https://yourcompany.pl/quote?utm_source=flyer&utm_medium=qr&utm_campaign=new-neighborhood
To put the addresses together, you can use any generator or an ordinary spreadsheet with a formula that joins cells. What matters is that your table is the source of truth.
Step 4: where to read the results in GA4
After a few days, take a look at the reports. Google sometimes changes the exact names in the GA4 menu, but the path looks like this:
- Go to Reports → Acquisition → Traffic acquisition.
- Change the table dimension to Session source / medium (e.g.,
flyer / qr) or Session campaign. - Compare the number of sessions, engaged sessions and key events, if you have events set up: a form, a click on the phone number.
A visit to the website isn’t a customer yet. That’s why the most valuable change is to the table, so that you see the number of inquiries next to each source. If conversions aren’t set up yet, GA4, Tag Manager and conversion setup will help.
After publishing a link, run a test: click it on your phone and check in the Realtime report whether the visit appeared. The most reliable place to check the source is the Traffic acquisition report, but according to Google, data processing can take 24–48 hours, so don’t judge a campaign after an hour.
Mistakes that ruin the data
- UTMs in internal links. If you tag a link from a banner to your offer on your own website with UTMs, GA4 may attribute part of the data (e.g., inquiries) to that banner instead of the real source, such as Google or the newsletter. Use UTMs only where the customer comes to your website from outside.
- Different capitalization and different names for the same source (
Facebook,facebook,fb). - Spaces and Polish or other special characters in names, which turn into unreadable characters in the address.
- Shortening links without checking. Some shorteners and redirects lose the parameters, so always click the finished link as a test.
- Personal data in UTMs. Don’t put a customer’s name, email address or phone number in the parameters: they end up in the address and in reports.
- No consent to analytics. If a customer rejects analytics cookies, some visits won’t show up in GA4. That’s normal; I write about the settings in the guide on the cookie banner and Consent Mode v2.
What about phone calls and your Business Profile
UTMs will show visits to your website, but not phone calls made without clicking a link. If a customer calls from a flyer, GA4 won’t see it. Calls are measured with call tracking, which I cover in more detail in the guide on call tracking.
You can tag the website link in your Google Business Profile, e.g., utm_source=google, utm_medium=business-profile, utm_campaign=listing, to tell those visits apart from regular search. Just check that the link works correctly in Google after you save the changes.
Summary
UTM links take a few minutes of work for each campaign, plus one table with an agreed convention. With them you know whether it pays to print flyers, send a newsletter and run Instagram, instead of guessing.
If GA4 doesn’t show inquiries yet, or you’re not sure whether data is being collected correctly, write to me. I’ll check the setup and help you put it in order. You can also do a quick review of your website yourself with the free Check your website tool.
Frequently asked questions
No. UTM parameters are only used to measure visits and don’t change the page content. It’s good for the page to have a canonical address set without parameters, and the CMS or the website contractor usually takes care of that already.
Usually not, if your Google Ads account is linked to GA4 and auto-tagging is turned on. Then Google tags ad clicks itself. You use UTMs mainly in channels that Google won’t recognize on its own: newsletters, flyers, social media bios.
Most often the link was shortened or redirected in a way that lost the parameters, or someone copied just the page address without the ending. Click your own link as a test, and after 1–2 days check in the Traffic acquisition report whether the visit has the right source.
The parameters describe the place the link comes from, not the person. Don’t put any personal data in them, such as a customer’s email address or name, because it would end up in the address and in reports.
You will usually see the test visit itself in the Realtime report shortly afterward. In standard reports, according to Google, data processing can take 24–48 hours, so don’t judge a campaign after the first hour.
Related services
Have a similar project?
Describe what you need and I’ll send a quote within 24 hours. New clients get 20% off their first project.


