UTM builder

Tracked links your team will name the same way twice. Set the convention once, pick source and medium from presets, and the URL writes itself. Your links stay on this page. We do not see them, and neither does anyone else.

Paste a link below and it fills in here as you type.

0 PARAMS LOWERCASE UNDERSCORE 0 CHARS

The link

Anything already in the address, a query string or a #fragment, is kept. Every value below passes through the convention on the right before it lands in the URL.

Campaign utm_campaign, the thing you will search for later
Term and content, optional

The convention

Change a rule and the URL rewrites itself. Copy the rule sheet and the whole team gets the same rules.

Case
Separator
Spaces
Allowed characters
a-z 0-9 _

Anything else is dropped, and the ledger says which characters went.

Lint

Fill in a link, a source and a medium and this list says what GA4 will do with them.

Links this session

Every link you copy or add lands here, stored in this browser only. Download them as a CSV for the campaign sheet.

Nothing yet. Copy a link or press Add to the table and it lands here.

Why medium is the field that breaks reports

GA4 sorts every session into a default channel, Paid Search, Organic Social, Email and so on, by reading utm_source and utm_medium against a fixed set of rules. Source is mostly matched against Google's own lists of search, social, video and shopping sites, so it is hard to get wrong. Medium is matched against exact words and short patterns, and that is where links go astray. A newsletter tagged medium=social lands in Organic Social. A Facebook ad tagged medium=facebook lands in Unassigned, because no rule knows that word. Two people writing cpc and CPC get one channel but two rows in the source/medium report, since dimensions keep their case even though the channel rules ignore it. Pick a short list of mediums, write them down, and the channel report starts telling the truth.

The default channels, summarised

These are Google's definitions for manually tagged traffic, read top to bottom; the first rule that fits wins. The rules are not case sensitive. "Paid" means the medium matches ^(.*cp.*|ppc|retargeting|paid.*)$, which covers cpc, cpm, cpa, ppc, retargeting, paid_social and paidsearch alike.

ChannelWhat has to be true
Cross-networkCampaign name contains cross-network.
Paid ShoppingSource is on the shopping list, or the campaign name contains shop or shopping, and the medium is paid.
Paid SearchSource is on the search list and the medium is paid.
Paid SocialSource is on the social list and the medium is paid.
Paid VideoSource is on the video list and the medium is paid.
DisplayMedium is one of display, banner, expandable, interstitial, cpm.
Paid OtherMedium is paid and nothing above matched.
Organic ShoppingSource is on the shopping list, or the campaign name contains shop or shopping.
Organic SocialSource is on the social list, or medium is one of social, social-network, social-media, sm, social network, social media.
Organic VideoSource is on the video list, or medium contains video.
Organic SearchSource is on the search list, or medium is exactly organic.
AI AssistantMedium is exactly ai-assistant.
ReferralMedium is one of referral, app, link.
EmailSource or medium is email, e-mail, e_mail or e mail.
AffiliatesMedium is exactly affiliate.
AudioMedium is exactly audio.
SMSSource or medium is exactly sms.
Mobile Push NotificationsMedium ends with push, or contains mobile or notification, or source is firebase.
UnassignedNothing above fit.

The verdict in the slab runs these rules over your values. Note that Display sits above Paid Other, so cpm files as Display, and that a source Google does not list, say partner or qr, can only reach a paid channel through Paid Other. This page checks the source against the common names on Google's lists, not the full lists, so an obscure site may be classified differently in your property.

What stays here

Everything on this page is plain JavaScript in your browser. There is no server building the link, so there is nothing to send it to. The table is stored in this browser only. The only thing this page records is that a link was built, how many parameters it had and which separator you chose. Never the link.

Sources

The channel rules are from Google's GA4 default channel group definitions, which also link the full search, social, video and shopping source lists. The parameter names and their meanings are from Google's guide to collecting campaign data with custom URLs.