Blog
A UTM builder guide: build the link, then shorten it
How to use a UTM builder without producing 40 variants of the same campaign name — naming rules, a worked example, and what the builder does to your values.
By Wasim Idrishi · Updated · 4 min read
A UTM builder is a form that stops typos. That is the entire job, and it matters because the cost of a typo is not a broken link — it is a second row in a report six weeks later, at the moment you are trying to decide whether the campaign worked.
What the builder does to what you type
Three transformations, all visible in the output as you type.
Spaces become underscores. spring sale becomes spring_sale, because a space is %20 in a URL and %20 in the
report.
Values are lower-cased, unless you switch that off. This is the one that saves the most pain: analytics tools treat
Instagram and instagram as different sources with no way to merge them afterwards.
Empty fields are removed rather than written as blanks. Paste a URL that already carries utm_term, leave the term
box empty, and the tag is deleted from the result.
The destination URL itself is left alone otherwise. Existing query parameters stay, the #fragment stays, and a URL
typed without a scheme gets https:// in front. Anything that is not http or https is refused, as is a URL with a
username or password embedded in it.
UTM Builder
Open the full toolA worked example
A restaurant is running one campaign across four places: an Instagram story, the printed table tents, the WhatsApp broadcast and the monthly email. Same landing page, four links.
| Placement | source | medium | content |
|---|---|---|---|
| Instagram story | instagram | social | story_swipe |
| Table tent QR | table_tent | qr | lunch_menu |
| WhatsApp broadcast | whatsapp | social | broadcast_oct |
| Monthly email | newsletter | email | header_button |
Campaign is festive_menu_2026 on all four. Now the report answers a question the restaurant actually has: the table
tents produced 340 scans and 11 bookings, the Instagram story produced 2,100 clicks and 6 bookings, and next month
the print budget goes up.
Then shorten it
A fully tagged URL is often 120 characters. That is fine in an email button and terrible in an SMS, a bio, on a poster, or read aloud on a podcast.
Build the tagged URL
Fill in the destination, source, medium and campaign. The result appears as you type.
Press Shorten
You get a gc.mw link and a QR code. The tags travel inside the link; the person clicking sees eleven characters.
Claim it if it matters
Links made without an account live 30 days. Sign in from the same browser and it moves into your account keeping the same code — do this before the link goes anywhere printed.
Repairing a vocabulary that already went wrong
Most accounts do not start from zero. They start from three years of tags built by four people, and the report has
Facebook, facebook, FB and fb-ads in it.
You cannot merge those rows retroactively, so do not try. Do this instead: export the last 90 days of campaign rows, list every distinct source and medium value, and write the canonical version of each next to it. That list is now your vocabulary. From today, every new link uses it; the historical mess stays in the past where it can be ignored, and the first clean quarter arrives 90 days later.
While you are in there, look for two specific failures. A medium value that is really a source — newsletter in the
medium column instead of email — and campaign names with dates in a format that does not sort, like sale-nov and
sale-2. Fix both in the canonical list before anybody uses it.
Where builders go wrong
Tagging internal links. A UTM tag on a link inside your own site restarts attribution for that session. The visitor came from Instagram; one tagged internal button and the report says they came from your own homepage.
Tagging the same placement twice. Two people build a link for the same email, one writes email and the other
writes Email. Both work. The report shows half the traffic in each row, and both look disappointing.
Putting the medium in the campaign name. email_festive_menu as a campaign name means every report needs
mental parsing. Medium goes in utm_medium; that is what it is for.
Never checking the built link. Open the tagged URL once before you send it. The most common failure is not a bad tag at all — it is a destination that redirects, strips the query string on the way, and arrives with no tags left. A redirect checker takes ten seconds and catches it before 40,000 people do.
Questions people ask
Does the builder send my URL anywhere?
No. The URL is assembled in your browser as you type. Nothing is sent to a server unless you press Shorten, which creates a gc.mw link through the public shortener endpoint and hands you the short link, its QR and a claim token.
What happens to parameters that are already on my URL?
Ordinary query parameters and the fragment are kept exactly as they are. Existing utm_ parameters are replaced by whatever you type, and any utm_ field you leave empty is removed — so pasting a previously tagged URL and clearing a box actually deletes that tag.
Why does it refuse to build a link without utm_source?
Because a URL with utm_medium and utm_campaign but no source is worse than an untagged one: analytics tools usually drop the whole set and file the visit under direct or referral, so you lose the data and never notice.
Should I tag a link that goes into a QR code?
Yes, with utm_medium=qr and a utm_source that names the physical placement. Then use a separate short link for each placement so the click counts stay separate even before the tags reach your analytics tool.
Can I put UTM tags on the short link instead?
On Pro, yes — the UTM parameters section of the link editor applies them during the redirect. Use the builder when the tagged URL itself has to go somewhere, and the link editor when you want the shared link to stay clean and the tags to be editable later.
Keep going
Try it with your own link
Paste a long link and get a 10-character gc.mw link with a QR code. No account needed for 30 days; free forever with one.