๐Ÿ”—

Free UTM Link Builder

Build trackable campaign URLs in seconds. Presets for Google Ads, Facebook, LinkedIn, Instagram, and email. Works with Google Analytics, GA4, Plausible, and Fathom.

๐Ÿ“Š GA4 Compatible๐ŸŽฏ 10 Presetsโšก Live Preview๐Ÿ”ค Auto-slugify๐Ÿ†“ Completely Free

Where the traffic comes from

The marketing channel

The specific campaign name

Optional

Lowercases, replaces spaces with underscores, strips punctuation.

Fill in URL, source, medium, and campaign to generate a tracked link.

Naming conventions

utm_sourcelowercase, single word: google, facebook, newsletter
utm_mediumchannel category: cpc, social, email, referral, video
utm_campaignsnake_case identifier: spring_sale, q2_launch
utm_termpaid search keyword (Google Ads)
utm_contentad variation: header_cta, footer_cta, image_a
utm_idGA4 campaign ID linking to a campaign object

Track Every Campaign, Cleanly

Spend money on traffic? Then you should know exactly which channel, campaign, and ad it came from. UTMs are how.

๐ŸŽฏ

10 Channel Presets

Google Ads, Facebook, LinkedIn, Instagram, Twitter / X, TikTok, YouTube, newsletter, cold outreach, affiliate โ€” click a preset and the source and medium fill in correctly.

๐Ÿ”ค

Auto-clean Parameters

Automatically lowercases, replaces spaces with underscores, and strips punctuation. Stops the โ€œFacebookโ€ vs โ€œfacebookโ€ vs โ€œFBโ€ mess in your analytics reports.

๐Ÿ“Š

GA4 Compatible

Includes the modern utm_id parameter introduced in GA4 โ€” link your tracked URLs to a campaign object for richer attribution.

โšก

Live Preview

No submit button. The tracked URL updates as you type, and a parameter breakdown shows exactly what you'll send to your analytics.

๐Ÿ“‹

One-Click Copy

Tap once and the full URL is on your clipboard โ€” ready to paste into your ad platform, scheduling tool, email, or social post.

๐Ÿ”’

100% Private

Everything runs in your browser. We don't see your campaign names, destination URLs, or anything else you type. Nothing is logged.

Who Uses This Tool?

Anyone who runs paid ads, sends marketing emails, or wants to know which channel drives results.

๐Ÿ“ฃ

Marketers

Tag every paid ad, every newsletter link, every social post with consistent UTMs โ€” and finally see which channels are actually driving conversions.

๐Ÿš€

Founders

Run your own outreach and ads? Track them properly so you know which $100 of ad spend is bringing in customers and which is wasted.

๐Ÿ“ง

Email Senders

Tag your newsletter links so you can measure email-driven traffic separately from social and search in Google Analytics or your favourite analytics tool.

๐Ÿค

Agencies

Build clean tracking URLs for clients and stop spending Monday morning rebuilding broken UTMs from copy-pasted Excel sheets.

Frequently Asked Questions

What are UTM parameters?

UTM (Urchin Tracking Module) parameters are tags added to the end of a URL โ€” like ?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale โ€” that tell your analytics tool where the visitor came from. Google Analytics, GA4, Plausible, Fathom, and most marketing platforms all read these tags automatically.

Which UTM parameters are required?

Three are essential: utm_source (where the traffic came from), utm_medium (the channel category), and utm_campaign (the specific campaign). The other three โ€” utm_term, utm_content, and utm_id โ€” are optional and used for more granular tracking.

What's the difference between utm_source and utm_medium?

Source is the specific origin (google, facebook, newsletter). Medium is the broader channel category (cpc, social, email). So a Google search ad has source=google + medium=cpc. A Google Display ad has source=google + medium=display. Same source, different medium โ€” that's how you separate paid search from display in your reports.

Should UTM parameters be lowercase?

Yes. UTM values are case-sensitive in Google Analytics, so โ€œFacebookโ€ and โ€œfacebookโ€ appear as two separate sources. Always lowercase, always use underscores instead of spaces. The auto-clean toggle here does this automatically.

Should I use UTMs on internal links on my own site?

No โ€” never. Adding UTMs to internal navigation overwrites the original traffic source attribution, making it look like everyone came from the internal click rather than the real entry point. Only use UTMs on links pointing to your site from external campaigns.

What is utm_id and do I need it?

utm_id is a newer parameter used by GA4 to link tracked URLs to a campaign object in your analytics setup. It lets you import cost data and reconcile spend against revenue at the campaign level. Most small teams don't need it โ€” utm_source / medium / campaign cover 95% of attribution needs.

