Skip to content

What are UTM parameters?

UTM parameters are short tags on a link, such as utm_source and utm_medium, that tell GA4 where a visit came from. GA4 then files the visit under a channel. Without them, clicks from emails, texts and bios can land in Direct, where no channel gets credit.

By , Founder & CEOUpdated 6 min read

Run the numbers for your store: the free UTM builder.

UTM parameters are short tags on the end of a link, such as utm_source=newsletter and utm_medium=email, that tell Google Analytics where a visit came from. GA4 uses them to sort visits by source, medium, campaign and channel. If a link has none, GA4 can file the visit as Direct, as if the shopper typed your address.

UTM stands for Urchin Tracking Module, as Shopify's help spells it out. Each tag is a name and a value joined by an equals sign, added after a question mark. A tagged link looks like this: yourstore.com/?utm_source=newsletter&utm_medium=email&utm_campaign=autumn_sale.

GA4's help lists what each tag is for:

  • utm_source: the referrer, such as google or a newsletter.
  • utm_medium: the marketing medium, such as cpc, banner or email.
  • utm_campaign: the product, slogan or promo code, such as spring_sale.
  • utm_content: tells two creatives apart, like two buttons in one email.
  • utm_term: the paid keyword.
  • utm_id: the campaign ID, for matching cost data you upload.

GA4 says to always set the first three. Leave one out and reports show (not set) in its place.

Then GA4 turns source and medium into a channel, using fixed rules. A social site plus a medium like cpc, ppc or anything starting with paid becomes Paid Social. A medium of email becomes Email. A visit that no rule matches becomes Unassigned.

So a UTM is a label, not a measurement. It tells GA4 which door a visitor walked through. It cannot tell you whether the ad behind that door caused the sale.

What one store's data shows

One store's anonymised GA4 export, 1 January 2024 to 21 August 2026. It holds shares of revenue only: no ad spend, no order counts.

What the export showsShare of revenueSource cell
Direct, in last click, first click and touched views57.7%Channels sheet, Direct row
Paid Social, in all three views0.0%Channels sheet, Paid Social row
Organic Video, in all three views0.0%Channels sheet, Organic Video row
Journeys with 1 touch (0.5 days to buy)79.5%Journeys sheet, 1 touch row

Direct holds 57.7% of revenue on the Channels sheet, and it holds that share in every view. Direct is where GA4 puts a session when no referral source is available. That covers typed addresses and bookmarks, and also links that arrived with no tags.

On the Channels sheet, Paid Social and Organic Video sit at 0.0% in all three views. For this store, that zero has two possible readings. Either it ran no social ads or video in those weeks, or those visits arrived without a tag or referrer GA4 could sort. The export cannot say which. That is the uncomfortable part: without tags, a paid click and a free one can look the same.

On the Journeys sheet, journeys with 1 touch hold 79.5% of revenue and took 0.5 days to buy. When a journey has one touch, that touch's tags decide all of its credit. If the one touch carried no tags, the whole sale goes to whatever GA4 could see.

What the export cannot show is which links were tagged. It holds revenue shares by channel, not the URLs people clicked. Your own GA4 property can show that, and the steps below start there.

Why do so many visits still land in Direct?

Because tags fall off, or never get added. GA4's help names the usual suspects for (direct) / (none) traffic:

  • Links with no UTM parameters, such as a plain link in an email, a text or a bio.
  • Redirects that strip the parameters before the landing page loads.
  • URL shorteners, which can drop referral details.
  • Links in PDFs and other offline documents.
  • Ad blockers that interfere with the cookies GA4 uses to identify the source.

Google Ads plays by its own rule. When a click carries both a gclid and UTMs, GA4 takes source and medium from auto-tagging, not from your tags.

Spelling counts too. Parameter values are case sensitive, so Facebook and facebook become two rows in your source report. The channel rules are not case sensitive, so both rows still land in the same channel.

What can UTM parameters not tell you?

A tag describes the click that started a session. It says nothing about the ad someone saw last week and never clicked.

Tags also cannot settle arguments between tools. Shopify's marketing reports default to last non-direct click, which skips Direct visits whenever another channel is on the path. GA4's Traffic acquisition report describes each user's most recent session. Same tags, different rules, different totals.

Most of all, a tag cannot tell you what a channel caused. It records which door the buyer used, and the channel holding that door takes the bow. Whether the buyer would have come anyway is a separate question, and no tag answers it.

What to do this week

  1. Look for split rows. In GA4, go to Reports > Acquisition > Traffic acquisition and set the table to Session source / medium. Pass: each source you use appears once, spelled one way. Fail: the same source shows twice, like Facebook and facebook, so pick one spelling before the next campaign.
  2. Check Google Ads auto-tagging. In Google Ads, click Admin, then Account settings, then the Auto-tagging section. Pass: "Tag the URL that people click through from my ad" is ticked. Fail: it is unticked, so Google clicks may be processed as organic search; tick it and save.
  3. Match campaign names with Shopify. In Shopify admin, go to Analytics > Reports, filter the category to Marketing and open Performance by UTM campaign. Pass: the campaign names match the Session campaign values in GA4. Fail: a campaign shows in one tool only, which points to a redirect or a typo.

Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework

Sources, 1 October 2026: URL builders: Collect campaign data with custom URLs (Google). Default channel group (Google). Campaigns and traffic sources (Google). Traffic-source dimensions, manual tagging, and auto-tagging (Google). Understand (direct) / (none) traffic (Google). Traffic acquisition report (Google). About auto-tagging (Google). Add a Final URL suffix (Google). Marketing reports (Shopify).

Frequently asked questions

  • Are UTM parameters case sensitive?
    Yes, in reports. GA4 treats utm_source=google and utm_source=Google as different values, so one campaign can split into two rows. The channel rules are not case sensitive, so both rows still land in the same channel. Pick lowercase and keep it.
  • Which UTM parameters are required?
    GA4's help says to always set utm_source, utm_medium and utm_campaign. The rest, such as utm_content and utm_term, are optional and help you tell ads or links apart. If a required one is missing, reports show (not set) in its place.
  • Should I add UTM parameters to Google Ads links?
    Usually not, as long as auto-tagging is on. GA4 gives auto-tagged values priority for source and medium, so your UTMs would not change those. If you still want utm_content or utm_term for ad detail, add them once through a final URL suffix.

Go deeper: Causal attribution, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.