This free UTM campaign URL builder adds utm_source, utm_medium and utm_campaign tags to any link, so Google Analytics can tell you which newsletter, social post, ad or flyer sent each visitor. Pick a preset, see the finished link and the GA4 channel it will land in, then copy it or download a QR code for print.
Most builders only glue parameters onto a URL. This UTM campaign URL builder also checks the result against Google’s published channel rules, because a medium like newsletter or a source like x quietly drops your visits into the wrong report, and you only notice weeks later.
What This UTM Campaign URL Builder Does
- 🏷️ Builds clean campaign links. Source, medium, campaign, content and term fields, plus the GA4 extras such as
utm_idbehind a toggle. Values are lowercased and spaces become underscores, soSpring Saleandspring_salenever split your reports. - 🔡 Encodes everything safely. Characters such as
&,=,#or non-Latin letters are percent-encoded, and a table shows each value as GA4 will report it. - 🧭 Predicts the GA4 channel. Google’s default channel rules and its list of 800+ search, social, video and shopping sources tell you whether the visits count as Email, Organic Social, Paid Search or Unassigned, and why.
- 🛠️ Fixes common mistakes in one click. Unrecognised mediums, a swapped source and medium,
xinstead oftwitter, and campaign names containing “shop” come with a suggested fix. - 🧩 Respects your existing URL. Other query parameters and the
#fragmentstay untouched. Paste a tagged link to edit its tags; click IDs such asgclidorfbclidfrom an earlier visit are removed. - 🎯 24 presets plus your own. Email, SMS, organic and paid social, Google Ads, affiliates, podcasts, Google Business Profile and printed QR codes. Save your own naming conventions too.
- 📋 Copy, collect and export. Copy the URL or only the parameters, collect a campaign’s links in a list, download it as CSV, and export the QR code as PNG or SVG.
How to Use It
The UTM campaign URL builder updates the link as you type, so there is no Generate button.
- Paste the page people should land on into Website URL.
- Choose a preset, or type the source (where the visit comes from, such as
newsletter) and the medium (the kind of channel, such asemail). - Add a campaign name, and use content to tell apart two links in the same campaign.
- Read the GA4 channel check and apply a suggested fix if one appears.
- Click Copy URL, add the link to your list, or download the QR code.
How the UTM Campaign URL Builder Predicts Your GA4 Channel
GA4 sorts every tagged visit into a default channel group with fixed rules, checked from top to bottom (Google’s definitions). The medium matters most: email means Email, social means Organic Social, and a paid medium such as cpc or paid_social becomes Paid Search, Paid Social or Paid Video only when the source is on Google’s list of search, social or video sites. Anything that matches no rule lands in Unassigned.
That is where the classic mistakes hide, and the UTM campaign URL builder flags each of them:
- 📨
utm_medium=newsletteris not an email value, so those visits end up Unassigned. Useemailand keepnewsletteras the source. - 🐦 Google’s source list knows
twitterandt.co, but notxormeta, so paid X or Meta ads tagged that way count as Paid Other instead of Paid Social. - 🛍️ A campaign name containing “shop”, like
coffee_shop_opening, is treated as a shopping campaign, and that rule runs before the Email and Social rules. - 🖨️ Print has no default channel. Flyer and poster visits keep their exact source and medium, but channel reports show them as Unassigned unless you create a custom channel group.
The UTM campaign URL builder follows Google’s published rules and source list as of September 2026. Channel groups you customise in your own property can differ, and utm_creative_format and utm_marketing_tactic are not reported in Google Analytics yet.
Practical Use Cases
A few ways to put the UTM campaign URL builder to work:
- 📧 Newsletters. Give the header button and the footer link different
utm_contentvalues and see which one gets the clicks. - 📱 Social profiles. Put a tagged link in your Instagram bio and stop guessing where a spike of “direct” traffic came from.
- 🖨️ Flyers, menus and posters. Print the QR code and measure scans per placement, next to a vCard QR code on business cards or a Wi-Fi QR code on the café table.
- 💰 Ads with dynamic values. Keep placeholders such as
{{campaign.name}}(Meta) or{campaignid}(Google Ads) unencoded, and paste only the parameters into the ad platform. - 📍 Google Business Profile. Tag your profile’s website link so visits from Maps stand apart from regular search traffic.
- 📝 Your own blog. Running WordPress yourself, like in my WordPress and MariaDB on Docker guide? Keep one link per channel in the list and download it as CSV for your campaign sheet.
Privacy, Ads, and Data Policy
- ✅ 100% free: no registration and no limits on links or QR codes.
- ✅ No server storage: the UTM campaign URL builder never uploads your links. Presets, the link list and your last entries stay in your browser’s local storage until you clear them.
- ✅ No ads in results: no watermarks, extra tracking codes or shortener redirects.
- ✅ Client-side only: nothing is sent to a server; the one outside request loads the QR code library from jsDelivr.
Open Source and Self-Hosting
The UTM campaign URL builder is open source on GitHub: three files (index.html, style.css and script.js) that you can drop onto any static web server, the same way I host IT-Tools on my home server. The only dependency is qrcode-generator (MIT), loaded from jsDelivr for the QR export.
Like the UTM campaign URL builder, every tool on the Tools page runs in your browser, for example the URL Encoder and Decoder for links that are already encoded.
Built by VahaC — 100% client-side, no data sent anywhere.