Will UTM parameters slow down my site or hurt SEO?

No. UTM parameters are just query strings โ€” they don't affect page load and don't hurt SEO. Search engines ignore them. The only risk is if Google indexes a page with UTM parameters in the URL โ€” to prevent that, add canonical tags on your pages (most platforms do this automatically) and don't use UTMs on internal links.

Should I shorten the tracked URL?

For social media posts where character count matters or where a long URL looks ugly, yes โ€” pass the tracked URL through a shortener like Bit.ly or Rebrandly. The UTM parameters are preserved through the redirect and your analytics still attributes correctly. For email and ad platforms, you usually don't need to shorten.

A Practical Guide to UTM Tracking

UTM tracking sounds technical but the core idea is simple: when you send people to your site from any external place โ€” an ad, a tweet, an email โ€” you tag the link so your analytics tool knows where that visitor came from. Done consistently, this turns โ€œwhere is our traffic coming from?โ€ from a guess into a precise answer.

The Five Parameters Explained

utm_source. The specific origin of the click. Examples: google, facebook, newsletter, partner_blog. This is the most granular โ€” every distinct source you care about gets its own value.

utm_medium. The category of marketing channel. The conventional values are: cpc (paid search and paid social), social (organic social posts), email (newsletters and outreach), referral (affiliate and partner links), display (banner ads), video (YouTube and similar). Stick to these standard values for your dashboards to make sense.

utm_campaign. The name of the specific campaign. Use snake_case (spring_sale_2026, q2_product_launch) so the value is one word, machine-readable, and consistent.

utm_term. Used mainly for paid search keywords โ€” the actual word the user searched for. Google Ads can populate this automatically with the {keyword} dynamic insertion token.

utm_content. Used to distinguish variants within the same campaign โ€” different ad creatives, A/B test versions, or button placements. Example values: header_cta, footer_cta, image_a, image_b.

A Naming Convention That Survives the Year

The biggest failure mode of UTMs isn't technical โ€” it's human. Three people on the same team tag links three different ways, and after six months your analytics dashboard has โ€œFacebookโ€, โ€œfacebookโ€, โ€œFBโ€, and โ€œfb-adsโ€ all as separate sources. Suddenly your Facebook channel report shows four lines instead of one, and reporting becomes a nightmare.

Lock down a convention up front and document it somewhere everyone can see:

  • All UTM values lowercase, no spaces, underscores instead of hyphens.
  • utm_medium is restricted to a closed list: cpc, social, email, referral, display, video, affiliate.
  • utm_source uses the platform name as written by the platform itself: google, facebook, linkedin, instagram, tiktok, twitter.
  • utm_campaign always includes a year or quarter prefix or suffix so dated campaigns don't collide.

The auto-clean toggle in this tool enforces most of the rules automatically โ€” but a shared spreadsheet of approved values for your team is the only reliable long-term defence against UTM drift.

Common Patterns by Channel

Google Ads (search): source=google, medium=cpc, campaign=brand_search_2026, term=keyword, content=ad_variant. Most Google Ads accounts have auto-tagging enabled with a gclid parameter โ€” if you use auto-tagging, you typically don't need manual UTMs on top.

Facebook / Instagram Ads: source=facebook (or instagram), medium=cpc, campaign=campaign_name, content=ad_creative_name. Always tag manually โ€” Facebook does not auto-tag for Google Analytics.

LinkedIn Ads: source=linkedin, medium=cpc, campaign=audience_segment, content=creative_variant. Especially important to tag manually because LinkedIn frequently shows up as โ€œDirectโ€ otherwise.

Newsletters and email outreach: source=newsletter (or specific_list_name), medium=email, campaign=send_topic_or_date, content=link_position. Tag every link separately if you want to know which CTA in the email gets the click.

Affiliate and partner links: source=affiliate, medium=referral, campaign=partner_name. Lets you attribute revenue back to the specific partner in your analytics.

Where UTMs Stop Being Enough

UTMs are great for first-touch attribution โ€” they tell you which channel a session started on. But they don't persist across visits, don't handle multi-touch attribution, and don't connect to revenue without an integration with your CRM or e-commerce platform. For SMB and mid-market marketing, UTM data is usually enough. For larger operations with multi-month sales cycles, you'll eventually want to layer UTMs into a real attribution model (linear, time-decay, data-driven) in GA4 or a dedicated attribution tool.

Start with UTMs. Get them right and consistent. The rest comes later.

โ˜•