Short answer

A UTM generator is a tool that adds campaign parameters such as utm_source, utm_medium and utm_campaign to a link, so analytics can tell which ad, email or post sent each visitor. Convertica's free UTM generator builds the tagged URL in your browser, keeps existing query strings, encodes special characters and checks the medium against Google's channel rules.

  • Google says to always use utm_source, utm_medium and utm_campaign. Its own builder also accepts a campaign ID in place of the campaign name.
  • Values are case sensitive, so pick lowercase and one separator and keep to them.
  • The medium drives the default channel: a value outside Google's rules can leave the traffic Unassigned.
  • Never tag links between your own pages, because the tag takes the credit from the source that brought the visitor.
  • Clean UTMs let you read conversion rate by source, medium and campaign instead of one blended number.

UTM generator

Free to use, no sign-up. The link is built in your browser: what you type is not sent to Convertica or stored. It updates as you type.

Link and campaign

The page the link opens. A query string or #fragment already in it is kept.

Where the click comes from: google, newsletter, linkedin.

How the link is delivered: cpc, email, social.

One name for the whole promotion, the same in every channel.

Optional parameters

Tells two links in one campaign apart.

The paid keyword.

More parameters Google lists

The ID you use when you upload campaign data. Left exactly as typed.

The buying platform. Left exactly as typed.

Google says it is not currently reported in Analytics.

Google says it is not currently reported in Analytics.

Clean up the values

On by default, because values are case sensitive and Google recommends lowercase. Every change is listed in the result.

Built from the example values. Type your own and it updates.

Checks on this link

  • Channel Medium "email" matches Google's Email rule.
  • Note Cleaned up: utm_campaign "Spring Sale" to "spring-sale".

Bulk UTM builder

One row per link, up to 500 rows. Paste rows straight from a spreadsheet, or type them with commas.

Columns, in this order: website URL, source, medium, campaign, term, content. The last two are optional. A header row is skipped. If a value has a comma in it, paste tab-separated rows.

Bulk result

3 links built.

A header row, then your six columns and the tagged URL. A row that could not be built says ERROR and why, so the rows stay in line with yours.

What is a UTM generator?

A UTM generator is a tool that adds UTM parameters to a link. You give it a website URL and a few values, such as the source, medium and campaign, and it returns one tagged URL to use in an ad, email or post. When someone clicks it, analytics reads the values and reports the visit under that campaign.

UTM builder, UTM link generator and campaign URL builder are names for the same thing: Google calls its own the Campaign URL Builder. The link is nothing special. UTM parameters are ordinary query parameters, added after a question mark and separated by ampersands, as Google's Analytics help page on campaign URLs describes. The generator puts a link together like this:

tagged URL = website URL
           + ?  (or & when the URL already has a query string)
           + utm_source=...&utm_medium=...&utm_campaign=...
           + #fragment, if the URL had one

How to use the UTM generator

  1. Paste the website URL. The exact page the link should open. Leave any query string or #fragment in place.
  2. Enter the source. Where the click comes from, such as google, newsletter or linkedin.
  3. Enter the medium. How the link is delivered, such as cpc, email or social. The channel line in the result says what Google's default channel rules make of it.
  4. Name the campaign. One name for the whole promotion, the same in every channel.
  5. Add content or a term if they help. Content tells two links in the same campaign apart. Term is the paid keyword.
  6. Copy the tagged URL and test it. Open it once and check that the page loads and the parameters are still in the address bar.

The clean-up option is on by default. It lowercases the values and turns spaces into hyphens, because Google treats Email and email as two different values and recommends lowercase. It lists every change it makes, and it never touches a campaign ID, a source platform or a placeholder. Hyphen is the default separator for a reason: it keeps Google's own medium names intact. "Social media" becomes social-media, which is on Google's Organic Social list, while social_media is not. Turn the option off if your convention uses capitals.

What are UTM parameters?

