UTM Link Builder

Build campaign URLs with UTM parameters so analytics shows exactly which links bring your traffic.

🔒 100% private — files are processed on your device and never uploaded to any server.

Know which link actually brought the visitor

Your analytics says 400 visits came “direct” — which is analytics-speak for “no idea”. The newsletter you sent, the Instagram bio link, the QR code on the poster, the partner's blog mention: without tagging, they all dissolve into that same fog. UTM parameters are the fix — five standardised tags appended to a URL that tell your analytics exactly where each click originated. This builder assembles them correctly, encodes the awkward characters, and keeps your campaign names consistent.

How to build a campaign URL

  1. Paste the destination page URL.
  2. Fill the big three: source (where: newsletter, instagram, partner-blog), medium (how: email, social, cpc, qr), campaign (why: spring_sale, launch-2026).
  3. Optionally add term (paid keyword) and content (which variant: header-link vs footer-link).
  4. Copy the finished URL and use it everywhere that campaign lives.

The taxonomy that keeps reports readable

UTM's power is also its trap: the parameters are free text, and analytics treats Email, email and E-mail as three different mediums, shattering one campaign into noise. Adopt three rules forever: lowercase everything, no spaces (use underscores or dashes, pick one), and reuse a fixed vocabulary for medium — email, social, cpc, display, qr, referral cover most lives. Source names the platform specifically (instagram, not social — that's the medium's job). Campaign names the initiative and survives the quarter: black-friday-2026 still means something in January.

Where UTMs belong — and where they're poison

  • Tag: newsletters, social bios and posts, paid ads, QR codes, podcast show-notes, partner placements, email signatures.
  • Never tag internal links (from your own page to your own page): each click restarts the session and corrupts attribution — the cardinal UTM sin.
  • QR codes: always UTM the URL before generating the code (our QR Code Generator pairs perfectly) — print analytics exists only if you tag it.
  • Long ugly URLs? The parameters survive link shorteners fine.

Reading the results

In GA4, Reports → Acquisition → Traffic acquisition splits sessions by your source/medium pairs; campaign and content live one drill-down deeper. The payoff compounds: after a quarter of disciplined tagging you stop guessing whether the newsletter outperforms Instagram — you know, per campaign, per link position. Marketing budgets follow links that prove themselves.

Five fields, one consistent habit, and “direct traffic” stops eating your insights.

Quick reference

PropertyDetail
Requiredutm_source (where), utm_medium (how), utm_campaign (why)
Optionalutm_term (keyword), utm_content (variant)
Conventionslowercase, no spaces, fixed medium vocabulary
EncodingSpecial characters handled automatically
Never use onInternal links within your own site
Reports inGA4 → Acquisition → Traffic acquisition
CostFree, unlimited links

Frequently asked questions

What's the difference between source and medium?

Source is the specific place (instagram, newsletter, partner-blog); medium is the channel type (social, email, referral). Together they form the source/medium pairs your analytics groups by — “instagram / social”, “newsletter / email”.

Why do my campaigns appear multiple times in analytics?

Inconsistent spelling — Email vs email vs E-Mail are three different values. Adopt all-lowercase, no-spaces naming and reuse exact strings. The builder preserves whatever you type, so the discipline is yours to keep.

Should I put UTM links in my site's own navigation?

Never. Internal UTMs restart the visitor's session and overwrite their true origin — the most common self-inflicted analytics wound. Tag only links that start outside your site.

Do UTM parameters affect SEO or page speed?

Neither. They're ignored by the page itself and by ranking algorithms; just ensure your canonical tag points to the clean URL so tagged variants don't index separately (standard CMS setups handle this).