UTM Builder for Google Analytics 4

Build tagged campaign links and see which GA4 default channel each one lands in before you publish it. Tag one link, or many pages for many sources at once.

Preset

Tagged URL

Open

What each UTM parameter does

UTM tags are query parameters that tell Google Analytics where a visit came from when the browser cannot tell it on its own: a link in an email app, a QR code, a WhatsApp message, a paid social ad. GA4 reads five of them into its traffic source dimensions, and a sixth, utm_id, is used to join cost data imports.

ParameterGA4 dimensionExample
utm_sourceSession sourcegoogle, facebook, newsletter
utm_mediumSession mediumcpc, paid_social, email
utm_campaignSession campaignspring_sale_2026
utm_termSession manual termrunning shoes
utm_contentSession manual ad contentvideo_a, footer_link
utm_idSession campaign IDcmp_0412

Source and medium carry the weight. Source is the place, medium is the type of traffic, and together they decide the channel. Campaign groups the work you did. Content is the one most people skip and later wish they had: it tells two links in the same email or two ad versions apart.

How GA4 sorts tagged traffic into channels

GA4's default channel group runs through a fixed list of rules from top to bottom and stops at the first match. For traffic you tag yourself, Google documents these rules, in this order:

ChannelRule
DirectSource is (direct) and medium is (not set) or (none)
Cross-networkCampaign name contains cross-network
Paid ShoppingSource is a shopping site, or campaign name matches shop or shopping, and medium is paid
Paid SearchSource is a search site and medium is paid
Paid SocialSource is a social site and medium is paid
Paid VideoSource is a video site and medium is paid
DisplayMedium is display, banner, expandable, interstitial or cpm
Paid OtherMedium is paid, with any other source
Organic Shopping, Social, Video, SearchSource is on the matching site list, or medium is social, social-network, social-media or sm (Social), contains video (Video), or is organic (Search)
AI AssistantMedium is ai-assistant
ReferralMedium is referral, app or link
EmailSource or medium is email, e-mail, e_mail or e mail
Affiliates, Audio, SMSMedium is affiliate; medium is audio; source or medium is sms
Mobile Push NotificationsMedium ends in push or contains mobile or notification, or source is firebase

"Medium is paid" means the medium matches the regular expression ^(.*cp.*|ppc|retargeting|paid.*)$: cpc, cpm, ppc, retargeting, or anything that starts with paid. The site lists are long spreadsheets Google publishes and updates. This tool checks the common names from them, such as google, bing, facebook, instagram, tiktok, linkedin and youtube, and shows the rule that matched next to the channel.

Why lowercase matters

Google says the channel rules themselves are not case sensitive, so Facebook with paid_social still lands in Paid Social. The source and medium values in your reports are a different story. GA4 stores exactly what you send, so Facebook, facebook and FaceBook show up as three rows in the Traffic acquisition report and in every exploration. Spaces cause the same mess, because one person types spring sale and another spring-sale. Pick lowercase with hyphens or underscores and keep it in a shared sheet. The checks above flag both, and the fix button cleans the values in one click.

Naming conventions that keep reports readable

  • Use the platform name for source: facebook, not fb_ads_sept. Dates and versions belong in campaign or content.
  • Use mediums GA4 recognises. paid_social lands in Paid Social; social_paid does not start with paid, so with source facebook it lands in Organic Social.
  • Keep the word shop out of campaign names unless it is shopping traffic. A paid campaign called workshop_promo is safe, but eshop_launch or shop_week is counted as Paid Shopping.
  • Tag only links that point to your site from outside it. A UTM on an internal link starts a new session and overwrites the real source.
  • Google Ads with auto-tagging does not need UTM tags. The gclid carries richer data than UTM tags can.

Bulk mode for campaign launches

Launches usually mean the same handful of pages shared in many places. Paste the page URLs in Bulk mode, add one line per channel (facebook, paid_social, instagram, social, bio_link, newsletter, email), and set the campaign once. Every page is combined with every line, each row shows its GA4 channel, and the CSV download gives your team one sheet to copy links from. The CSV opens directly in Excel and Google Sheets.

Shortening tagged links

A tagged URL is long but it works anywhere a link works. Shorten it only where people have to read or type it: print, a spoken link, an SMS, a social profile. Shorten the final tagged URL, not the clean page URL, so the tags survive the redirect, and test it once in GA4's Realtime report before the campaign goes out.

Questions people ask

Are UTM parameters case sensitive in GA4?
The values are. GA4 reports Facebook and facebook as separate rows. The default channel rules are not case sensitive, so the channel is the same, but your source and medium reports split. Use lowercase everywhere.
Which UTM parameters are required?
utm_source is the one GA4 needs. In practice always add utm_medium and utm_campaign too: without a medium the visit lands in Unassigned, and without a campaign you cannot filter it.
What medium should I use for paid social ads?
paid_social. With a social source such as facebook, instagram or tiktok it lands in Paid Social. cpc also works, but paid_social keeps social spend separate from search ads in your own reports.
Why is my UTM traffic showing as Unassigned?
The source and medium did not match any default channel rule. Common causes are a missing medium, a custom medium like story or bio, or a typo. Change the medium to one GA4 recognises, such as social, paid_social, email, referral or cpc.
Should I add UTM tags to Google Ads links?
Not if auto-tagging is on, which is the default. The gclid gives GA4 more detail than UTM tags. Use UTM tags for every other platform.