Free tool · no signup

UTM builder

Build clean, consistent campaign URLs that GA4 will actually group properly — with a bulk mode that generates a link for every network at once.

Campaign details

Your tracking URL

https://www.schedura.ai/free?utm_source=instagram&utm_medium=social&utm_campaign=spring_launch
Existing query parameters preserved

Why links get double-counted

GA4 treats Instagram and instagram as two different sources, and spring launch becomes spring%20launch. Keeping everything lowercase with underscores is the whole fix — that is what the checkbox does.

In short

What are UTM parameters and which do I need?

UTM parameters are tags on the end of a URL that tell analytics where a visitor came from. Three are required: utm_source, utm_medium and utm_campaign.

The two optional ones — utm_content and utm_term — are for distinguishing creatives and paid keywords. Use them only when you will actually read them.

The formula

A tagged campaign URL

https://example.com/page ?utm_source=instagram &utm_medium=social &utm_campaign=spring_launch

Lowercase, underscores instead of spaces, and the same campaign name on every link in the campaign. That is the whole discipline.
The bug

Why your channel report has the same source three times

GA4 compares UTM values as raw strings. Instagram, instagram and IG are three different sources as far as it is concerned, and it will happily report them as three separate rows for months.

The damage is not cosmetic. Each row carries a fraction of the real numbers, so every channel looks weaker than it is, and any comparison between channels is wrong. Spaces do the same thing in a different way — spring launch becomes spring%20launch and sits next to the clean version in your reports.

Both problems have the same one-line fix: force lowercase, replace spaces with underscores, and never deviate. The checkbox in the builder above does exactly that.

Taxonomy

Agree the medium list once, then never argue about it

Source can be as granular as you like — it is a label. Medium is different: it is the axis your reports aggregate on, so it needs to be a short, fixed list everyone uses.

A workable set for most teams is social for organic, paid_social for anything boosted, cpc for search ads, email, referral and affiliate. Six values, written down, applied by everyone.

Campaign is where discipline pays off most, because it is the field people improvise. Pick a pattern — 2026_q3_launch — and use it identically across every network in the campaign. The bulk mode above exists to make that automatic rather than a matter of everyone remembering.

Careful

Never tag your own internal links

Adding UTM parameters to a link between two pages of your own site starts a new session and overwrites the original attribution. The visitor who arrived from Instagram becomes a visitor from whatever you tagged the internal link with, and the campaign that actually earned the traffic gets no credit.

UTM parameters belong on links pointing into your site from somewhere else — a social post, an email, an ad, a partner page. For tracking behaviour inside your site, use events instead.

One more: make sure your pages carry a self-referencing canonical tag. It stops tagged URLs being indexed as separate pages, which is the only way UTM parameters can genuinely cause an SEO problem. Once tagging is clean, the ROI calculator finally has trustworthy revenue attribution to work from.

FAQ

Common questions

What are UTM parameters?

UTM parameters are tags added to the end of a URL that tell your analytics where a visitor came from. There are five: utm_source (the platform), utm_medium (the channel type), utm_campaign (the campaign name), and the optional utm_content and utm_term. Google Analytics reads them automatically — no setup required beyond using them consistently.

Which UTM parameters are required?

Source, medium and campaign. Without all three, GA4 cannot group the traffic properly and it usually ends up lumped in with direct or referral traffic. Content and term are optional and only worth using when you genuinely need to tell two creatives or placements apart.

Are UTM parameters case sensitive?

Yes, and this is the single most common way UTM tracking breaks. GA4 treats Instagram, instagram and INSTAGRAM as three separate sources, splitting one channel across three rows in every report. Forcing everything to lowercase — which this builder does by default — eliminates the problem entirely.

What is the difference between source and medium?

Source is where the traffic came from — instagram, facebook, newsletter. Medium is the type of channel — social, paid_social, email, cpc. Keep medium to a short fixed list your whole team uses; that is what makes reports aggregate cleanly. Source can be as granular as you like.

Do UTM parameters hurt SEO?

Not when used properly on links pointing to your site from elsewhere. They can cause duplicate-content confusion if tagged URLs get indexed, which is why every page should have a self-referencing canonical tag. Never put UTM parameters on internal links between pages of your own site — that resets the original attribution and destroys the data you were trying to collect.

Should I shorten UTM links?

For visible links yes, since the tagged URL is long and ugly. Use a shortener that passes the parameters through rather than stripping them, and check one before running a campaign on it. For anything hidden behind a button or a link-in-bio page, the length does not matter.