UTM builder
Build a tagged URL so you can track campaign traffic in Google Analytics.
Your tagged URL
Build a tagged URL so you can track campaign traffic in Google Analytics.
Your tagged URL
A UTM builder is a tool that constructs URLs with campaign tracking parameters (utm_source, utm_medium, utm_campaign, and others) so analytics platforms can attribute traffic to specific marketing efforts.
UTM stands for Urchin Tracking Module, a standard set of parameters that attach to any URL to identify the source, medium, and campaign of referring traffic. These parameters create a common language between your marketing channels (email, social media, paid ads, affiliates) and your analytics platform (Google Analytics, Fathom, Plausible, or similar).
When a visitor clicks a link containing UTM parameters, those parameters pass through to your analytics dashboard as query string data. This allows you to answer specific questions: Did this traffic come from your email newsletter or a paid social campaign? Which email subject line drove the most conversions? Which Facebook post generated sales, not just clicks?
Without UTM parameters, an analytics platform sees that traffic arrived from Facebook—but cannot distinguish between organic shares, paid ads, or a single viral post. UTM parameters fill that gap by storing the specific campaign context directly in the URL itself, ensuring accurate attribution.
The standard UTM parameters are utm_source (the referrer or platform), utm_medium (the marketing channel type), utm_campaign (the specific campaign or promotion name), utm_term (the keyword for paid search campaigns), and utm_content (a way to differentiate between similar links or A/B test variations).
A complete URL consists of several parts, and UTM parameters attach specifically to the query string—the section that comes after the ? symbol and before any # fragment.
A URL breaks down as follows: Protocol (https://, defining the connection method), Host (www.example.com, the domain), Path (/products/shoes, the page on the site), Query string (?utm_source=email&utm_medium=newsletter&utm_campaign=fall_sale, the tracking data), and Fragment (#reviews, which jumps to a page section—UTM parameters must come before this).
The query string can contain one or many parameters. Each parameter has a name (utm_source) and a value (email), separated by an equals sign. Multiple parameters are joined with & symbols. A complete example with all five standard parameters looks like this: https://www.example.com/product?utm_source=instagram&utm_medium=social&utm_campaign=summer_collection&utm_content=image_ad&utm_term=running_shoes
The order of parameters in the query string does not affect how analytics platforms read them. utm_source=instagram&utm_medium=social produces identical data as utm_medium=social&utm_source=instagram. However, a consistent order makes URLs easier to read when humans review them. UTM parameters are case-sensitive: utm_source=instagram is not the same as utm_source=Instagram from an analytics perspective. Both will appear as separate values in your reports, fragmenting your data. This is why naming conventions matter and why you must enforce lowercase across your entire team.
| Parameter | Purpose | Common Examples |
|---|---|---|
| utm_source | Identifies where the traffic originated | facebook, instagram, twitter, linkedin, newsletter, blog_partner |
| utm_medium | Describes the marketing channel or method | email, social, cpc, display, affiliate, organic, paid_social |
| utm_campaign | Names the specific promotion or initiative | summer_sale, black_friday_2024, product_launch, back_to_school |
| utm_term | Identifies the paid search keyword (if applicable) | running shoes, best practices, budget travel |
| utm_content | Differentiates similar links or A/B test variations | image_ad_v1, button_top, cta_footer, new_customer |
utm_source identifies where the traffic originated. Use one unique utm_source per distinct platform. If you run campaigns on both Facebook and Instagram, use separate values (facebook and instagram) rather than a single social value. This lets you compare performance between platforms in your reports later. A vague utm_source=social prevents you from seeing which platform drove results; utm_source=instagram tells you exactly where this traffic came from and lets you measure platform-specific ROI.
utm_medium describes the marketing channel or method, sitting between source and campaign to clarify the interaction type. If utm_source identifies the platform, utm_medium identifies how the traffic was directed. For example, utm_source=facebook and utm_medium=paid_social tells you this was a paid ad on Facebook, while utm_source=facebook and utm_medium=organic tells you this was an unpaid share or mention. Use specific values like email and social rather than broad terms like marketing that obscure the actual channel.
utm_campaign names the specific promotion, product, or initiative driving the traffic. This is where you connect traffic back to business objectives. Use the exact campaign name you use in other systems (email marketing platforms, ad networks, project management tools). If your team calls the initiative 'Summer 2024 Sale' internally, use summer_2024_sale as your utm_campaign value so reports match your operational language. Vague values like utm_campaign=promo split your data across multiple rows for different promotions, making it impossible to see the true performance of each.
utm_term is reserved for identifying paid keywords in search campaigns. If you run a Google Ads campaign targeting the keyword 'running shoes,' you would use utm_term=running shoes. This parameter helps you see which keywords drove traffic and which converted to leads or sales. Most advertising platforms can populate this automatically using dynamic parameters (e.g., {keyword}), which eliminates manual entry and prevents typos. If you are not running paid keyword-based campaigns, you do not need to use utm_term.
utm_content differentiates between similar links, creative variations, or A/B test versions. Common uses include link position (cta_button_top, cta_button_footer, sidebar_link), creative variation (image_ad_v1, video_ad_v2, text_ad_v3), or audience segment (new_customer_message, repeat_customer_message). If an email sends two different call-to-action buttons that both point to the same destination URL, using different utm_content values lets you measure which button drives more clicks. Without this parameter, both clicks appear as a single traffic source in analytics, hiding which creative performs better.
The single most important rule: consistency matters more than format. An inconsistent tagging strategy splits your data across multiple rows in analytics, making your reports unreliable and your insights wrong. Choose a naming standard and document it so your team follows it everywhere, every campaign, every channel.
| Rule | Bad Example | Good Example |
|---|---|---|
| Use lowercase only | utm_source=Facebook, then facebook (creates two rows) | utm_source=facebook (consistent) |
| Use hyphens or underscores, never spaces | utm_campaign=summer sale (becomes summer%20sale) | utm_campaign=summer_sale |
| Use specific, recognizable values | utm_campaign=campaign01 | utm_campaign=summer_sale_2024 |
| Maintain format across all parameters | utm_source=facebook, utm_medium=Email, utm_campaign=SUMMER_SALE | utm_source=facebook, utm_medium=email, utm_campaign=summer_sale |
| Use the same campaign name everywhere | utm_campaign=summer_sale in ads, summer-sale in email | utm_campaign=summer_sale (consistent across all channels) |
Establish specific rules for each parameter and document them in a shared place (Google Doc, wiki, or Slack). Example: utm_source always uses platform name in lowercase (facebook, instagram, linkedin), utm_medium is always one of: email, social, cpc, display, affiliate, organic, or paid_social, utm_campaign uses the format keyword_description_year (summer_sale_2024, product_launch_august), utm_term uses lowercase full keyword phrases, and utm_content uses format variation_type_version (image_ad_v1, button_top). Reference these rules every time someone builds a UTM link, and include them in onboarding documentation for new team members.
UTM parameters work on any URL and any traffic source. No special setup or configuration is needed—simply add the parameters to your link and share it. Your analytics platform automatically reads and reports on them when visitors click, with no additional configuration required.
UTM parameters pass through to your analytics platform automatically whenever a visitor clicks a link containing them. No additional configuration is needed—the parameters are simply part of the URL string itself.
A UTM builder is a tool that constructs URLs with campaign tracking parameters (utm_source, utm_medium, utm_campaign, utm_term, and utm_content) so you can measure which campaigns, channels, and traffic sources drive visitors to your website. Instead of manually typing query strings and risking typos that fragment your data, a UTM builder generates correctly formatted URLs automatically.
UTM stands for Urchin Tracking Module. The term comes from Urchin, an early web analytics platform that Google acquired in 2005. Google integrated Urchin's tracking system into Google Analytics, and the UTM parameter system has remained the standard for campaign tracking across analytics platforms ever since, used by Google Analytics, Fathom, Plausible, and nearly every other analytics tool.
The best UTM builder for you depends on your workflow and team size. Google's official Campaign URL Builder (part of Google Analytics) is free and trusted by the platform creator, making it a reliable choice for straightforward URL building. Other tools like UTM.io and Terminus offer features like saved templates, team workspaces, naming convention enforcement, and Chrome extensions that help larger teams scale. Free web-based builders work well if you build URLs occasionally; paid tools with automation features help teams that build hundreds of URLs monthly and need consistency across campaigns.
Yes. UTM parameters are a free standard supported by every major analytics platform. Adding UTM parameters to your URLs costs nothing. Most analytics platforms (Google Analytics, Fathom, Plausible, and others) read and report on UTM data without additional fees. Some paid services like URL shorteners and link management platforms offer UTM builders as part of their product, but the UTM parameters themselves and basic UTM builders are completely free.