Webmaster Bench

Tools / UTM Builder & URL Parser

UTM Builder & URL Parser

Tag links for email, social and ad campaigns so Google Analytics 4 puts the visits in the right channel. Paste a list to tag many at once. Below, take any URL apart.

URL parser

The five UTM parameters

ParameterAnswersExamples
utm_sourceWho sent the visit?newsletter, google, facebook, partner_blog
utm_mediumThrough what kind of channel?email, cpc, social, paid_social, display, affiliate
utm_campaignWhich campaign?spring_sale_2025, product_launch
utm_termWhich keyword? (paid search)blue_widgets
utm_contentWhich link or creative?header_button, banner_a

GA4 also reads utm_id (a campaign ID, used for cost data imports) and, less commonly, utm_source_platform, utm_creative_format and utm_marketing_tactic.

Getting the channel right in GA4

GA4 sorts every visit into a default channel group (Email, Organic Social, Paid Social, Paid Search, Display, Affiliates and so on) using rules on source and medium. If your medium does not match any rule, the visit lands in Unassigned, and the campaign is hard to find in standard reports. Safe mediums: email for email, social for unpaid social posts, paid_social or cpc with a social source for social ads, cpc for search ads, display or banner for display ads, affiliate, referral, sms, push, video, audio. The builder warns when a medium is likely to be unassigned.

Conventions that keep reports clean

  • Lowercase everything. GA4 is case-sensitive: Email and email become two rows.
  • Pick one word separator (underscores are common) and stick to it.
  • Do not tag internal links. A UTM link from your own home page to your own sale page starts a new session and overwrites the real source of the visit.
  • Never put personal data (email addresses, names, user IDs) in UTM values. Analytics terms forbid it, and URLs leak into logs and referrers.
  • Google Ads does not need UTMs if auto-tagging (gclid) is on and linked to GA4.

How the builder treats your URL

Existing query parameters are kept; UTM parameters are added after them; a #fragment stays at the very end, where it belongs (parameters placed after # are never sent to the server, a common bug). If the URL already has a UTM parameter that you fill in, it is replaced rather than duplicated. Values are percent-encoded, so spring sale becomes spring%20sale (or uses the separator you choose).

The URL parser

Paste any URL to see its scheme, host (with internationalised domain names shown in Unicode), port, path (decoded), every query parameter decoded, and the fragment. It labels UTM parameters and advertising click IDs such as gclid, fbclid and msclkid, and flags parameters that appear twice, which different systems read differently.

Sources

Last reviewed 2026-11-15. Your input is processed only in your browser and never sent to us.