UTM parameters are tags added to the end of a URL that tell an analytics tool where a visitor came from. Each one is a name and a value, such as utm_source=newsletter. Google Analytics reads them when the page loads and shows the values in its acquisition reports. UTM stands for Urchin Tracking Module, after Urchin, the predecessor of Google Analytics.

Google's help page lists nine parameters. It says to always use utm_source, utm_medium and utm_campaign, and its Campaign URL Builder marks source and medium as required and asks for a campaign name or a campaign ID.

The UTM parameters Google documents, and where each value shows up in Google Analytics 4
ParameterUse itWhat it identifiesGoogle's exampleDimension in GA4
utm_sourceAlwaysWhere the click comes from: the site, platform or list that carries the link.google, newsletter4, billboardSession source, Session manual source
utm_mediumAlwaysThe marketing medium, meaning how the link was delivered. It also drives the default channel.cpc, banner, emailSession medium, Session manual medium
utm_campaignAlwaysThe promotion the link belongs to: a product, slogan or promo code.spring_saleSession campaign, Manual campaign name
utm_idOptionalA campaign ID. Use the same ID you use when you upload campaign data.abc.123Campaign ID
utm_termOptionalThe paid keyword.running+shoesSession manual term
utm_contentOptionalTells apart two links in the same campaign, such as two buttons in one email or two ad creatives.toplinkSession manual ad content
utm_source_platformOptionalThe platform that directs the traffic, such as a buying platform that sets budgets and targeting.Search Ads 360Session manual source platform
utm_creative_formatOptionalThe type of creative.display, native, video, searchNot currently reported, Google says
utm_marketing_tacticOptionalThe targeting applied to a campaign.remarketing, prospectingNot currently reported, Google says

Required and optional UTM parameters

Google's wording is that you should always use utm_source, utm_medium and utm_campaign. If you set only some of them, Google warns that the missing ones appear as (not set) in reports. This builder asks for a source, a medium, and a campaign name or a campaign ID, and leaves every empty optional field out of the link.

Two of the nine, utm_creative_format and utm_marketing_tactic, are listed by Google with a note that they are not currently reported in Google Analytics properties. The builder includes them for completeness and says so when you use one.

UTM link examples: four cases a builder has to get right

A UTM link is the website URL, a question mark, then the parameters joined by ampersands. Most links are that simple. The four cases below are the ones that go wrong when links are tagged by hand. Each result was built by the same code as the tool above, and the addresses and names are made up.

A URL that already has a query string and a fragment

Start with a link that already carries a color filter, an old utm_source and a #reviews fragment:

https://www.example.com/shoes?color=blue&utm_source=old-campaign#reviews

Tagged for an unpaid Instagram post, it becomes:

https://www.example.com/shoes?color=blue&utm_source=instagram&utm_medium=social&utm_campaign=summer-launch#reviews

The color filter is kept. The old utm_source is replaced, not repeated. The new parameters are joined with an ampersand because the question mark is already there. The fragment stays last, because everything written after a # is part of the fragment, not the query string.

Spaces, an ampersand and an accented letter

A campaign called "Café & Bar Launch" cannot go into a URL as typed: the ampersand would be read as the start of another parameter. With the clean-up option off, the builder percent-encodes the value as Caf%C3%A9%20%26%20Bar%20Launch. Each space becomes %20, the ampersand %26 and the é %C3%A9. With clean-up on, it is lowercased and the spaces become hyphens first, giving caf%C3%A9-%26-bar-launch, which Analytics reads back as café-&-bar-launch.

A URL typed without https://

Type www.example.com/sale and the builder adds the scheme and says so:

https://www.example.com/sale?utm_source=google&utm_medium=cpc&utm_campaign=spring-sale

In a web page, a link without a scheme is read as a path on the current site, so it would not open yours.

A placeholder the ad platform fills in

Google's help page suggests dynamic values such as utm_campaign={{campaign.name}}, so the campaign name never has to be typed by hand. A placeholder only works if it reaches the ad platform untouched, so the builder leaves curly-brace placeholders unencoded and never lowercases them:

