Skip to content
SEO Madmanby Adam Hafez
Free tool

UTM link builder

UTM link builder: add utm_source, utm_medium and utm_campaign to any URL, keep its query string and fragment, and copy the link. Free, in your browser.

Runs entirely in your browser. Nothing you enter is uploaded, logged or stored.

    Nothing you type here is sent anywhere; the link is built in your browser only.

    Key takeaways

    • Google Analytics Help says to always use utm_source, utm_medium and utm_campaign.
    • utm_term and utm_content are optional, and utm_content is for telling similar links in the same ad apart.
    • Analytics is case sensitive, so utm_source=google and utm_source=Google are different values.
    • Google's own best practice is to use lowercase as a standard practice.
    • Parameters follow the base URL after a question mark and are separated from each other with an ampersand.

    What it takes

    • The full page URL you want to link to, starting with https or http
    • Campaign source, medium and name, which are required
    • Optional campaign term and content

    More tools

    All of them free, all of them browser-only.

    Browse the tools

    How to use it

    1. 1Paste the destination URLUse the absolute URL of the landing page. If it already has a query string or a
    2. 2Fill the three required fieldsSource is where the traffic comes from, medium is the channel such as email or cpc, and campaign name is the individual campaign. The tool will not build a link without them.
    3. 3Add term and content if you need themTerm identifies paid search keywords. Content tells apart similar links inside the same ad or message.
    4. 4Keep lowercase values onAnalytics reports Email and email as separate values, so the toggle is on by default. Turn it off only if you need exact capitalization.
    5. 5Copy the tagged URLPress Copy URL and use the link in your campaign. Read any note under the box first, such as a replaced parameter.

    A UTM link builder tags a URL with campaign parameters, so that a visit from a newsletter, an ad or a partner post shows up in Google Analytics under its own source, medium and campaign. This one follows the rules in Google Analytics Help, runs in your browser, and sends nothing you type anywhere.

    What does it produce?

    One URL: your page address, then a question mark, then the parameters joined with ampersands. Google’s own example looks like https://www.example.com/?utm_source=email_campaign&utm_medium=email&utm_campaign=summer-sale.

    • utm_source. The advertiser, site or publication sending the traffic. Required.
    • utm_medium. The marketing medium, for example cpc, banner or email newsletter. Required.
    • utm_campaign. The individual campaign name, slogan or promo code. Required.
    • utm_term. Identifies paid search keywords. Optional.
    • utm_content. Differentiates similar content, or links within the same ad. Optional.

    Blank optional fields are left out of the link. Every value is trimmed, and spaces and other unsafe characters are percent-encoded.

    How are existing parameters kept?

    The destination URL may already carry a query string and a #fragment. The builder keeps every existing parameter exactly as you typed it and adds the UTM parameters after them. If the URL already holds a utm_ parameter of a name you are setting, the old pair is removed and a note says so, so the link never carries the same parameter twice. The fragment is moved to the very end, after the query string, which is where URL syntax puts it.

    Why lowercase values?

    Google Analytics Help states that Analytics is case sensitive: utm_source=google and utm_source=Google are different values, and that applies to each value you define. Its best practice list adds that keywords with different capitalization, such as Meta and meta, are treated as different values, and recommends lowercase as a standard practice. The toggle is on by default. Switch it off and the tool keeps your capitals, with a note that they will be reported separately.

    Worked example

    Start with https://www.example.com/pricing?plan=pro#compare, source Newsletter, medium email, campaign Spring launch, content header-link, and the lowercase toggle on. The tool writes:

    https://www.example.com/pricing?plan=pro&utm_source=newsletter&utm_medium=email&utm_campaign=spring%20launch&utm_content=header-link#compare

    The existing plan=pro stays first, the values are lowercase, the space in the campaign name is %20, and #compare is still last. Clear the source field and the box empties, with a note that utm_source is required.

    Common mistakes

    • Mixed capitalization. Email in one campaign and email in the next split your reports.
    • Missing required fields. A link with a source but no medium or campaign is incomplete by Google’s own rule.
    • A relative or scheme-less URL. The builder needs an absolute URL that starts with https or http.
    • Tagging by hand. Typing ? where the URL already has one breaks the link. The builder chooses the separator for you.

    Sources

    1. 1.Collect campaign data with custom URLs - Google Analytics HelpPrimary
    2. 2.URL builders: Collect campaign data with custom URLs - Google Analytics Help

    Frequently asked questions

    Which UTM parameters are required?

    Google Analytics Help says you should always use utm_source, utm_medium and utm_campaign. utm_term and utm_content are optional. This tool refuses to build a link until all three required fields have a value.

    Are UTM values case sensitive?

    Yes. Google Analytics Help states that Analytics is case sensitive, so utm_source=google is different from utm_source=Google, and the same holds for every value you define. The lowercase toggle in this tool is on by default for that reason.

    Should I use lowercase for UTM values?

    Google's best practice for UTM values is to use lowercase as a standard practice, because keywords with different capitalization are treated as different values. Turn the toggle off only when you need a value to keep its capital letters.

    What happens to a query string or fragment already on the URL?

    The tool keeps every existing parameter as typed, drops only a utm_ parameter it is about to set, and puts the new ones after them. A

    What does the tool do with spaces?

    It percent-encodes them, so a campaign called spring launch becomes spring%20launch inside the link. Google Analytics Help does not discuss encoding; this is standard URL encoding that keeps the link valid when you paste it into an email or an ad.