Skip to content
Reembun
UTM builder icon
Developer

UTM link builder

Build correctly tagged campaign URLs, with existing UTM parameters replaced rather than duplicated and casing normalised.

Start from a preset

Where the traffic comes from, such as google or newsletter.

The channel type, such as cpc, email or social.

One name reused across every link in the campaign.

Paid keyword. Optional.

Distinguishes two links in the same email or ad. Optional.

GA4 treats Email and email as two different sources, which silently splits one campaign into two rows. Lowercasing everything avoids it.


Tagged link

https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=spring-launch
ParameterValue
utm_sourcenewsletter
utm_mediumemail
utm_campaignspring-launch

Ready. Runs locally on your device.

Your files stay on your device. The tool works directly in your browser, using your device to process your files. Nothing is sent to our servers, and we never receive, store, or see your files or figures.

Share

Share this page

Share result

Your results

Use the tool above first. Whatever it works out shows up here, ready to copy or share.

Cite

Cite this page

Reembun. (2026, July 28). UTM link builder. https://reembun.com/utm-builder
Pick a style, then copy the reference. The access date is today.

How to use it

  1. Paste the destination

    The page the link should land on, before any tracking is added to it.

  2. Fill in the three that matter

    Source is where the traffic comes from, medium is the type of channel, campaign is the name you reuse across every link in the same push.

  3. Add term and content if you need them

    Term for a paid keyword, content to tell two links inside the same email or ad apart.

  4. Copy the link

    Force lowercase keeps analytics from splitting one campaign into several because of a capital letter. Copy link gives the finished URL.

The five parameters

ParameterPurposeExample
utm_sourceWhere the traffic came fromnewsletter, google
utm_mediumThe channel typeemail, cpc, social
utm_campaignThe campaign namespring-launch
utm_termPaid keywordpdf+merge
utm_contentWhich link, within one campaignheader-cta

Source, medium and campaign are the three that matter. Term and content exist to disambiguate: two buttons in the same email, or two creatives in the same ad set.

https://example.com/pricing
  ?utm_source=newsletter
  &utm_medium=email
  &utm_campaign=spring-launch
  &utm_content=header-cta

Conventions that prevent problems

Always lowercase. GA4 is case-sensitive on these values. Facebook, facebook and FaceBook become three separate sources, splitting one campaign across three rows.

Pick one separator and keep it. Hyphens or underscores, not both. spring_launch and spring-launch are different campaigns as far as analytics is concerned.

Keep medium to a short controlled list. cpc, email, social, paid_social, organic, referral, affiliate, display. Inventing a new medium per campaign makes channel-level reporting useless.

Reuse the campaign name across every link in the campaign. That is what lets you total the campaign rather than reading it link by link.

Document the convention somewhere shared. Most UTM chaos comes from two people tagging the same campaign differently, not from anyone being careless.

Standard source and medium pairs

ChannelSourceMedium
Google Adsgooglecpc
Meta paidfacebookpaid_social
Meta organicfacebooksocial
LinkedIn organiclinkedinsocial
Email newsletternewsletteremail
Transactional emailsystememail
Affiliatepartner nameaffiliate
Printed QR codeflyerqr

That last row is worth noting: a QR code on print material is otherwise indistinguishable from direct traffic, and tagging it is the only way to measure offline campaigns at all.

Mistakes worth avoiding

Tagging internal links. This resets the session and overwrites the original acquisition source. If you want to know which internal button was clicked, use an event, not a UTM.

Duplicating parameters. A link that passes through two builders can end up with utm_source twice. Analytics keeps one, arbitrarily. This tool replaces existing UTM keys rather than appending, so a link can safely be re-tagged.

Putting personal data in a parameter. UTM values appear in URLs, browser history, referrer headers and server logs. An email address or customer ID in utm_content is a data protection problem, not a clever hack.

Forgetting the canonical tag. Tagged URLs can be crawled and indexed. A self-referential canonical on every page consolidates them back to the clean URL.

Common questions

Which UTM parameters are required?

Source, medium and campaign in practice. GA4 will record a visit without them, but it falls back to the referrer or to "direct", which is usually the outcome you were trying to avoid by tagging the link. Term and content are optional and only worth adding when you need to distinguish two links within the same campaign.

Does case matter?

Yes, and it causes a surprising amount of trouble. GA4 treats "Email" and "email" as two different sources, so one campaign silently reports as two rows that neither sum nor sort together. Force everything lowercase and use one separator convention consistently.

Should I tag internal links?

No. A UTM parameter on an internal link starts a new session and attributes the rest of the visit to that campaign, overwriting the real acquisition source. It is one of the most common ways to corrupt attribution data. Use internal link tracking or events instead.

Do UTM parameters hurt SEO?

They can create duplicate URLs if a tagged link gets indexed, which is why every page should carry a self-referential canonical tag. With canonicals in place the risk is minimal. Never use UTM parameters on internal navigation or in a sitemap.

Last reviewed