What does the UTM builder do, and who is it for?

UTM parameters are query fields that tell your analytics tool which campaign, source and medium brought a visitor. This tool appends utm_source, utm_medium, utm_campaign and the optional utm_term and utm_content to a destination URL without breaking what is already there.

It is built for newsletter senders, agencies scheduling social posts, paid media managers preparing ad links and small businesses printing QR codes on flyers. Nothing is sent to a server: parsing, encoding, CSV handling and QR drawing all happen in your browser.

How to use it

  1. In single mode, paste the destination URL. It must start with http or https.
  2. Fill in source (for example newsletter), medium (for example email) and campaign; these three are required.
  3. Optionally add a term for paid keywords and content to tell apart links inside the same campaign.
  4. Press “Generate”. You get the final URL, a parameter table, notes and a GA4 channel suggestion.
  5. If you like the suggested spellings, press “Apply suggestions”; the tool never rewrites your values on its own.
  6. Copy the URL, download CSV or TXT, or press “Create QR” and save the code as PNG.

For many links, switch to bulk mode and paste CSV or load a file of up to 1 MiB.

UTM parameters

ParameterStatusWhat it describes
utm_sourceRequiredWhere the traffic comes from: google, instagram, newsletter
utm_mediumRequiredMarketing medium: cpc, email, social, display
utm_campaignRequiredCampaign name: spring-sale, launch-2026
utm_termOptionalPaid search keyword
utm_contentOptionalWhich link or creative inside the campaign

Leaving an optional field empty removes the same parameter if the URL already carried it, and the table marks it as removed so nothing disappears unnoticed.

Naming conventions

GA4 can report Email and email as separate rows. When the builder sees uppercase letters or inner spaces it shows a lowercase, underscore-separated suggestion, but it keeps your value as typed. Leading and trailing spaces are always trimmed.

Non-ASCII characters are not transliterated. The Turkish value yaz ışık becomes yaz+%C4%B1%C5%9F%C4%B1k through UTF-8 percent-encoding and decodes back to yaz ışık in reports. Agree on one spelling per source and medium across your team and reuse it in every campaign.

Existing query and fragment

The URL is parsed with the browser's URL parser and every UTM pair is encoded with URLSearchParams, so no hand-built string can break escaping. Parameters that are not UTM keys stay in the same order with the same spelling, and a fragment such as #pricing stays at the end.

If the link already contains utm_source, no second copy is added: the value is replaced in place and the old value is shown in a note. Repeated keys, or keys written as UTM_SOURCE, are collapsed into a single parameter.

GA4 channel suggestions

The channel shown with each result is a simplified reading of Google's published GA4 default channel group rules, rule set dated 28 September 2026. Treat it as a rule-compliance hint, not a guaranteed assignment: GA4 uses a much longer source category list, and auto-tagging or rule updates can change the outcome.

source / mediumLikely channel
google / cpcPaid Search
facebook / paid_socialPaid Social
partner / displayDisplay
newsletter / emailEmail
instagram / socialOrganic Social
blog.example / referralReferral
partner / affiliateAffiliates

Bulk example

In bulk mode each row is one link. The first row may be a header: url, source, medium, campaign, term, content and their utm_ prefixed names are recognised in any order. Without a header the columns are read in that order. Quoted fields, commas inside values and semicolon delimiters are supported.

url,source,medium,campaign,content
https://example.com/?a=1#pricing,newsletter,email,spring sale,top-banner
"https://example.com/shop?colour=blue,red",instagram,social,"spring, summer",story

The first row becomes https://example.com/?a=1&utm_source=newsletter&utm_medium=email&utm_campaign=spring+sale&utm_content=top-banner#pricing. Invalid rows are never skipped quietly: their row number and reason appear in the table and in the export. In the CSV export, cells starting with =, +, - or @ get a leading apostrophe so spreadsheet software does not run them as formulas.

QR codes

QR codes are drawn with a small MIT-licensed library that ships with this page and is loaded only when you press “Create QR”. No QR service or CDN is contacted. In bulk mode only the row you pick is rendered. Codes use medium error correction and can be saved as PNG. If a URL is too long for a QR code, the link output keeps working and a clear QR error is shown.

Limits and common mistakes

  • Input URLs are limited to 2,048 characters, each UTM value to 500 characters and bulk mode to 500 rows; nothing is truncated, you get an error instead.
  • The tool never opens the destination, so it cannot tell whether the page exists or redirects.
  • Tagging internal links with UTM can restart attribution for a session; keep UTM for external campaign links.
  • Redirects that drop the query string also drop your UTM values, so tag the final URL.

Frequently asked questions

Which UTM parameters are required?

Here utm_source, utm_medium and utm_campaign are required. utm_term and utm_content are optional, and leaving them empty removes old values from the URL.

Can I use non-English characters?

Yes. Values are kept with UTF-8 percent-encoding and decoded by analytics tools. There is no automatic transliteration, so pick one spelling as a team and stick to it.

Is the GA4 channel suggestion exact?

No. It follows a dated, simplified rule table. GA4's real assignment also depends on its full source list, auto-tagging and later rule changes.

Will my existing parameters break?

No. Non-UTM parameters keep their order and spelling and the fragment is preserved. Only UTM keys are added, replaced or removed.

Is my link sent anywhere to make the QR code?

No. The QR code is drawn in your browser with a local library and downloaded as PNG.

Published: · Updated: