Skip to content
Spellkit

Link Generator

Generate UTM, deep links and more.

What is Link Generator?

Link Generator is a free UTM link builder that creates campaign tracking URLs for Google Analytics and other analytics tools, right in your browser. Enter a destination URL, fill in source, medium, and campaign fields, and copy a correctly assembled tracking link — existing query parameters are preserved.

Key features

  • Builds utm_source, utm_medium, and utm_campaign parameters
  • Optional utm_term and utm_content for keyword and A/B tracking
  • Adds https:// automatically when missing
  • Preserves existing query parameters, only replaces utm_* values
  • One-click copy of the finished tracking URL

How to build a UTM tracking link

When someone lands on your site, analytics can see that they arrived but not why — was it the newsletter, a paid ad, or a partner's tweet? UTM parameters answer that. They're five well-known query-string tags (utm_source, utm_medium, utm_campaign, utm_term, utm_content) that Google Analytics, GA4, and virtually every other analytics tool read automatically to attribute a visit to a specific campaign. This builder assembles them correctly so you don't have to hand-edit query strings and risk a typo that silently drops your tracking.

Steps

  1. Enter the destination URL — the page the link should open. If you omit the scheme, https:// is added automatically.
  2. Fill in the campaign fields:
    • utm_source — where the traffic comes from: newsletter, twitter, google.
    • utm_medium — the type of channel: email, cpc, social, referral.
    • utm_campaign — the campaign name that ties everything together: spring_launch.
    • utm_term / utm_content — optional. Use utm_term for a paid-search keyword and utm_content to tell two variants apart (e.g. header_button vs footer_button) in an A/B test.
  3. Copy your tracking URL and use it in the ad, email, or post.

How the link is built

The builder parses your URL and sets each utm_* value as a proper query parameter, so the result is always valid: values with spaces are percent-encoded, and the ? / & separators are placed correctly. Existing query parameters are preserved — if your link already has ?ref=partner, that stays, and only the utm_* values are added or replaced. Leaving a field blank removes that one parameter rather than writing an empty utm_source=. It's plain local string assembly; the URL you type is never sent anywhere. A finished link looks like https://example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_launch — the tags ride along in the address, and your analytics reads them the moment someone clicks through.

Where the data shows up

In GA4, these values populate the Traffic acquisition report under Session source / medium and Session campaign; in Universal Analytics they landed under Acquisition → Campaigns. The tag names are a fixed convention every major analytics tool recognizes, which is why sticking to the standard utm_source/utm_medium/utm_campaign spelling matters — a misspelled utm_campain is simply ignored and the click shows up as untagged traffic.

Conventions and gotchas that actually bite people

  • UTM values are case-sensitive. In your reports, Facebook, facebook, and FaceBook become three separate sources that never add up. Pick one style — lowercase, no spaces — and stick to it across every link.
  • Don't tag internal links. Putting UTMs on links between pages of your own site restarts the session and overwrites the original source, so you lose the real referrer. UTMs belong only on links pointing into your site from outside.
  • source and medium are the pair that matters. Every campaign should have both; utm_campaign alone with no source/medium leaves your acquisition reports half-blank.
  • Keep a naming key. Because these strings are freeform, email vs e-mail vs Email fragment your data. A shared spreadsheet of approved values pays off fast once several people are making links.

Frequently asked questions

Will this overwrite the query parameters already on my URL?
No. Existing parameters like ?ref=partner are preserved; only the utm_ values are added or replaced. Leaving a field blank actually removes that specific utm parameter rather than writing an empty one.
Do capital letters matter in UTM values?
Yes, they're case-sensitive. In your analytics reports, Facebook, facebook, and FaceBook become three separate sources that never add up. Pick one style, lowercase with no spaces, and use it consistently across every link.
Should I put UTM links on links between pages of my own site?
No. Internal UTM links restart the session and overwrite the original traffic source, so you lose the real referrer. UTMs belong only on links that point into your site from an outside source like an email or ad.
What's the difference between utm_term and utm_content?
utm_term is meant for a paid-search keyword, while utm_content distinguishes two variants of the same link, such as header_button versus footer_button in an A/B test. Both are optional; source, medium, and campaign are the ones that carry the attribution.
Do I have to type the https:// part?
No, https:// is added automatically if you omit the scheme. The builder also percent-encodes values that contain spaces, so the finished link is always valid even if you typed a campaign name with spaces in it.

Privacy

Building the UTM link is simple string assembly done locally; the destination URL you enter is never sent anywhere.