Skip to content

UTM Builder (Campaign URL Builder)

Tag links for GA4 and see the channel they'll land in. Runs in your browser.

Loading tool…

About this utm builder (campaign url builder)

This UTM builder adds campaign tags (utm_source, utm_medium, utm_campaign and the rest) to any link so Google Analytics 4 can tell where your visitors came from. It also predicts which GA4 channel the link will land in, so you catch "Unassigned" traffic before the campaign goes out.

Build one link, or switch to bulk and tag a whole list of URLs with the same campaign. Presets fill in source and medium values that GA4's default rules sort correctly. Values are lowercased for you, because GA4 treats Facebook and facebook as two different sources.

It's for marketers, small business owners and agencies who tag links every week. Nothing is sent anywhere: the links are built in your browser, and you can open the result to test it.

Features

  • Likely GA4 channel for every link

    The tool applies GA4's default channel group rules to your source and medium and tells you the result, such as Paid Social, Email or Unassigned, with the rule that matched. Fix the medium before you spend money on traffic you can't attribute.

  • Presets that map cleanly

    Twenty common sources, from email newsletters and Facebook ads to SMS, podcasts and printed QR codes. Each one sets a source and medium pair that lands in the expected channel, with notes where GA4 has no channel at all.

  • Lowercase and space handling

    Lowercase is on by default. Spaces can become underscores, hyphens or %20. If you turn lowercase off and type capitals, a warning explains how mixed case splits your reports.

  • Bulk tagging without a spreadsheet

    Paste URLs one per line to apply the shared values, or paste a CSV or sheet with a header such as url,source,medium,campaign so each row sets its own. Copy every link at once or download a CSV with the channel column.

  • Every GA4 parameter

    Source, medium, campaign, content and term, plus utm_id, utm_source_platform, utm_creative_format and utm_marketing_tactic for teams that import campaign data.

  • Keeps the rest of your URL intact

    Existing query parameters stay where they are and the #fragment stays at the end. If the link already has UTM tags, the new values replace them and you're told. Paste a tagged link to load its values back into the form.

How to use the utm builder (campaign url builder)

  1. 1Paste the page URL and pick a preset or type source, medium and campaign.
  2. 2Check the predicted GA4 channel and fix any warnings.
  3. 3Copy the tagged link, or switch to Bulk to tag a list and download a CSV.

When to use it

  • Tagging a newsletter

    Use source newsletter, medium email and a campaign per send. Add utm_content to tell the header button from the footer link, so you know which one people click.

  • Running paid social

    Pick the Facebook ads preset for source facebook, medium paid_social. GA4 counts that as Paid Social, not Organic Social, so ad traffic doesn't inflate your organic numbers.

  • Printing a QR code

    Tag the link with source flyer and medium qr_code, then turn it into a QR code. You'll see scans in GA4 by source, even though GA4 has no print channel.

  • Launching across many pages

    Paste 40 landing page URLs into bulk mode with one campaign name and download the CSV for your ad platform's bulk upload.

What are UTM parameters?

UTM parameters are tags at the end of a URL, after a question mark: ?utm_source=newsletter&utm_medium=email&utm_campaign=winter_sale. When someone clicks the link, Google Analytics reads them and files the visit under that source, medium and campaign instead of guessing from the referrer.

Google says to always set the three core ones. Missing values show up as (not set) in reports.

  • utm_source: who sent the visitor. facebook, newsletter, partner_blog.
  • utm_medium: the kind of link. email, social, cpc, paid_social, display, affiliate.
  • utm_campaign: the promotion or product. winter_sale_2026.
  • utm_content: tells apart two links in the same message or ad. Optional.
  • utm_term: the paid keyword or audience. Optional.
  • utm_id: a campaign ID that matches data you import into GA4. Optional.

Why is my campaign traffic showing as Unassigned?

GA4 sorts every visit into a channel using fixed rules on source and medium. If your medium isn't one it knows, the visit lands in Unassigned. The classic case is a made-up medium like "qr", "print" or "influencer". Another is putting the platform in the medium, as in medium=facebook.

A few of the actual rules: Email needs source or medium to be email (or e-mail, e_mail). Paid Social needs a social site as the source and a medium containing cp, ppc, retargeting or starting with paid. Display matches display, banner, cpm and a couple of others. Referral matches referral, app or link.

The prediction here uses those rules with short lists of common search, social and video sites. Google's own site lists are longer, so treat the result as a strong hint and confirm in GA4's real-time report.

Are UTM parameters case sensitive?

Yes. Google's help pages say values are case sensitive and recommend lowercase. utm_source=Facebook and utm_source=facebook become two rows in your reports, and you'll spend time merging them later. Agree on lowercase with underscores across your team and keep a shared list of approved sources.

Should I use UTM tags with Google Ads or on internal links?

For Google Ads, leave auto-tagging on. It adds a gclid to each click and gives GA4 more detail than manual tags. Manual UTMs are only needed if auto-tagging is off. Microsoft Ads works the same way with msclkid.

Don't tag links between pages of your own site. A UTM tag on an internal banner tells GA4 the visit came from that campaign, which hides the original source that really brought the visitor in.

Why use Mavros

 MavrosTypical upload sites
GA4 channel previewShown for every linkNot offered
Bulk linksList or CSV, free, up to 10,000Paid plan or one at a time
LowercaseOn by default with warningsLeft to you
Existing query and #hashKept in the right placeSometimes broken
GA4 extra parametersutm_id and the three GA4 extrasThe original five only
PrivacyBuilt in your browserLinks stored on their server

Tips

  • Pick a naming pattern and stick to it: winter_sale_2026, not WinterSale, winter-sale and Winter 2026 in the same quarter.
  • Keep campaign names readable. You'll filter by them in reports months later.
  • Test every tagged link once before sending. Some site redirects drop query strings.
  • Short links keep the tags. A shortener redirects to the full URL, so GA4 still sees the UTMs after the click.
  • Need to read a long tagged URL someone sent you? The URL parser splits it into parts.
  • Special characters get encoded. If you're curious what %20 or %2B mean, the URL encoder shows both sides.

Questions

Which UTM parameters are required?

utm_source, utm_medium and utm_campaign. Google's help says to always use those three; without them, reports show (not set). Content, term and the GA4 extras are optional.

What's the difference between source and medium?

Source is who sent the visit, such as facebook or newsletter. Medium is the type of link, such as social, email or cpc. Swapping them is the most common reason traffic lands in the wrong channel.

Are UTM tags case sensitive in GA4?

Yes. Facebook and facebook are recorded as two different sources. Use lowercase everywhere. This builder lowercases values by default.

Why does GA4 show my campaign as Unassigned?

Your source and medium don't match any default channel rule. Use a standard medium such as email, social, paid_social, cpc, display or affiliate, or create a custom channel group in GA4 for anything else.

Do UTM parameters affect SEO?

Not if you use them on links from outside your site. Tagged URLs can get crawled if they're linked publicly, so keep a canonical tag on the page pointing to the clean URL.

Can I use spaces in UTM values?

You can, but they're encoded as %20 and look messy in reports. Underscores or hyphens are easier to read and filter. Pick one and use it everywhere.

Do UTM tags work with link shorteners?

Yes. The shortener redirects to your full tagged URL, and GA4 reads the tags on the landing page. Test the short link once, because a few redirect setups strip query strings.

What is utm_id for?

It's a campaign ID that joins GA4 traffic with cost or campaign data you upload. If you don't import campaign data, you can leave it empty.

Is my data stored anywhere?

No. The links are built in your browser and nothing is saved on a server. The current link is kept in the page address so you can bookmark or share it.