UTM Links: Track Which Post, Ad or QR Code Won a Visit
Most small businesses can say how many people visited the website last month. Far fewer can say whether those people came from the Instagram bio, the Diwali flyer, the WhatsApp broadcast or the board outside the shop. Without that answer, the next rupee of budget goes to whichever channel feels busiest.
UTM parameters fix this. They are short labels added to the end of a link, and they cost nothing. This guide covers what each label means, an example for an Instagram bio and for a printed flyer QR code, a naming checklist, how the labels appear in Google Analytics 4 (GA4), and the mistakes that spoil the data.
What UTM parameters are
A UTM link is your normal web address followed by a question mark and a few name=value pairs, separated by ampersands. Google Analytics reads those pairs when someone lands on the page and records where the visit came from. Google's own help pages say you should always use three of them: utm_source, utm_medium and utm_campaign.
Source is the specific place, such as instagram or a newsletter name. Medium is the type of channel, such as social, email or cpc. Campaign is the promotion, product or offer the link belongs to. Google lists utm_term (a paid keyword) and utm_content (to tell apart two links in the same email or post) as optional. GA4 also recognises utm_id for a campaign ID and utm_source_platform for the platform directing traffic. Pairs can go in any order.
Two worked examples
Example one is an Instagram bio link for an imaginary bakery, Kaveri Bakes. The plain address is https://www.kaveri-bakes.example/offers. The tagged version is https://www.kaveri-bakes.example/offers?utm_source=instagram&utm_medium=social&utm_campaign=diwali-boxes&utm_content=bio-link. If the same offer is also linked from a Story, give that link utm_content=story so the two can be compared.
Example two is a QR code on a flyer handed out at a signal. Encode https://www.kaveri-bakes.example/offers?utm_source=flyer&utm_medium=qr-code&utm_campaign=diwali-boxes&utm_content=avinashi-road-signal into the code before printing. A second batch for a college gate would change only the last value. Both examples use made-up names; swap in your own.
A naming convention that stays consistent
Google states that Analytics is case sensitive, so utm_source=google and utm_source=Google are counted as different values. Staff will not remember a style by instinct, so write the rules down in a shared sheet. A useful checklist: use lowercase only; use hyphens instead of spaces; keep one fixed list of sources (instagram, facebook, whatsapp, flyer, newspaper); keep one fixed list of mediums (social, email, cpc, qr-code, referral); name campaigns with the offer and the year or month, such as diwali-boxes-2026; use utm_content for the exact placement; never reuse a campaign name for a different offer.
Add one more habit. Every new tagged link gets a row in the sheet with the full URL, the date, who made it and where it was used. Six months later, that sheet is the only way to explain what a strange campaign name meant.
Reading the results in GA4
According to Google, campaign values appear in the Acquisition > Traffic acquisition report as Session source / medium, Session medium, Session source and Session campaign. Open that report, choose the campaign or source / medium view, and compare sessions across your tagged links. The UTM parameters are left out of the Landing page + query string dimension and show up in Page location instead.
If you set one UTM parameter but forget the others, the missing ones show as (not set) in reports. That is one more reason to fill in source, medium and campaign every time. Remember that this tells you which link brought a visit. Whether the visit led to an enquiry or an order depends on your site also recording those events, which is a separate setup.
Common mistakes to avoid
The first is mixed case and spelling drift: Instagram, instagram and insta become three rows that should be one. The second is tagging links between your own pages. Tags belong on links that bring people from outside to your site, such as a bio, an ad, an email or a QR code. For clicks inside your own site, track the click as an event instead. Google's help pages do not discuss this point, so treat it as a working rule rather than a quoted one.
The third is tagging a link that redirects. If the address you tag sends people on to another address, for example from a short link or from a non-www to a www version, and the redirect drops the part after the question mark, the tags never reach the final page. Test every tagged link by clicking it on a phone and checking that the final address bar still shows the full set of parameters. Also avoid pasting tagged links into places where people copy and share them widely, because every shared copy carries the original label.
Applying this to printed QR codes
A QR code just stores a web address, so a tagged address works the same way as a tagged link. The catch is that print cannot be edited. If a flyer carries a code with a typo in the campaign name, or the offer page moves, the batch is wasted. Make one code per placement, keep the naming sheet beside the print order, and scan each proof with two different phones before approving it.
A dynamic QR code adds some safety. Tapqode, the free QR code generator from ARTH, describes dynamic codes as pointing to a short link, so the destination can be changed after printing, and it offers scan tracking with breakdowns by day, city, country and device. Scan counts and UTM tags answer different questions: scans tell you how often a code was used, while UTM tags in GA4 tell you what those visitors did on your site.
Sources and further reading
Frequently asked questions
Which UTM parameters are required?
Google says you should always use utm_source, utm_medium and utm_campaign. utm_term and utm_content are optional, and GA4 also reads utm_id and utm_source_platform.
Does capital or small letters matter in a UTM value?
Yes. Google states that Analytics is case sensitive, so utm_source=Google and utm_source=google are separate values. Using lowercase everywhere avoids split rows.
Where do I find UTM data in GA4?
Google's help page says campaign values appear in Acquisition > Traffic acquisition as Session source / medium, Session medium, Session source and Session campaign.
Should I add UTM tags to links inside my own website?
As a working rule, no. Use tags only on links that bring people from outside, and track internal clicks as events. Google's pages consulted for this article do not address internal links.
Can I put UTM parameters in a QR code?
Yes. A QR code stores a web address, so the tagged address can be encoded directly. Test the printed proof, because a redirect that drops the parameters would lose the tags.
Have something worth building?
Tell us what you're trying to make happen. We'll reply with a plan, not a brochure.
Start a project