UTM Builder
https://example.com/spring-sale/?utm_source=instagram&utm_medium=social&utm_campaign=spring-sale&utm_content=biohttps://example.com/spring-sale/?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale
| Channel | Source / medium | Campaign | Link label |
|---|---|---|---|
| Organic Social | instagram / social | spring-sale | bio |
| newsletter / email | spring-sale | — |
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.
facebooksocialfacebookpaid_socialinstagramsocialinstagramsocialinstagrampaid_socialtiktoksocialtiktokpaid_socialgooglecpcnewsletteremailsmssmsflyer or posterqrFacebook post
utm_source
facebookutm_medium
socialGA4 channel
Facebook ads
utm_source
facebookutm_medium
paid_socialGA4 channel
Instagram bio
utm_source
instagramutm_medium
socialGA4 channel
Instagram stories
utm_source
instagramutm_medium
socialGA4 channel
Instagram ads
utm_source
instagramutm_medium
paid_socialGA4 channel
TikTok post or bio
utm_source
tiktokutm_medium
socialGA4 channel
TikTok ads
utm_source
tiktokutm_medium
paid_socialGA4 channel
Google Ads
utm_source
googleutm_medium
cpcGA4 channel
Email newsletter
utm_source
newsletterutm_medium
emailGA4 channel
Text message
utm_source
smsutm_medium
smsGA4 channel
QR code on a flyer or poster
utm_source
flyer or posterutm_medium
qrGA4 channel
Bio vs stories. Source and medium are the same, so tell them apart with
utm_content:bio,stories,reel.Campaign names. Use
utm_campaignfor what you’re promoting, likespring_saleornew_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/cpconly if auto-tagging is off.Print QR codes. GA4 has no default channel for offline or print, so any honest medium like
qrlands 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=facebooklands 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,affiliateanddisplay. Words likenewsletter,post,story,bio,flyerorqrmean nothing to it. With a known social source likeinstagramyou’re still covered; with an unknown source you’re not.Close, but not exact. The rules are strict.
email,e-mail,e_mailande mailcount as Email, butemail_blastormaildon’t.social-mediaandsocial mediacount as social,social_mediadoesn’t.The source isn’t on Google’s list. Brand names like
mailchimpormetaaren’t known sources. Pair them with a medium GA4 knows (email,paid_social), or usefacebook/instagramas 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
Enter the page
Paste the address people should land on.
Pick where you’ll share it
Tick the places and name the campaign — each place gets its own tagged link.
Use the links
Put each link in its place. Visits show up under Traffic acquisition in Google Analytics.