Free tool

UTM builder: free campaign URL generator for GA4

A UTM link is your page address with utm_source, utm_medium and utm_campaign added, so Google Analytics 4 can tell which post, email or QR code sent each visit. Fill in the three required tags or start from a preset, and copy a clean, lowercase campaign URL with the GA4 channel it lands in.

Free forever plan · No credit card required · Cancel anytime

Build your campaign URL

The page people should land on. Existing query parameters and the #fragment are kept.

Start from a preset

A preset fills source, medium and content. The campaign name stays yours.

Where the visit comes from: instagram, newsletter, google.

The kind of channel: social, email, cpc, qr. GA4 files the visit by it.

The campaign, promotion or product, named the way your ad or email tool names it.

The paid keyword, for search ads.

Tells placements or creatives apart: bio, story, banner-a.

The ID you also use when importing campaign data into GA4.

Built in your browser. Nothing is sent; the last links you use stay in this browser only.

Your campaign URL appears here

Still needed: website URL, utm_source, utm_medium, utm_campaign.

Last updated:

What each UTM parameter means

UTM parameters are plain query-string tags that GA4 reads when a visit starts. Google asks for three on every tagged link and treats the rest as optional.

UTM parameters
ParameterRequiredWhat it recordsExample
utm_sourceYesThe site, app or publication that sent the visit.instagram, newsletter, google
utm_mediumYesThe type of channel. GA4’s default channel group reads it to decide the Channel column.social, email, cpc
utm_campaignYesThe campaign, promotion or product.black-friday-2026
utm_idRecommendedA campaign ID, matched against campaign data you import into GA4.bf2026
utm_termOptionalThe paid search keyword.crm software
utm_contentOptionalWhich creative or placement was clicked.story, banner-a

GA4 also defines utm_source_platform, utm_creative_format and utm_marketing_tactic; Google notes the last two are not currently reported in Analytics.

UTM naming rules that keep reports clean

Most broken UTM reports are spelling problems, not tracking problems. Six rules prevent nearly all of them.

  • Lowercase everything. GA4 treats utm_source=google and utm_source=Google as two different values, and Google recommends lowercase as standard practice.
  • Use hyphens for spaces. "social media" and "social-media" are both on GA4’s Organic Social list, but social_media is not, which is why the builder repairs spaces with hyphens.
  • One source per platform: instagram, never ig in one link and Instagram.com in the next. Google’s own best practices ask for one utm_source per platform and one utm_medium per channel.
  • Name the campaign exactly as the ad platform or email tool names it, so the two can be matched later.
  • Use utm_content for the placement or creative (bio, story, banner-a) instead of inventing new sources.
  • Write the convention down where the whole team sees it. Five people tagging from memory produce five spellings.

How GA4 sorts utm_medium into channels

GA4’s default channel group fills the Channel column in Traffic acquisition, mostly from utm_medium. Google publishes the rules; these are the ones that matter for hand-made tags. Channel rules ignore case, but the Session medium report still shows Email and email as two rows.

utm_medium values and GA4 default channels
utm_mediumGA4 default channelNote
email, e-mail, e_mail, e mailEmailutm_source=email counts too.
social, social-network, social-media, sm, social network, social mediaOrganic SocialA source GA4 knows as a social site counts too, whatever the medium.
cpc, ppc, retargeting, anything starting with paid or containing cpPaid Search, Paid Social, Paid Video or Paid ShoppingDecided by the source (a known search, social, video or shopping site) or a campaign name with shop in it; otherwise Paid Other.
display, banner, expandable, interstitial, cpmDisplay
referral, app, linkReferral
organicOrganic SearchVisits from a known search engine count too.
affiliateAffiliates
smsSMSutm_source=sms counts too.
audioAudio
anything ending in push, or containing mobile or notificationMobile Push Notifications
anything containing videoOrganic VideoUnless the medium is also a paid one.
anything else, such as qr, print, chat or messagingUnassignedUnless GA4 recognises the source. Read these visits in the Session source / medium report.

Two campaign-name rules can win over the medium: a name that contains cross-network is filed under Cross-network, and a name with shop or shopping in it can land in a Shopping channel.

Sources, checked November 5, 2026 (Google Analytics Help): [GA4] Default channel group, URL builders and traffic-source dimensions, manual tagging and auto-tagging.

Common UTM mistakes

  • Tagging links between your own pages. When a URL carries UTM parameters, GA4 takes the traffic source from them, so an internal tag overwrites where the visitor really came from. Tag only links that live outside your site.
  • Leaving out one of the three. Google recommends always setting utm_source, utm_medium and utm_campaign; a missing one shows up as (not set).
  • Inventing a medium. qr, chat or messaging are fine for your own filters, but the default channel group files them under Unassigned unless GA4 knows the source.
  • Mixing capitals. Email and email land in the same channel, because channel rules ignore case, yet they split every source and medium report in two.
  • Putting tags after the #. Everything after # is a fragment, not part of the query string that analytics reads. The builder always inserts the tags before it.
  • Hand-tagging Google Ads that use auto-tagging. GA4 uses the auto-tagged values when the gclid works and falls back to UTM parameters only when it cannot use it.

Sharing the tagged page in a chat? Wrap it in a Telegram share link, or send people to a conversation instead with the WhatsApp link generator and the Instagram DM link generator.

See the visitor behind the tag

GA4 tells you which campaign sent a visit, in aggregate and after the fact. Pinlyx shows the person: its live visitors view lists who is on your site right now, page by page, with their UTM source and ad click, and analytics and reporting break conversations and conversions down by channel.

  • Live visitors with UTM and ad-click attribution are on Pro ($24.99 a month) and Business.
  • Advanced analytics and reporting are on Business ($99 a month).
  • The Free plan is a Telegram inbox and CRM, for the conversations your Telegram links start.

Frequently asked questions

A UTM builder adds tracking tags (utm_source, utm_medium, utm_campaign and optionally utm_term, utm_content and utm_id) to a URL, so analytics tools such as Google Analytics 4 can tell which campaign, post or email sent each visit.
Google recommends always setting utm_source, utm_medium and utm_campaign. utm_term, utm_content and utm_id are optional, and Google also recommends utm_id when you import campaign data. A parameter you leave out shows (not set) in reports.
Yes. GA4 treats utm_source=google and utm_source=Google as different values. Its channel rules ignore case, but your source, medium and campaign reports still split, so use lowercase everywhere.
social, with the network as the source: utm_source=instagram&utm_medium=social. GA4 puts any medium on its social list into Organic Social. Use utm_content to tell a bio link from a story or a post.
GA4’s default channel group has no QR channel. utm_medium=qr keeps the visits easy to filter, but they show as Unassigned in the channel report; read them in Session source / medium, or set up a custom channel group.
Not if auto-tagging is on. GA4 uses the auto-tagged gclid values when it can and falls back to UTM parameters only when it cannot use the gclid.
Yes. Parameters already in your URL stay exactly as they are, any utm_ tag the form manages is replaced, and a #fragment stays at the end, after the tags.
Nothing is sent anywhere. The last 10 links you copy, open or download are kept in this browser’s local storage so you can reuse them; clear them with one click, or use a private window to keep nothing.

Ready to ship

Follow the click into the conversation

Pinlyx turns the people your campaigns bring in into contacts with their whole conversation. Start free with one Telegram account; Pro ($24.99 a month) adds live visitor tracking with UTM attribution, plus Instagram, WhatsApp and X.

Free forever plan · GDPR-ready · No credit card required

We value your privacy

We use cookies to improve our site, analyze traffic, and personalize ads. You can accept all, reject non-essential, or customize your choices. Read our Cookie Policy.