Bulk UTM builder
One campaign across four channels and three landing pages is twelve URLs, and building them one at a time in a single-URL tool is how inconsistent tagging starts. List your landing pages and your channel values, and get every combination generated at once — with the naming rules applied uniformly, which is the actual point.
How to use
- Paste your landing-page URLs, one per line. Existing query parameters on them are preserved.
- Fill in the UTM fields. Any field can hold several comma-separated values — every combination is generated, so three sources × two mediums × two landing pages is twelve rows.
- Leave a field empty to omit that parameter entirely rather than emit
utm_term=. - Keep Force lowercase and Replace spaces with hyphens on. This is the single highest-value thing the tool does — see below.
- Download .csv gives you a sheet with the URL and each parameter in its own column, ready for the campaign brief. Copy URLs gives you just the links.
Why lowercase and hyphens matter more than they look
Google Analytics treats UTM values as case-sensitive. utm_source=Newsletter and utm_source=newsletter become two separate rows in every report, and there is no way to merge them retroactively without a filter you will forget to maintain. The same goes for Summer-Launch versus summer-launch. One person capitalising a channel name in one email is enough to split a campaign in half.
Spaces are the second trap. A space in a UTM value is legal once encoded, but it arrives as %20 or + depending on who built the link, and those show up as different values. Hyphens avoid the whole question. Underscores work too, as long as you pick one and never mix — the UTM naming linter exists to check an existing set of links for exactly these inconsistencies.
On utm_medium specifically: GA4 derives its default channel groupings from it, and only recognises particular values — email, cpc, organic_social, paid_social, referral, affiliate, display, and a few more. Inventing your own (newsletter, facebook-ad) dumps the traffic into "Unassigned", which is the most common UTM mistake there is. Put the specific name in utm_source and keep utm_medium to the standard vocabulary.
FAQ
Is there a limit on combinations?
Generation stops at 5 000 URLs and says so. If you hit it, you almost certainly want fewer utm_content variants rather than a bigger cap.
What happens to UTM parameters already on my landing pages?
By default they are replaced, so you do not end up with two utm_source values. Tick Keep utm_* parameters already on the URL if the existing ones are deliberate — but be aware that duplicate UTM parameters resolve unpredictably across analytics tools.
Do I need utm_id?
Only if you are using GA4's campaign import or want to roll several link variants up under one campaign ID. It is ignored by Universal Analytics-era tooling.
How do I clean UTM parameters back off a URL?
The UTM cleaner strips them, and it handles click IDs like gclid and fbclid as well.