UTM Link Builder

If your Google Analytics or Plausible dashboard files half your traffic under “direct / none”, the usual cause is missing UTM tags on your outbound links. This builder assembles a clean ?utm_source=...&utm_medium=...&utm_campaign=... query string from the five standard UTM fields, URL-encodes each value and keeps any parameters already on your link. Fill in the fields, copy the result, and paste it into your ad, email or QR code.

How to build a tracking URL

  1. 1

    Enter the destination URL

    The landing page the link should open. Include the https:// scheme; any query string already on the URL is kept.

  2. 2

    Fill in the UTM parameters

    Source, medium and campaign are the useful minimum; term and content are optional. Empty fields are left out.

  3. 3

    Build the link

    The builder trims each value, URL-encodes it (a space becomes %20) and joins everything into one query string.

  4. 4

    Copy the final URL

    One click copies the complete, percent-encoded campaign link.

What each parameter means

Parameter Meaning Example
utm_source Where the link lives newsletter, facebook
utm_medium Marketing channel email, cpc, social
utm_campaign Campaign name spring-launch-2026
utm_term Paid keyword (search ads) vector-illustration
utm_content Variant for A/B tests headline-a, button-red

Naming conventions that keep reports clean

  • Type values exactly as you want them tracked. This builder passes your values through unchanged apart from trimming and URL-encoding, so Facebook and facebook will show up as two separate rows in Analytics. Pick one style and stick to it.
  • Prefer lowercase. Analytics treats UTM values as case-sensitive, so lowercase avoids accidental duplicates.
  • Use hyphens, not spaces. A space is encoded as %20, which is valid but ugly in reports; spring-launch reads better than spring%20launch.
  • Version your campaigns. spring-launch-2026-v2 beats reusing spring-launch and mixing old and new data.

Example

Destination URL: https://shop.example.com/sale

Values entered: source newsletter, medium email, campaign spring-launch-2026, content headline-b.

Result: https://shop.example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring-launch-2026&utm_content=headline-b

If the URL already ends in ?ref=partner, that parameter is kept and the UTM values are added after it.

When not to use UTM

  • Internal navigation. Tagging internal links resets the session in Google Analytics and breaks attribution.
  • Google Ads paid search. Use auto-tagging (gclid) instead, or you will double-count clicks.
  • Redirect links. Tag the final destination, not the redirector, or the first hop may strip the parameters.

Frequently Asked Questions

Google Analytics treats utm_source as the only hard requirement, but utm_medium and utm_campaign are what make reports useful. utm_term and utm_content are optional.

It is preserved. The builder keeps your existing parameters and adds the UTM ones to the same query string. If a utm_* value is already present, the value you enter replaces it, so you never get duplicates.

No. It only trims surrounding whitespace and URL-encodes the values (a space becomes %20). It does not lowercase them or turn spaces into hyphens, so type each value exactly as you want it to appear in your reports.

The link is assembled on our server when you press Build, and in the step-by-step version your entries travel in the page URL. We record only an anonymous count that the tool was used, never the URL or its parameters. For confidential campaign URLs, build them on a local machine.

Related Tools

Tool available in other languages