Skip to content
Free tools Let's talk

Free tool

UTM builder and campaign URL generator

Paste the page you are sending people to, pick where the click comes from and name the campaign. You get a tagged link ready for an ad, an email or a QR code, and a check of the channel Google Analytics 4 will file it under before you spend a cent.

1Your page

The landing page. An existing query string and #anchor are kept.

2The campaign

Start from a preset

Who sends the visit: a site, a platform, a list.
The type of traffic. GA4 uses it to pick the channel.
The promotion, launch or newsletter issue.
Paid keyword or audience.
Tells two ads or two links apart.
Only needed if you import cost data into GA4 and join it on the campaign ID.

Links are built in your browser. The URL and campaign names you type are only shared with DEMARCA if you choose to include them in an enquiry and submit the form.

Beyond the tool

Tagged links tell you what works. We run the campaigns behind them.

We plan, design and run paid social, Google Ads and email campaigns, with tracking set up before the first click and reports in plain numbers.

Get a campaign proposalA fixed-price proposal within one working day

The guide

UTM Builder: the complete guide

5 referencesMethodology and limitsUpdated 15 October 2026

Built and maintained by the designers and marketers at DEMARCA, an award-winning design studio in Portugal.

On this page
  1. How to build a UTM link
  2. The UTM parameters, one by one
  3. How GA4 sorts tagged links into channels
  4. Naming rules that keep reports clean
  5. Where to paste the link
  6. Query strings, anchors and special characters
  7. Methodology and limits
  8. Sources
  1. Paste the landing page. Use the exact page people should land on, not your home page by default. If the address already has a query string (?size=10) or an anchor (#pricing), leave them in: the builder adds the tags in the right place.
  2. Pick a preset or fill in the source and medium. The presets fill values that Google Analytics 4 sorts into the channel you expect, such as facebook and paid_social for Meta ads. Change the source to match the real site or list.
  3. Name the campaign. One name per promotion, used on every link of that promotion, in every channel. Add a term or content value when you need to compare keywords, ads or buttons inside the same campaign.
  4. Check the channel and copy. The result shows the GA4 channel the link will land in and anything that would split or lose data. Copy the full link for a post, an email or a QR code, or only the parameters for an ad platform's tracking field.

A UTM builder is also called a campaign URL builder or a UTM generator: they all do the same job, which is adding a few labelled values to the end of a link so your analytics can tell which campaign brought each visit. Google's own builder sits on its developer tools site; this one adds the GA4 channel check, the presets and the clean-up rules.

The UTM parameters, one by one

There are five classic parameters, plus utm_id, which GA4 also reads. Only the first three are needed on every link, and they work best together.

ParameterAnswersExampleNeeded
utm_sourceWho sent the visitgoogle, facebook, newsletterAlways
utm_mediumWhat kind of traffic it iscpc, paid_social, emailAlways
utm_campaignWhich promotion it belongs tospring_sale_2026Always
utm_termWhich keyword or audiencerunning_shoesFor paid search and audience tests
utm_contentWhich ad, image or linkvideo_a, footer_linkWhen one campaign has several ads or links
utm_idWhich campaign, by IDspring26When you import cost data into GA4

In GA4 the values appear as session source, session medium and session campaign in the Traffic acquisition report, and as manual term and manual ad content in explorations. A link with a source but no medium, or no campaign name, still counts, but leaves gaps that show up as (not set) in the reports.

GA4 groups every visit into a default channel, such as Paid Social, Email or Organic Search, by reading the source and medium against a fixed set of rules published by Google. The rules run in order and the first one that matches wins. You cannot edit the default rules, so the only way to land in the right channel is to tag the link the way the rules expect. The common cases:

SourceMediumGA4 default channel
facebook, instagram, linkedinpaid_social or cpcPaid Social
facebook, instagram, linkedinsocialOrganic Social
google, bingcpcPaid Search
youtubecpc or paid_videoPaid Video
An ad network or a publisherdisplay or bannerDisplay
newsletteremailEmail
A partner's nameaffiliateAffiliates
smssmsSMS
An unknown sitecpc or anything starting with paidPaid Other
qr_codeprintUnassigned

Two details catch people out. First, the paid channels need both halves: a paid medium (one that contains cp, equals ppc or retargeting, or starts with paid) and a source that Google's own list knows as a search, social, video or shopping site. A paid medium with a source GA4 does not recognize lands in Paid Other. Second, there is no channel for print or offline traffic. Visits from a QR code on a flyer show up as Unassigned in the default channel report, which is expected: find them by session source, or create a custom channel group for offline campaigns.

The check in the builder follows Google's published rules and matches the source against a short list of the most common sites. Google's full list has hundreds of entries, so a niche site may be recognized by GA4 even when the builder says Paid Other.

Naming rules that keep reports clean

  • Lowercase everything. GA4 keeps values exactly as written, so Facebook, facebook and FB become three rows of the same traffic. The builder lowercases values for you unless you switch it off.
  • Underscores, not spaces. A space becomes %20 in the link, which is valid but hard to read and easy to retype wrong. Pick underscores or hyphens and stick with one.
  • Write the list down. Agree on the allowed sources and mediums once, in a shared sheet, and use them every time. Most broken reports come from three people tagging the same channel three ways.
  • Never tag internal links. A UTM link from your own menu or blog to another of your pages starts a new session with that campaign, and the visit loses its real source. Tags are for links that live outside your site.
  • Do not tag Google Ads when auto-tagging is on. Auto-tagging adds a gclid to every ad click, and a linked GA4 property reads the campaign, ad group and keyword from it. Manual tags are for every other platform, or for accounts that turn auto-tagging off.
PlatformWhat to pastePreset
Meta Ads Manager (Facebook and Instagram ads)The parameters only, in the URL parameters field of the ad, so the website URL stays cleanMeta ads
LinkedIn Campaign ManagerThe full tagged link as the destination URL of the adLinkedIn ads
Google AdsUsually nothing, auto-tagging covers it. If it is off, the parameters in the final URL suffixGoogle Ads
Email platformsThe full link on each button and link. Check first whether the platform already adds its own tags, to avoid two setsNewsletter
Organic posts and biosThe full link, or a short link that redirects to itOrganic social
Print, packaging, signsA QR code generated from the full tagged linkQR code

Ad platforms can fill values in for you. Placeholders in curly braces, such as {{campaign.name}} in Meta Ads Manager or {keyword} in Google Ads, are left exactly as you type them, without lowercasing or encoding, so the platform can replace them when the ad runs. The GA4 channel check then depends on the value the platform fills in, and the builder says so.

Query strings, anchors and special characters

A link has a fixed order: the address, then the query string after ?, then the anchor after #. UTM tags belong in the query string. If your page already has one, the tags are added after it with &, and the existing values are kept as they are. If it has an anchor, the anchor stays at the very end, where the browser expects it; a tag placed after the # never reaches your analytics. If the address already carries UTM tags, the builder replaces them with the new values and tells you, so the link never has two sources.

Characters with a meaning in a URL, such as &, ?, #, = and accented letters, are percent-encoded inside each value, so a campaign called Q&A night cannot break the link. The builder also warns about click IDs (gclid, fbclid) copied by accident from a visited page, and about values that look like a full web address where a short name belongs.

Methodology and limits

Building the link
The URL is split into address, query string and anchor. An address without http:// or https:// gets https://, and an address with no path gets a /. Spaces in the address are encoded as %20. The existing query string is kept byte for byte, except any utm_source, utm_medium, utm_campaign, utm_term, utm_content or utm_id already in it, which are replaced. The new tags follow in the order source, medium, campaign, ID, term, content, then the anchor.
Values
With the clean-up option on, each value is trimmed, lowercased and its runs of spaces become one underscore. Each value is then encoded with the standard JavaScript encodeURIComponent rules from RFC 3986. Text in curly braces ({{...}} or {word}) is copied as written for ad platform placeholders.
GA4 channel
The source, medium and campaign name are checked, ignoring case, against the default channel group rules in Google's Analytics Help, in Google's order: Cross-network, Paid Shopping, Paid Search, Paid Social, Paid Video, Display, Paid Other, Organic Shopping, Organic Social, Organic Video, Organic Search, Referral, Email, Affiliates, Audio, SMS, Mobile Push Notifications, then Unassigned. Google matches sources against its own lists of search, social, video and shopping sites; the builder uses a short list of common names from each, so it can say Paid Other or Unassigned for a site GA4 knows.
Privacy
Links are built in your browser and nothing is stored. The page counts anonymous events (a link built, copied or tested) without cookies and without the link or its values. Only if you choose to include your result in the quote form and submit it do we receive a one-line summary of the link you built, so we know what you were working on.
Limits
One link at a time. No link shortening and no QR code here. The channel check covers the default channel group only; custom channel groups in your property can file the same link elsewhere.

Sources

FAQ

Questions people ask

What does a UTM builder do?

It adds tracking tags to the end of a link: utm_source, utm_medium and utm_campaign, plus the optional utm_term, utm_content and utm_id. When someone clicks the link, Google Analytics reads the tags and records which campaign, channel and ad brought the visit. Without them, a click from a newsletter or a QR code often shows up as direct traffic.

Which UTM parameters do I need?

Source, medium and campaign, on every link and always together. A link missing one of them still counts, but leaves (not set) rows in the reports. Term and content are optional: use term for a paid keyword or audience, and content to tell two ads, images or buttons in the same campaign apart. utm_id only matters if you import cost data into GA4.

Do these links work with GA4?

Yes. GA4 reads the same utm_ parameters as Universal Analytics did, and also utm_id. Visits appear in the Traffic acquisition report by session source, medium and campaign. GA4 also files each visit under a default channel, such as Paid Social or Email, from the source and medium, which is why the builder shows the channel your link will land in before you use it.

How do I add UTMs to Meta ads?

Click the Meta ads preset, name the campaign, then use Copy parameters only and paste the result into the URL parameters field of the ad in Ads Manager. The preset uses facebook as the source and paid_social as the medium, which GA4 files under Paid Social. For Instagram-only ads, change the source to instagram. Meta placeholders such as {{campaign.name}} are kept as written.

Do I need UTMs for Google Ads?

Usually not. With Google Ads linked to GA4 and auto-tagging on, every ad click carries a gclid parameter, and GA4 reads the campaign, ad group and keyword from it. Manual UTMs are for every other channel: Meta, LinkedIn, email, partners and QR codes. If you have turned auto-tagging off, the Google Ads preset gives you google and cpc for the final URL suffix.

Can I build many UTM links at once, like in Excel?

This builder makes one link at a time, with the checks. For dozens of links, build and check the first one here, then copy the pattern into a spreadsheet: with the page in column A and lowercase values in columns B to D, a formula like =A2&"?utm_source="&B2&"&utm_medium="&C2&"&utm_campaign="&D2 gives the rest. It only works for pages without a query string or an anchor, and for values without spaces or special characters.

What does a good UTM link look like?

For example: https://example.com/offer?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale. Short lowercase values with underscores, a medium GA4 recognizes, and one campaign name used on every link of the same promotion. GA4 keeps values exactly as written, so Email and email would show up as two rows.

Should I add UTM tags to links on my own website?

No. A tagged link from your menu, a banner or a blog post to another of your own pages starts a new session with that campaign, and the visit loses the source it really came from. Tag only links that live outside your site: ads, emails, social posts, partner sites and print. To measure clicks inside your site, use events in GA4 instead.

Is the UTM builder free?

Yes, with no sign-up and no limit. Links are built in your browser: the address and the campaign names you type are not sent to a server or saved.

More free tools

See all 52 tools

Campaigns and ads

Let's make something matter.

We plan, design and run paid social, Google Ads and email campaigns, with tracking set up before the first click and reports in plain numbers. Independent design and marketing studio in Portugal. Senior-led projects, transparent pricing and clearly defined deliverables for international clients.

  • A reply from a designer within one working day
  • A fixed-price proposal before any work starts
  • Senior-led work with clearly defined deliverables
  • Clients in Portugal, across Europe and further afield

Request a quote

Prefer email? hello@wearedemarca.com