Skip to content
Boostlix

·4 min read·Guides

UTM Parameters Explained, and Why GA4 Shows "Unassigned" Traffic

How UTM parameters work in Google Analytics 4, the naming rules that keep reports clean, and how to stop campaign traffic landing in the Unassigned channel.

UTM parameters are tags on a link (utm_source, utm_medium, utm_campaign) that tell Google Analytics where a visit came from. GA4 sorts visits into channels using fixed rules based on source and medium. Traffic lands in "Unassigned" when the combination matches none of those rules, most often because the medium is non-standard, such as "print" or "insta_story". Use standard mediums like social, paid_social, cpc, email, referral or affiliate.

Do it now, free and without uploading anything: UTM Builder, QR Code Generator, WhatsApp Link Generator.

You run an Instagram ad, send a newsletter and print a flyer, and a week later Google Analytics shows most of the visits as "Direct" or "Unassigned". UTM parameters fix that, but only if they are named the way GA4 expects.

What UTM parameters are

UTM parameters are labels added to the end of a link:

https://example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=diwali_sale

When someone clicks, GA4 reads the labels and records the visit against that source, medium and campaign. Without them, visits from email apps, WhatsApp, messaging apps and many mobile apps arrive with no referrer and are counted as Direct.

ParameterRecordsExample
utm_source (required)Where the click came fromnewsletter, instagram, google
utm_medium (required)The type of trafficemail, social, paid_social, cpc
utm_campaign (required)The campaign or promotiondiwali_sale_2026
utm_contentWhich link, ad or buttonheader_link, video_ad_a
utm_termThe paid keywordrunning shoes
utm_idCampaign ID for cost importscmp_0425

How GA4 assigns channels

GA4 puts every visit into a default channel group, such as Organic Search, Paid Social, Email or Referral, using fixed rules that look at source and medium. Some examples of how the rules behave:

SourceMediumGA4 channel
facebook, instagram, linkedinpaid_social, cpc, paid…Paid Social
google, bingcpcPaid Search
facebook, instagram, whatsappsocialOrganic Social
any (e.g. newsletter)emailEmail
a partner's nameaffiliateAffiliates
a website's namereferralReferral
an ad networkdisplay, banner, cpmDisplay
flyerprintUnassigned

GA4 matches known social, search, video and shopping sites by name, which is why "instagram" with medium "social" is recognised but a made-up source and medium are not.

Why traffic ends up in "Unassigned"

The channel is Unassigned when a visit matches none of the rules. The common causes:

  1. A non-standard medium. "print", "poster", "influencer", "insta_story" and "bio_link" are not mediums GA4 knows. This is by far the most common cause.
  2. A near-miss medium with an unrecognised source. Medium "social" counts as Organic Social with any source, but "social_post" only does if GA4 recognises the source as a social site. With a source like "influencer-anna", it is Unassigned.
  3. Missing or mistyped parameters, such as utm_source without utm_medium, or "utm_medum".
  4. Data sent without session information, for example some server-side or Measurement Protocol events.

The fix for the first three is the same: use a standard medium, a recognisable source, and put your own detail into utm_campaign or utm_content instead of inventing new mediums.

  1. Open the UTM builder and enter the page address.
  2. Pick a quick start such as Instagram ad, Instagram bio, Email newsletter or WhatsApp, or type your own source and medium.
  3. Add the campaign name, and content for the specific link or ad.
  4. Read the GA4 channel line under the link. If it says Unassigned, change the medium before you share the link.
  5. Copy the link, or tap Make a QR code for this link for print.

Values are lowercased by default, so you never split "Facebook" and "facebook" into two sources.

Naming rules for clean reports

  • Lowercase everything. GA4 reports values exactly as written.
  • No spaces. Use hyphens or underscores; the builder converts spaces for you.
  • Standard mediums only: social, paid_social, cpc, email, referral, affiliate, display, sms.
  • Detail goes in campaign and content, for example campaign "diwali_sale_2026" and content "story_swipe_up".
  • Keep a shared list of the sources and mediums your team uses, so links are consistent.

Offline and print

Flyers, packaging and posters have no GA4 channel of their own, so even a well-tagged printed QR code is reported as Unassigned or under your chosen medium. Two workable approaches:

  • Tag print links consistently, for example source "flyer" or "packaging", medium "print", and analyse them by source and campaign rather than by channel.
  • Create a custom channel group in GA4 with an "Offline" channel that matches your print medium.

Make the code itself with the QR code generator, from the tagged link. For WhatsApp campaigns, the WhatsApp link generator creates the chat link, and the message itself can say where the customer came from.

Common mistakes

MistakeEffectFix
Inventing a medium per campaignTraffic lands in UnassignedStandard medium; detail in campaign or content
Mixed capitalisationOne source split into several rowsLowercase everything
UTMs on internal linksReal sources overwrittenOnly tag links coming from outside your site
Manual UTMs on Google AdsConflicts with auto-taggingLeave auto-tagging on, no manual UTMs
Different names for the same source"ig", "insta" and "instagram" counted separatelyAgree a list and stick to it

Questions this raises

Which UTM parameters are required?

utm_source, utm_medium and utm_campaign. utm_content and utm_term are optional; utm_id links a campaign to cost data you import into GA4.

Why is my campaign traffic in Unassigned?

Usually because the medium is not one GA4 recognises. Change it to a standard medium (social, paid_social, cpc, email, referral, affiliate, display) and put the detail in the campaign or content field.

Are UTM parameters case-sensitive in GA4?

The values are reported exactly as written, so "Facebook" and "facebook" appear as two different sources. Use lowercase everywhere.

Should I add UTMs to Google Ads links?

Not if auto-tagging is on, which is the default. Google Ads adds its own gclid parameter that gives GA4 more detail; manual UTMs can conflict with it.

Can I use UTMs on links within my own website?

No. Internal links with UTMs start a new session and overwrite the real source of the visit. Only tag links that point to your site from somewhere else.

Related reading