EthicalFusion

UTM Link Builder

Build campaign tracking URLs with UTM parameters.

Was this tool helpful?

Thanks for the feedback!

UTM Link Builder adds campaign tracking parameters to a landing-page URL, so that visits from a newsletter, ad, social post or printed QR code show up under the right source and campaign in Google Analytics and similar tools. You supply the destination, a source, a medium and a campaign name, and the tool returns the tagged link ready to paste.

The fields and the link they produce

Paste the destination into the main box and fill in the three boxes:

  • Source is where the click comes from, such as newsletter, instagram or google. Left blank, it becomes google.
  • Medium is the kind of channel, such as email, social or cpc. Left blank, it becomes cpc.
  • Campaign name is the promotion the link belongs to, such as diwali_sale_2026. Left blank, no utm_campaign parameter is added at all.

Press Build link. For source newsletter, medium email and campaign diwali_sale_2026 the result is:

https://example.com/landing?utm_source=newsletter&utm_medium=email&utm_campaign=diwali_sale_2026

How awkward URLs are handled

  • Existing query strings are kept, and the tags are joined on with &. With source whatsapp, medium social and campaign festive_offer, https://example.com/shop?cat=sarees becomes https://example.com/shop?cat=sarees&utm_source=whatsapp&utm_medium=social&utm_campaign=festive_offer.
  • A # fragment is moved behind the tags. Analytics tools read UTM values from the query string, not from the part after the #, so https://example.com/sale#offers becomes https://example.com/sale?utm_source=instagram&utm_medium=social&utm_campaign=diwali_sale_2026#offers. The visit is tracked and the page still opens at the offers section.
  • Values are URL-encoded. A campaign typed as Diwali Sale 2026 comes out as Diwali%20Sale%202026. It works, but diwali_sale_2026 is easier to read and filter in reports.

Naming rules that keep reports clean

  • Stick to lowercase. Google Analytics 4 treats UTM values as case-sensitive, so Instagram and instagram appear as two separate sources.
  • Use conventional mediums. GA4 assigns traffic to default channel groups partly from the medium, so values like email, cpc, social and referral land where you expect, while invented values often end up as "Unassigned".
  • Name the promotion, not the channel. Keep one campaign name on every link for the same offer and let source and medium change per channel; you can then compare the newsletter, WhatsApp and Instagram links inside a single campaign report.
  • Keep a shared sheet of every tagged link with its source, medium and campaign, so the whole team tags each channel the same way.

Mistakes to avoid

  • An empty Campaign name box. The link still records source and medium, but those visits won't be grouped under any campaign. If the result has no utm_campaign= in it, fill in the box and build again.
  • Tagging internal links. Don't add UTM parameters to links between pages of your own site; they replace the visitor's original source in attribution reports and make the data less reliable.
  • Needing more detail. The tool doesn't add utm_term or utm_content. To tell two ads or two buttons in the same campaign apart, add something like &utm_content=banner_a by hand, before any # part.
  • Printing long links. Nobody types a tagged URL from a flyer. Convert it with the QR Code Generator instead, using a distinct source such as flyer.

To read the parameters of an existing tagged link, paste it into the URL Decoder.

Frequently asked questions

What happens if I leave Campaign name empty?
The link gets only utm_source and utm_medium, with no utm_campaign parameter. That is valid, but the visits won't be grouped under a campaign in your reports, so fill it in for anything you want to measure as a promotion.
Are UTM parameters case-sensitive?
In Google Analytics 4, yes. Use lowercase consistently so the same source isn't split across two rows.
What source and medium should I use for WhatsApp or Instagram links?
A common pattern is source=whatsapp or source=instagram with medium=social. Whatever you choose, use the same values every time.
Will the tags break a link that ends in a # section?
No. The builder places the tags before the # part, so example.com/sale#offers becomes example.com/sale?utm_source=instagram&utm_medium=social#offers, plus utm_campaign if you named one, and the page still opens at that section.
Do UTM parameters affect SEO?
They don't help rankings, and tagged URLs can create duplicate versions of a page. Use them only in external campaigns and keep a canonical tag on the landing page pointing to the clean URL.
Can I add utm_term or utm_content?
Not with this tool. Add them by hand, for example &utm_content=banner_a, placing them before any # part of the link.

Related tools

Embed this tool on your site

Paste it into any blog or website. Free, with a credit link.