https://www.example.com/sale?utm_source=facebook&utm_medium=paid-social&utm_campaign={{campaign.name}}

Placeholder names differ by ad platform. Take them from the platform's own documentation.

UTM naming convention: a starter table by channel

A UTM naming convention is a short written rule for what goes in each parameter, so that every person and every tool tags links the same way. Without one, the same channel ends up under several spellings, and each spelling becomes its own row in reports. Copy the table below into a spreadsheet and change the names to yours.

A starter UTM naming convention. The values are examples; the last column is what Google's default channel rules say about the medium.
Where the link goesutm_sourceutm_mediumutm_campaignutm_contentDefault channel in GA4
Email newsletternewsletteremailspring-saleheader-buttonEmail
Search ad, tagged by handgooglecpcspring-saleheadline-aPaid Search
Social adfacebookpaid-socialspring-salevideo-15sPaid Social
Unpaid social postlinkedinsocialspring-salefounder-postOrganic Social
Affiliate or partner linkpartner-nameaffiliatespring-salereview-pageAffiliates
Display bannersite-namebannerspring-saleleaderboardDisplay
Link on another sitesite-namereferralspring-saleauthor-bioReferral
Text messagesms-listsmsspring-salereminderSMS
Podcast adpodcast-nameaudiospring-salemid-rollAudio
QR code on printflyerofflinespring-salefront-pageUnassigned, unless Google recognizes the source

The last column comes from Google's default channel group documentation. For the paid channels, Google also has to recognize the source: it keeps its own lists of search, social, shopping and video sites. The generator knows only the sites Google names as examples on that page: Google, Bing and Baidu for search, Facebook and Twitter for social, Amazon and eBay for shopping, and YouTube, TikTok and Vimeo for video. For any other source it says what the medium matches and leaves the source to Google's list.

A medium such as offline matches no rule, so that traffic is reported as Unassigned. That is not an error. You can still read it by source and medium, or give it a channel of its own in a custom channel group.

UTM best practices that keep the table working

  • Lowercase everything. Google says parameter values are case sensitive and recommends lowercase as standard practice.
  • Use one separator. Hyphens or underscores, never spaces, and the same one everywhere. In Google's own example, SpringSale and Spring_Sale count as two campaigns.
  • Give each platform one source name. Google's advice is one unique utm_source for each platform and a distinct one for each sub-platform, so Facebook and Instagram do not share a name.
  • Keep a fixed list of mediums. One per channel, chosen from the values Google's channel rules recognize. Do not invent a new medium for each campaign.
  • Use one campaign name across channels. The same utm_campaign in the email, the ad and the post lets you compare them in one report.
  • Write it down. A shared sheet of allowed values is the convention. Bulk mode above reads rows straight from one.

Get your free CRO audit

Enter your website and email and the audit starts right away. Watch it check your page live: eight checks, each scored out of 100, and three fixes you can make now.

Common UTM mistakes and how to avoid them

The most common UTM mistakes are tagging links between your own pages, spelling the same value more than one way, swapping source and medium, and using a medium that Google's channel rules do not recognize. None of them breaks the link. Each one quietly puts visits in the wrong row of a report, where the error is hard to spot later.

Never put UTM parameters on internal links

UTM parameters answer one question: how did this visitor reach the site? A tag on a banner, menu or button inside your own site overwrites the original source where it matters most. Google's documentation on campaigns and traffic sources says campaign values that arrive in the middle of a session are attached to the events that follow and used for event-based attribution. The sale is then credited to your homepage banner, not to the ad or email that brought the visitor. Measure internal banners and buttons with events instead.

