Feature

URL Shortener with UTM Parameters

Add source, medium, campaign, term, and content to any link and shorten it in the same step. A live preview shows the exact tagged URL before you save. Every click on the short link carries the tags to Google Analytics, and zip1.io counts it too. No account, no monthly cap.

  • No signup
  • Live preview
  • Tags survive the redirect
  • Free forever

Tag first, then shorten

Google Analytics attributes a visit by the utm_ parameters on the URL the visitor lands on. A short link that redirects to an untagged page arrives with no campaign data, and the channel that earned the click is lost. The fix is order: put the tags on the destination, then shorten that. The visitor sees a clean short link; your analytics sees the tags on every click.

zip1.io does both in one form. The UTM builder writes the tags into the destination as you type, and the short link redirects to the tagged URL with a 302, so nothing is stripped on the way through.

How to shorten a URL and add UTM parameters

  1. Paste the destination URL on the home page.
  2. Open Advanced Options, then UTM tags.
  3. Fill in Source (where the click comes from: newsletter, linkedin), Medium (the kind of channel: email, social, cpc), and Campaign (spring-launch). Term and Content are optional.
  4. Check the preview under the fields. It is the exact URL the short link will redirect to.
  5. Add a custom alias if you want one, then click Shorten.
Destination   https://example.com/pricing
Source        newsletter
Medium        email
Campaign      spring-launch

Preview       https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=spring-launch
Short link    https://zip1.io/spring-email

Share https://zip1.io/spring-email. Each click redirects to the tagged URL, shows up in Google Analytics under newsletter / email, and is counted on https://zip1.io/stats/spring-email.

What the builder does to your URL

The rules are deliberately boring, so the preview is always what gets stored:

  • The rest of the URL is kept byte for byte. An existing query string is not re-encoded or reordered, and a #fragment stays at the end.
  • A tag of the same name is replaced, not duplicated. Paste a URL that already has utm_source=twitter, set Source to newsletter, and the link carries utm_source=newsletter once.
  • Blank fields are left out. An empty Term does not become utm_term=, which Google Analytics would record as a real, blank value.
  • Spaces and symbols are percent-encoded. spring sale becomes spring%20sale, so the URL survives email clients and chat apps that break on a raw space.

The builder covers the five classic tags. GA4 also reads utm_id and utm_source_platform; type those into the destination yourself and they are kept as-is.

One destination, one slug per channel

Create one short link per channel, each with its own tags and its own slug. Google Analytics then splits the visits by utm_source / utm_medium, and the zip1.io stats page gives you the click count per slug. Two views of the same campaign, and they should agree.

https://zip1.io/launch-email  →  ?utm_source=newsletter&utm_medium=email&utm_campaign=launch
https://zip1.io/launch-li     →  ?utm_source=linkedin&utm_medium=social&utm_campaign=launch
https://zip1.io/launch-ads    →  ?utm_source=google&utm_medium=cpc&utm_campaign=launch&utm_term=url-shortener

Keep the values lowercase and consistent. GA4 treats utm_source=Newsletter and utm_source=newsletter as two different sources, and there is no merging them afterwards. The builder suggests common values for Source and Medium as you type, which keeps a team on the same spelling.

Affiliate links: hide the tag string, keep the tracking

A tagged affiliate URL can run to 200 characters and looks like spam in a post or a DM. The short link hides all of it. The tags and the affiliate ID still reach the destination on redirect, because they are part of the stored URL, not something the visitor has to carry. Some programmes restrict link cloaking, so read the rules for yours first; the Amazon page has the compliance note for Associates links.

Via the API

The API takes the finished URL, so add the tags in your code and post it. No key, 10 requests per minute per IP:

curl -X POST https://zip1.io/api/create \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=spring-launch", "alias": "spring-email"}'

# Response:
# {"short_url": "https://zip1.io/spring-email", ...}

zip1.io vs Bitly vs Google's Campaign URL Builder

Capability zip1.io Bitly Google Campaign URL Builder
UTM builder in the link form Yes, free Paid plans only (Core, from $10/month billed annually) Yes, free
Shortens the tagged URL Yes Yes Only through a Bitly account
Counts clicks on the short link Yes, per link, no login Yes, in the dashboard No — that is Google Analytics' job
Account required No Yes No to build; a Bitly login to shorten
Monthly link cap None 5 links/month on the free plan Not a shortener

Comparison reflects publicly documented plans in September 2026. Google's Campaign URL Builder is the right tool for building a tagged URL you will paste somewhere long; zip1.io is for when the link itself has to be short and countable.

FAQ

  • How do I shorten a URL and add UTM parameters?

    Paste the destination, open Advanced Options → UTM tags, fill in source, medium, and campaign, check the preview, click Shorten. No account.

  • Does a short link keep the UTM parameters?

    Yes. The full tagged destination is stored and served with a 302 redirect, so your analytics sees the tags on every click. The visitor only sees the short link.

  • Is the UTM builder free?

    Yes — no account, no monthly cap. Bitly's UTM builder is on paid plans from $10 a month; Google's Campaign URL Builder is free but shortens only through a Bitly account.

  • Which UTM parameters does Google Analytics 4 need?

    utm_source, utm_medium, and utm_campaign are required; utm_id and utm_source_platform are recommended. Values are case-sensitive, so keep them lowercase.

  • What if the URL already has UTM parameters?

    A tag of the same name is replaced, not duplicated. Everything else in the URL, including other parameters and the #fragment, is left exactly as pasted.

  • Can I add UTM parameters to a link I already shortened?

    No — links are immutable. Create a new short link with the tags; the old one keeps working for anyone who already has it.

Tag your next link

Five seconds. No account. The tags ride along on every click.