Step 1: Start with the destination URL
Every campaign URL begins with the page the visitor should land on — the full address including the protocol, e.g. https://example.com/spring-sale. Use the final landing page, not a redirect, whenever possible: some redirect setups drop query parameters, which silently strips your UTM tags before analytics ever sees them.
If the destination already has its own query string — for example a product page with ?color=blue — keep it. UTM parameters are appended after the existing ones. This is one of the two places hand-built links most often break, which is why a builder that joins with & automatically is worth using.
Step 2: Choose your parameters
Decide which of the five standard parameters each link needs:
- Always set:
utm_source,utm_medium,utm_campaign. These three are what analytics documentation recommends on every campaign URL, and they are the dimensions campaign reports are built from. - Add when useful:
utm_termfor the paid-search keyword behind an ad click. - Add when useful:
utm_contentto distinguish links that share a URL and source — two buttons in one email, two creatives in one ad set.
More parameters are not better. Each extra tag is another value to keep consistent; tag what you will actually report on.
Step 3: Write values your future self can read
Values should be lowercase, descriptive, and consistent. utm_campaign=spring_sale is self-explanatory in a report six months from now; utm_campaign=camp1 is not. Multi-word values need a separator — pick hyphens or underscores and never mix them, because spring_sale and spring-sale are recorded as different campaigns.
Settle the vocabulary before you build: one exact name per platform (utm_source), a short controlled list of channel types (utm_medium), and a campaign naming pattern that includes enough context to stay unique, such as a date or quarter for recurring pushes. Our naming conventions guide covers the rules in depth.
Step 4: Assemble and encode the query string
The mechanics are straightforward but unforgiving:
- The first parameter follows a
?appended to the destination:https://example.com/page?utm_source=newsletter. - Every further parameter is joined with
&:?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale. - If the destination already contains a
?, all UTM parameters join with&— never add a second?. - Each value is URL-encoded: spaces become
%20(or+in form encoding), and reserved characters like&,=,#and?inside values are encoded so they cannot break the query string. - If the URL has a fragment (
#section), parameters go before it.
A campaign URL builder handles all five rules for you — that is the entire job of the tool on this site's homepage. Building by hand is fine for a single link, but encoding mistakes compound fast across a campaign.
Step 5: Test before you share
A tagged URL is only useful if your analytics actually records it. Before a major send:
- Open the tagged link in a private browser window and confirm it loads the right page.
- Check your analytics real-time or debug view to confirm the visit arrives with the expected source, medium and campaign values.
- Verify the values appear exactly as typed — no double-encoding (
%2520instead of%20), no truncated parameters. - Confirm no redirect in the chain strips the query string.
This two-minute check catches the overwhelming majority of tagging failures, and it is far cheaper than discovering a broken tag after an email has gone to your whole list.
Worked example
Destination: https://example.com/guides/seo-basics. You are sharing it in your newsletter as part of a spring promotion, and the email has two links to the page — one in the hero, one in the footer.
- Hero link:
https://example.com/guides/seo-basics?utm_source=newsletter&utm_medium=email&utm_campaign=spring_promo&utm_content=hero_link - Footer link:
https://example.com/guides/seo-basics?utm_source=newsletter&utm_medium=email&utm_campaign=spring_promo&utm_content=footer_link
Same source, medium and campaign — so the campaign report stays unified — with utm_content separating the two placements. In your analytics you can now answer both "how did the spring promo perform" and "did the hero or footer link earn more clicks."
Remember: UTM tags belong on links you share outside your site. Never add them to internal navigation links — they overwrite the visitor's original campaign source in your analytics.
Build it instead of hand-writing it
The free LinkTag builder assembles, encodes and previews your campaign URL live — then copies it in one click.
Open the UTM builder