Other mistakes the generator checks for

  • Mixed case and spaces. Email, email and e mail are three values. With clean-up off, the generator warns about capitals and spaces.
  • Source and medium swapped. The source names the sender (google), the medium the method (cpc). The generator flags a source such as cpc and a medium such as facebook.
  • A medium outside Google's rules. A medium such as newsletter or social_media matches no rule, so the visits can land in Unassigned. The channel line names the value Google expects.
  • An ad medium that is not paid. Google's paid pattern matches a medium that contains cp, such as cpc, the mediums ppc and retargeting, and any medium that starts with paid. It does not match remarketing, so an ad tagged google and remarketing falls under the Organic Search rule.
  • The word shop in a campaign name. Google's Shopping channel rules look for shop or shopping in the campaign name. The generator says when a name will match.
  • Values pasted already encoded. A value such as spring%20sale is encoded a second time and would show in reports with the code in it.

Mistakes no tool can catch

  • Personal data in a value. UTM values sit in the address bar and are stored in analytics. Never put a name, an email address or a customer ID in one.
  • A redirect that drops the query string. If the link passes through a redirect, click the finished link and check that the parameters are still in the address bar on the landing page.
  • Relying on hand tags for Google Ads. Google Ads tags its own clicks with a gclid parameter, and Google says GA4 gives that auto-tagging priority over manual tags. UTMs there are a fallback, not a replacement.

Where to find UTM data in Google Analytics 4

To see UTM data in Google Analytics 4, open Reports, then Acquisition, then Traffic acquisition. Google says this report shows Session source / medium, Session source, Session medium and Session campaign, which hold the values of utm_source, utm_medium and utm_campaign for each session. The same visits are also grouped by Session default channel group.

  • Term and content are in the manual dimensions: Session manual term holds utm_term and Session manual ad content holds utm_content.
  • The channel is worked out from your values by Google's rules, which is why the medium you choose matters. Google says the channel definitions are not case sensitive, although the values themselves are.
  • Page reports hide the tags. Google leaves UTM parameters out of the Landing page + query string and Page path + query string dimensions. They are in Page location.

The step after that is reading what each source does once it arrives. The guide to Google Analytics conversion rate in GA4 shows where to find key event rate by channel and by landing page.

Do visits from AI assistants need UTM parameters?

No. Google's default channel group has an AI Assistant channel, set from the referrer when it matches Google's list of assistants. Google names ChatGPT, Gemini, Deepseek, Copilot and Grok, and counts clicks from its own AI Overviews and AI Mode under Organic Search. Whether assistants can read your pages in the first place is a separate question, covered in the agent readiness checklist.

Why clean UTM tracking matters for conversion rate

Clean UTM tracking matters for conversion rate because it splits one blended number into the campaigns behind it. A site-wide conversion rate averages visitors who arrived with very different intent. With consistent source, medium and campaign values, the same report shows which traffic converts and which only visits.

One blended conversion rate, split by source and medium (made-up numbers to show the arithmetic, not a benchmark)
Session source / mediumSessionsConversionsConversion rate
google / cpc4,000601.50%
newsletter / email1,200665.50%
facebook / paid-social2,800140.50%
All three, blended8,0001401.75%

In this example the blended rate is 1.75%, which describes none of the three sources: newsletter / email converts at 5.50% and facebook / paid-social at 0.50%. If the newsletter links were untagged, or spelled three different ways, those visits would be scattered across other rows and the gap would be hard to see. Each row's rate is conversions divided by sessions, which the conversion rate calculator works out.

That split is one of the first things a conversion audit looks at: which sources, devices and pages bring visitors, and how each converts. A source that converts badly is not always bad traffic. Often the landing page does not match what the ad or email promised. Run the page a weak campaign lands on through the free landing page analyzer, or start with Convertica's free CRO audit, which checks the first screen, calls to action, forms, trust, mobile, speed and AI agent readiness.

How to build UTM links in Excel or Google Sheets

To build UTM links in a spreadsheet, put the website URL in column A and the source, medium and campaign in columns B, C and D, then join them with a formula that encodes each value. It suits a simple list. It does not replace an existing UTM parameter or keep a #fragment in place, which bulk mode above does.

