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
- Paste the destination URL on the home page.
- Open Advanced Options, then UTM tags.
- 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. - Check the preview under the fields. It is the exact URL the short link will redirect to.
- 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
#fragmentstays at the end. - A tag of the same name is replaced, not duplicated. Paste a URL that already has
utm_source=twitter, set Source tonewsletter, and the link carriesutm_source=newsletteronce. - 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 salebecomesspring%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, andutm_campaignare required;utm_idandutm_source_platformare 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.
Related
Tag your next link
Five seconds. No account. The tags ride along on every click.