Add clean tracking tags to any link, get a scannable QR code, and save a library of every campaign URL you build. So you finally know which channel actually sent the lead. Free, no signup, with a built-in naming linter.
Tracking links tell you what gets clicked. We wire your site, ads, and CRM together so you see which campaigns actually produce booked work. Get a free mockup or audit.
Get a free mockup or audit →If you run ads, send emails, post on social, or print a flyer with a QR code, UTM tags are how you tell those clicks apart in Google Analytics. Without them, everything piles into "direct" or "referral" and you cannot prove what works. This builder adds clean tags to any link, makes a scannable QR code, and keeps a saved library of every campaign URL, all in your browser.
A UTM link is just your normal page URL with extra parameters bolted on the end. The three core tags are utm_source (where the click comes from, like google or facebook), utm_medium (the channel type, like cpc or email), and utm_campaign (the specific promotion). Two optional tags, utm_term and utm_content, capture the paid keyword and which version of a link was clicked. When someone clicks, those values flow into your analytics so each visit is attributed to the exact campaign that sent it.
Paste your destination page into Base URL, fill in source, medium, and campaign, and your tracking link builds live as you type. Hit Copy for the URL, download the QR code for print or signage, then save it with a label so you have a tidy library to reuse. Use Export CSV to hand the whole list to your team or drop it in a spreadsheet. Everything stays on your device.
Paid builders charge a monthly fee for the parts that matter: UTM.io runs about $19/mo, Terminus URL Builder about $24/mo, and LinkUTM about $9/mo. Google's free Campaign URL Builder has no save, no library, and no QR code. Ours is free with no signup and still gives you a saved library, a QR code, CSV export, and a naming linter that keeps your data clean.
The Pro version ties your tracking links to your CRM so you can see which campaigns actually produce booked jobs, not just clicks.
Get early access, book a free call →The link is assembled as you type, inside the page. Your base URL gets https:// added if you left the scheme off, any # fragment is split off the end so the parameters land in front of it, the joining character is chosen based on whether the URL already carries a query string, each value is URL-encoded, and the fragment goes back on last. That order is not cosmetic: a parameter written after a # never reaches your analytics. The linter checks two things and only two, spaces and uppercase letters, and offers a lowercase hyphenated version you can click to accept. It does not know your team's naming convention, and it will happily build a tidy link around a source you made up.
Saved links sit in your browser's own storage under a single key, and the CSV export is written on your device. None of your campaigns reach us, and there is no account. The trade is that the library is tied to one browser on one machine: clear your site data, switch computers, or work in a private window and it is gone, with nothing to restore from. Export before you migrate. The one thing that does leave your device is the QR code, drawn by a third-party public QR service, so the finished link text is sent there to render the image. For a URL you would rather not hand to an outside service, copy the link and make the code elsewhere.
What it cannot do is tell you whether any of this is working. It does not open the destination to confirm the page loads, it does not check that analytics is installed or configured to record campaign parameters, and it reports no clicks, because it has no view into your Google Analytics or ad accounts. Some platforms and link shorteners also strip or rewrite parameters in transit, which this cannot detect. Reading the numbers once they arrive is analytics and CRO, and tagging paid traffic properly is part of Google Ads management.
Probably not. The builder produces a standard, correctly encoded URL, but it cannot install or configure your analytics and it has no view into your account. Check that analytics is firing on the destination page, that the platform is not rewriting the URL, and that your date range covers the period since the link went out.
They do not follow you. The library lives in one browser's local storage on one device, with no account and no sync, so clearing site data or moving machines wipes it. Use Export CSV first and keep the file wherever you keep the rest of your campaign records.