=A2 & IF(ISNUMBER(FIND("?", A2)), "&", "?")
  & "utm_source=" & ENCODEURL(B2)
  & "&utm_medium=" & ENCODEURL(C2)
  & "&utm_campaign=" & ENCODEURL(D2)

ENCODEURL percent-encodes each value, so a space or an ampersand cannot break the link. It is in Google Sheets and in Excel for Windows; Microsoft says the function is not available in Excel for the web or Excel for Mac. To force lowercase, wrap each cell in LOWER, as in ENCODEURL(LOWER(B2)).

A tagged link tells you where a visit came from. These tools turn that into what the campaign cost and what it earned.

See all free tools and how they fit together.

UTM generator FAQ

Is this UTM generator free?

Yes. The UTM generator is free and needs no sign-up. It runs in your browser: the link is built on your own device, and what you type is not sent to Convertica or stored. Bulk mode is free as well.

What is the difference between a UTM generator and a UTM builder?

There is no difference. UTM generator, UTM builder, UTM link generator and campaign URL builder all name a tool that adds UTM parameters to a URL. Google calls its own the Campaign URL Builder. What differs between tools is what they check: this one keeps existing query strings, replaces old tags and checks the medium against Google's channel rules.

What does UTM stand for?

UTM stands for Urchin Tracking Module. Urchin was the web analytics product that came before Google Analytics, and the parameter names were kept. Today the term means the tags added to a URL, such as utm_source and utm_medium, that tell analytics which campaign sent a visitor.

Which UTM parameters are required?

Google says you should always use utm_source, utm_medium and utm_campaign. Its Campaign URL Builder marks source and medium as required and asks for either a campaign name or a campaign ID. The others, such as utm_term, utm_content and utm_id, are optional. Google warns that missing parameters show as (not set) in reports.

Are UTM parameters case sensitive?

Yes. Google's Analytics help says parameter values are case sensitive: utm_source=google is different from utm_source=Google, and each spelling becomes its own row in reports. Google recommends lowercase as standard practice. The generator lowercases values by default and shows what it changed.

Does the order of UTM parameters matter?

No. Google says you can add the parameters to a URL in any order. What matters is the syntax: a question mark before the first parameter, an equals sign between each name and its value, an ampersand between pairs, and any #fragment at the very end.

How do I find UTM source in GA4?

Open Reports, then Acquisition, then Traffic acquisition. Google says this report shows Session source / medium, Session source, Session medium and Session campaign, which hold your utm_source, utm_medium and utm_campaign values. Switch the report's dimension to the one you want.

Should I use UTM parameters on internal links?

No. UTM parameters describe how a visitor reached your site, so a tag on a link between your own pages replaces that answer with your own banner or menu. Google documents that campaign values arriving in the middle of a session are attached to the events that follow and used for event-based attribution, so your internal link takes the credit for the conversion.

Do I need UTM parameters for Google Ads?

Usually not. Google Ads auto-tagging adds a gclid parameter to each ad click and is on by default for new accounts, and Google says GA4 gives auto-tagging priority over manual tags. UTMs still matter for every other platform. If you do tag Google Ads by hand, Google suggests the source google and the medium cpc.

Do UTM parameters affect SEO?

A UTM-tagged address is a second URL for the same page, so a search engine can treat it as a duplicate. A canonical link on the page that points to the clean URL tells search engines which address to index; Google calls it a strong signal. Use tagged links in ads, emails and posts, not in your own navigation or sitemap.

How do you create UTM links in bulk?

Use bulk mode on this page. It takes one row per link, pasted from a spreadsheet or typed with commas, in the order website URL, source, medium, campaign, term, content. It returns every tagged URL as tab-separated text to paste back into a spreadsheet, up to 500 rows at a time.

Find out what is costing you conversions

Enter your website and email and the audit starts right away. Watch it check your page live: eight checks, each scored out of 100, and three fixes you can make now.