Free Tool
UTM builder
that keeps your data clean.
Generate campaign URLs with correct UTM parameters. Presets for the places founders actually share links — including AI sources. Values are lowercased for you. No signup.
Where the link lives: newsletter, chatgpt, twitter, partner-site.
The channel type: email, social, cpc, referral, ai.
The push this link belongs to: july-launch, black-friday.
Paid keyword or audience. Optional.
Which variant: cta-footer vs cta-hero. Optional.
Values are lowercased on blur — UTM values are case-sensitive in every analytics tool, so “Email” and “email” would split into two campaigns.
What each UTM parameter means
utm_sourceRequirede.g. newsletter, chatgpt, twitterThe specific place the link lives. Every analytics tool keys on it — a link without utm_source falls back to referrer guessing.
utm_mediumRecommendede.g. email, social, cpc, aiThe channel type. GA4 and most tools build their channel groupings (Email, Paid Search, Social) from this value.
utm_campaignRecommendede.g. july-launch, black-fridayThe named push this link belongs to, so you can compare campaigns within the same source and medium.
utm_termOptionale.g. revenue-attributionOriginally the paid keyword; useful for audience or targeting notes.
utm_contentOptionale.g. cta-hero, cta-footerWhich variant of the link was clicked — two buttons on the same page, or two creatives in the same ad set.
Three rules that keep UTM data usable
Lowercase everything
UTM values are case-sensitive downstream. "Email" and "email" become two campaigns, and your report splits in half. This builder lowercases on blur so it can't happen.
Pick one vocabulary and never improvise
Decide once: is it utm_source=twitter or utm_source=x? Write the convention down. Every synonym you improvise later becomes a permanent extra row in every future report.
Never tag internal links
UTM parameters on links between your own pages restart the visitor's session and overwrite the real acquisition source. Tag only links that live outside your site.
Tags label clicks. Attrifast attaches the money.
A UTM tag tells you a visit came from july-launch. It cannot tell you whether that visit paid. Attrifast joins every UTM campaign to Stripe payments server-side, so the campaign report shows revenue — not just sessions — for $15/mo.
See UTM-to-revenue tracking →UTM builder — frequently asked questions
What is a UTM builder?
A UTM builder is a tool that appends UTM parameters (utm_source, utm_medium, utm_campaign, utm_term, utm_content) to a landing-page URL so analytics tools can attribute the resulting visits to a specific campaign. This one is free, runs entirely in your browser, and requires no signup — enter a URL, fill in the parameters, and copy the generated link.
Which UTM parameters are required?
Only utm_source is strictly required — without it, analytics tools ignore the other UTM values and fall back to referrer detection. In practice you should always set utm_source, utm_medium, and utm_campaign together: source says where the link lives, medium says what kind of channel it is, and campaign lets you compare pushes within the same channel.
Should UTM values be lowercase?
Yes, always. UTM values are case-sensitive in GA4 and every major analytics tool, so "Email", "email", and "EMAIL" report as three separate campaigns and silently split your data. This builder lowercases values automatically when you leave each field. Use hyphens instead of spaces for the same reason — spaces encode as %20 and invite typos.
Do UTM parameters affect SEO?
Not when used correctly. UTM parameters are for links you share externally — emails, social posts, ads — not for internal links between your own pages (internal UTMs reset the visitor's session and corrupt attribution). Duplicate-content risk is handled by canonical tags, which nearly every site already sets. Never add UTM tags to internal navigation.
How do I track UTM campaigns to revenue?
UTM tags label the click; connecting that click to money requires an analytics tool that joins campaign data to payments. Attrifast does this natively: it reads UTM parameters on every visit and joins them to Stripe payments server-side, so each campaign shows the actual revenue it produced — not just sessions. That is the difference between "this campaign got 500 clicks" and "this campaign made $1,200".
What utm_source should I use for ChatGPT or Perplexity links?
When you share links in communities, GPTs, or AI-generated content, use utm_source=chatgpt or utm_source=perplexity with utm_medium=ai. AI engines themselves sometimes append their own utm_source when citing pages (ChatGPT appends utm_source=chatgpt.com). Attrifast recognizes these automatically and reports AI engines as a separate channel with revenue attached.
See what every UTM campaign actually earns
Attrifast joins UTM parameters to Stripe payments automatically. Revenue per campaign, per source, per channel — $15/mo flat.
Track campaign revenue →7-day free trial · $15/mo · cancel anytime