UTM Builder

Add UTM tags to your links for free, so Google Analytics shows exactly which campaign, newsletter or post brought each visitor. No sign-up needed.
The page people should land on, e.g. https://example.com/spring-sale/
Where will you share it?
Pick one or more — each place gets its own link.
One name for all links of this promotion, e.g. spring-sale or black-friday.
Somewhere else? Set the tags yourselfFill in both to get one more link — for a place that isn’t in the list above.
The site, app or place the visitor comes from: partner-blog, bing, flyer.
The kind of channel: referral, cpc, email, social. Google Analytics sorts visits into channels by it.
Optional tagsMost links don’t need these.
Tells apart two links in the same place, e.g. header-button and footer-link. Saved as utm_content.
For paid search: the keyword that showed the ad. Saved as utm_term.

Your links

  • Instagram bio
    https://example.com/spring-sale/?utm_source=instagram&utm_medium=social&utm_campaign=spring-sale&utm_content=bio
  • Email newsletter
    https://example.com/spring-sale/?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale
How Google Analytics will show these visitsReports → Acquisition → Traffic acquisition
Open Google Analytics
ChannelSource / mediumCampaignLink label
Organic Socialinstagram / socialspring-salebio
Emailnewsletter / emailspring-sale—
The channel is an estimate from Google’s default channel rules.

UTM naming cheat sheet for small businesses

Google Analytics 4 sorts visits into channels (Organic Social, Paid Social, Email and so on) using fixed default channel rules. These values match those rules. Upper or lower case doesn’t matter to GA4, but pick one style (lowercase is easiest) and use it everywhere so your reports stay tidy.

Where the link goes
utm_source
utm_medium
GA4 channel
Facebook post
facebook
social
Organic Social
Facebook ads
facebook
paid_social
Paid Social
Instagram bio
instagram
social
Organic Social
Instagram stories
instagram
social
Organic Social
Instagram ads
instagram
paid_social
Paid Social
TikTok post or bio
tiktok
social
Organic Social
TikTok ads
tiktok
paid_social
Paid Social
Google Ads
google
cpc
Paid Search
Email newsletter
newsletter
email
Email
Text message
sms
sms
SMS
QR code on a flyer or poster
flyer or poster
qr
Unassigned (see below)

Facebook post

utm_source

facebook

utm_medium

social

GA4 channel

Organic Social

Facebook ads

utm_source

facebook

utm_medium

paid_social

GA4 channel

Paid Social

Instagram bio

utm_source

instagram

utm_medium

social

GA4 channel

Organic Social

Instagram stories

utm_source

instagram

utm_medium

social

GA4 channel

Organic Social

Instagram ads

utm_source

instagram

utm_medium

paid_social

GA4 channel

Paid Social

TikTok post or bio

utm_source

tiktok

utm_medium

social

GA4 channel

Organic Social

TikTok ads

utm_source

tiktok

utm_medium

paid_social

GA4 channel

Paid Social

Google Ads

utm_source

google

utm_medium

cpc

GA4 channel

Paid Search

Email newsletter

utm_source

newsletter

utm_medium

email

GA4 channel

Email

Text message

utm_source

sms

utm_medium

sms

GA4 channel

SMS

QR code on a flyer or poster

utm_source

flyer or poster

utm_medium

qr

GA4 channel

Unassigned (see below)
  • Bio vs stories. Source and medium are the same, so tell them apart with utm_content: bio, stories, reel.

  • Campaign names. Use utm_campaign for what you’re promoting, like spring_sale or new_menu. Keep the same name across channels so you can compare them.

  • Google Ads. Auto-tagging is the better option: it’s on by default for new Google Ads accounts, and in GA4 auto-tagging takes priority over manual UTM tags. Use google / cpc only if auto-tagging is off.

  • Print QR codes. GA4 has no default channel for offline or print, so any honest medium like qr lands in Unassigned. That’s fine: filter by source/medium in reports, or add a rule for it in a custom channel group.

Why your UTMs land in Unassigned in GA4

GA4 uses Unassigned when a visit matches none of its channel rules. The rules mostly look at two things: whether the source is on Google’s list of known social, search, video and shopping sites, and whether the medium is one of a few expected words. Common reasons a link misses all of them:

  • Source and medium are swapped. utm_source=social&utm_medium=facebook lands in Unassigned. The site goes in source, the type of traffic goes in medium.

  • The medium is a word GA4 doesn’t know. GA4 recognizes media like social, email, sms, cpc, referral, affiliate and display. Words like newsletter, post, story, bio, flyer or qr mean nothing to it. With a known social source like instagram you’re still covered; with an unknown source you’re not.

  • Close, but not exact. The rules are strict. email, e-mail, e_mail and e mail count as Email, but email_blast or mail don’t. social-media and social media count as social, social_media doesn’t.

  • The source isn’t on Google’s list. Brand names like mailchimp or meta aren’t known sources. Pair them with a medium GA4 knows (email, paid_social), or use facebook / instagram as the source.

A related trap is Paid Other: a paid medium like cpc or paid_social with a source GA4 doesn’t recognize (for example fb_ads) isn’t Unassigned, but it isn’t Paid Social either.

The default channel group can’t be edited, so the fix is in your links: correct the tags before you share them. If you need a channel GA4 doesn’t have, create it in a custom channel group.

How to use UTM tags

  1. Enter the page

    Paste the address people should land on.

  2. Pick where you’ll share it

    Tick the places and name the campaign — each place gets its own tagged link.

  3. Use the links

    Put each link in its place. Visits show up under Traffic acquisition in Google Analytics.

Frequently asked questions

More Marketing Tools