UTM Guides

    UTM Parameters: The Complete 2026 Playbook

    UTM parameters are five query-string tags that tell analytics where a visit came from. They work with one lowercase, hyphenated convention; templates included.

    LinkPilot Team · The people who build and run LinkPilot at TetraCore, LLC · Updated · About LinkPilot

    UTM parameters are five query-string tags (utm_source, utm_medium, utm_campaign, utm_term, utm_content) that tell an analytics tool where a visit came from. They work when every link follows one lowercase, hyphenated convention and fail when they do not, so governance matters more than memorising the names. Build the tags with the UTM builder and read them back in link click analytics.

    What are the five UTM parameters?

    utm_source, utm_medium, utm_campaign, utm_term and utm_content: where the traffic came from, through what kind of channel, for which initiative, on which paid keyword, and which variant. They are ordinary query-string parameters in the sense of RFC 3986, section 3.4, so any tool that reads a URL can read them. The table decodes each.

    | Parameter | Purpose | Example | | -------------- | -------------------------------- | ---------------------- | | utm_source | Where the traffic comes from | linkedin | | utm_medium | The channel type | social, email, cpc | | utm_campaign | The named initiative | q2-launch | | utm_term | Paid keyword (paid search only) | link+shortener | | utm_content | Variant / placement / creative | hero-cta, v2 |

    If you only enforce one rule, enforce lowercase, no spaces, hyphens only. Half of all "weird analytics anomalies" are just a stray capital letter.

    How does GA4 read UTM parameters?

    Google Analytics 4 documents nine parameters, not five: the five above plus utm_id, utm_source_platform, utm_creative_format and utm_marketing_tactic. Google's own guidance is that utm_source, utm_medium and utm_campaign should always be included whenever you tag a URL, and that every relevant parameter should be set so reports do not fill with "(not set)".[1] In practice the first three are the ones every tool reads, utm_id matters if you upload cost data to match campaigns, and the last three are for teams that already have the basics under control.

    The parameters are read from the landing URL at the start of a session, which has two consequences. A short link in front of the tagged URL does not change anything, because the redirect delivers the full destination URL, parameters included. And a parameter typo is permanent: analytics tools record what arrived, so utm_medium=Email and utm_medium=email stay two mediums forever.

    A worked example

    A newsletter promoting a Q2 launch, with the primary button and a text link tagged separately:

    https://example.com/launch?utm_source=newsletter&utm_medium=email&utm_campaign=q2-launch&utm_content=primary-cta
    https://example.com/launch?utm_source=newsletter&utm_medium=email&utm_campaign=q2-launch&utm_content=text-link
    

    Build both with the UTM builder so the spelling is identical, shorten each one so the email stays readable, and send. A week later the campaign report shows q2-launch with two content rows, and the short links' own click analytics show which row people clicked before the destination's analytics ever loaded, which is the number ad blockers cannot remove.

    A UTM governance system that actually sticks

    1. Pick a builder, not a spreadsheet. Spreadsheets drift. A builder with validation enforces the conventions automatically.
    2. Standardize medium values. social, email, cpc, display, referral, affiliate, partner. That's the list.
    3. Use a campaign naming convention. <quarter>-<theme>-<channel> works well: q2-launch-paid.
    4. Audit weekly. Pull your utm_source distinct list. Anything weird? Fix it now before it pollutes the next quarter.

    Try it free, no signup

    UTM Builder

    Build campaign-tagged URLs in seconds.

    Open tool

    Templates by channel

    Email

    utm_source=newsletter
    utm_medium=email
    utm_campaign=q2-launch
    utm_content=primary-cta
    

    LinkedIn organic

    utm_source=linkedin
    utm_medium=social
    utm_campaign=q2-launch
    utm_content=hero-image
    
    utm_source=google
    utm_medium=cpc
    utm_campaign=q2-launch
    utm_term={keyword}
    utm_content={adgroupid}-{creative}
    

    Podcast read

    utm_source=podcast-marketing-against-the-grain
    utm_medium=referral
    utm_campaign=q2-launch
    utm_content=midroll
    

    What to never do

    • Don't put UTMs on your homepage's internal navigation. You'll overwrite organic source attribution.
    • Don't use UTMs on indexable inbound links — search engines will index the parameterized URL as a duplicate.
    • Don't track campaign IDs only — humans need to read the value six months from now.

    Common mistakes, and the fix for each

    • Mixed capitalisation. Email, email and EMAIL become three mediums. Fix: a builder that lowercases on the way out, and a weekly look at the distinct values.
    • Spaces and punctuation in values. q2 launch becomes q2%20launch in one tool and q2+launch in another. Fix: hyphens only.
    • Source and medium swapped. utm_source=email&utm_medium=newsletter reads backwards in every report. Fix: medium is the channel type from the short list above; source is the specific property.
    • One link reused across placements. The email button and the LinkedIn post share a URL, so the report cannot say which one worked. Fix: one tagged link per placement, even when the destination is the same.
    • No campaign value. Source and medium alone group every email you ever sent into one row. Fix: always set utm_campaign, per Google's own guidance.[1]
    • UTMs stripped by a redirect. Some redirect services drop the query string. Fix: test the short link once and check the landing URL still carries the parameters; the redirect checker shows the final URL.

    In front of the UTM, so the parameters survive every paste and the copy stays clean. UTMs are ugly; wrap them in a branded short link so the social copy stays readable and the parameters survive every paste, scrape, and forward.

    That combination — a clean short link in front, a governed UTM on the back — is the foundation of every modern attribution stack.

    References

    [1] Google Analytics Help. Collect campaign data with custom URLs. https://support.google.com/analytics/answer/10917952. Checked 22 October 2026.

    [2] Google. Campaign URL Builder (the reference implementation of the parameter set). https://ga-dev-tools.google/campaign-url-builder/. Checked 22 October 2026.

    [3] IETF. RFC 3986: Uniform Resource Identifier (URI): Generic Syntax, section 3.4 Query. https://www.rfc-editor.org/rfc/rfc3986#section-3.4.

    Tools for this article

    Frequently asked questions

    Run smarter links with LinkPilot

    Tracking, UTMs, QR codes, AI insights, and white-label reporting — in one workspace. Free to start.

    Create your free account

    Read next