SchemaValid
ENDE

UTM Campaign Builder — Build Tracking URLs

Add UTM parameters to any link so Google Analytics 4 can tell you which campaign, channel and ad brought each visitor. Fill in the fields, watch the URL build live, then copy it.

Try an example

Campaign details

The page visitors land on. Existing query parameters are kept — the UTM tags are appended after them.

Channel presets

One click fills source and medium. These are common conventions, not a rule — adjust them to match how your team already names channels.

Where the traffic comes from. Appears as "Session source" in GA4. Required.

The type of channel. Appears as "Session medium" in GA4 and drives the default channel grouping. Required.

The campaign this link belongs to. Appears as "Session campaign" in GA4. Required.

Optional. The paid keyword, mainly used with paid search (cpc).

Optional. Tells two links in the same campaign apart, e.g. two buttons or ad variants.

Optional. A campaign ID that ties the link to a row in the imported campaign table in GA4.

Formatting
Replace spaces with

Live preview

Fill in at least one UTM field to see the tracking URL.

Save as template

Saved locally in this browser only — nothing leaves your device (§25 TDDDG). Use the ✕ to delete a template.

Already have tagged links? Read them out, spot errors and fix inconsistent spellings with the UTM checker

Never put UTM parameters on links between pages of your own site. When a visitor clicks an internal UTM link, Analytics starts a fresh session and credits your own domain as the source — the original channel that first brought them (Google, a newsletter, an ad) is lost. Only tag links that point to your site from somewhere else.

What is a UTM campaign URL?

UTM parameters are small tags you add to the end of a link — utm_source, utm_medium, utm_campaign and a few optional ones. When someone clicks the link, Google Analytics reads those tags and files the visit under the right campaign, channel and source.

Without them, most campaign traffic lands in buckets like "direct" or "referral" and you cannot tell which newsletter, ad or post actually worked. A consistent set of UTM tags is what makes campaign reporting in GA4 trustworthy.

The five parameters (plus utm_id)

utm_source names where the traffic comes from (google, newsletter), utm_medium the channel type (cpc, email, social), and utm_campaign the specific campaign. These three are required — GA4 needs them to attribute a visit.

utm_term and utm_content are optional. utm_term holds the paid keyword; utm_content tells two links in the same campaign apart. utm_id is an optional campaign ID that links the URL to imported campaign cost data in GA4.

Naming conventions that stay clean

Pick one spelling and stick to it: always lowercase, use a single separator (a hyphen or an underscore) instead of spaces, and keep a short list of allowed source and medium values. Analytics is case-sensitive, so "Facebook" and "facebook" become two rows in your report — inconsistent naming is the fastest way to make campaign data unreadable.

For the exact fields GA4 reads, see Google's reference on custom campaign URLs.

Also useful

Running the same campaign across languages? Generate the matching tags with the hreflang generator

Frequently asked questions

What are UTM parameters?
UTM parameters are labelled tags added to the end of a link, such as ?utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale. Analytics tools read them to record which campaign and channel sent a visitor, so you can measure what your marketing actually delivers.
Which UTM parameters are required and which are optional?
Three are effectively required for Google Analytics to attribute a visit: utm_source, utm_medium and utm_campaign. utm_term, utm_content and utm_id are optional and only worth adding when you need the extra detail — a paid keyword, a way to tell two links apart, or a campaign ID.
Why should I lowercase everything?
Analytics treats values as case-sensitive text, so "Facebook", "facebook" and "FaceBook" become three separate sources in your reports. Forcing everything to lowercase (the default here) keeps one campaign in one row instead of scattering it across several.
Hyphen or underscore between words?
Either works — pick one and use it everywhere. Spaces do not belong in a URL, so a word gap has to become a hyphen (summer-sale) or an underscore (summer_sale). Consistency matters far more than the choice itself; mixing both splits the same campaign into different rows.
Why should I not tag internal links?
A UTM link starts a new session and sets the source to whatever you put in utm_source. On a link between your own pages, that overwrites the real source that first brought the visitor — Google, a newsletter, an ad — with your own site. You lose the attribution you were trying to measure. Only tag links that reach your site from outside.
Where do I see the UTM data in GA4?
In Google Analytics 4, campaign data appears under Reports → Acquisition → Traffic acquisition, where you can add "Session source / medium" and "Session campaign" as dimensions. It also feeds the default channel grouping. Data is not instant — allow up to a day for new campaigns to show up fully.
What is utm_id?
utm_id is an optional campaign ID. Its main job is to connect a link to a campaign you have imported into GA4 with cost data, so paid spend lines up with the sessions the link generated. If you are not importing cost data, you can safely leave it empty.
How long can a campaign URL be?
There is no official maximum — URL length is not fixed by the standards. In practice, very long URLs can be truncated or rejected by some browsers, servers or email clients, so keep them reasonably short: use concise campaign and content names and avoid piling on extra parameters. What counts as "too long" depends on the browser and server handling the link, not on a single fixed number.
What is a sensible naming convention?
Write down a small set of rules and share them with everyone who builds links: lowercase only, one separator for spaces, a fixed list of allowed source and medium values, and a clear pattern for campaign names (for example season_year_offer). A short, enforced convention is what keeps months of campaign data comparable.

Related tools