Why are my UTMs not showing in GA4?
Usually because the tags never reached GA4 intact, or GA4 filed them where you are not looking. Redirects and shorteners strip them, Google Ads auto-tagging overrides them, unknown mediums land in Unassigned, and Realtime only shows how users first arrived. Lost tags usually turn into Direct.
By Joris van Huët, Founder & CEOUpdated 7 min read
Run the numbers for your store: the free UTM builder.
Usually because the tags never reached GA4 intact, or GA4 filed them where you are not looking. Redirects and link shorteners can strip them. Google Ads auto-tagging overrides them. A medium GA4 does not recognise lands in Unassigned. And Realtime shows how users first arrived, not your new campaign. Check Traffic acquisition a day or two later.
Most fix lists stop at the link: a question mark before the first tag, ampersands between the rest, no typos. That catches the tags that never left your hands. It misses the ones that arrived and were filed somewhere else.
Google's help points you to the Traffic acquisition report for UTM values, under Session source, Session medium and Session campaign. Look anywhere else and a working tag can pass for a broken one.
- User acquisition keeps the first source. Its dimensions start with First user, and Google's help says those values stay the same as people return. A loyal customer who clicks today's email still sits under whatever found them first.
- Realtime works the same way. Google's help says Realtime is about how you first acquired users. A brand-new visitor only shows in its First user source card after normal processing.
- Google Ads clicks follow the gclid. With auto-tagging on, GA4 uses the auto-tagged values for source, medium and campaign. Google's help says GA4 has no override option.
- An unknown medium lands in Unassigned. That is the value GA4 uses when no channel rule matches. A paid mention on a partner's blog tagged utm_medium=sponsored usually ends up there.
- A tag clicked mid-visit changes nothing. GA4 does not start a new session for a new campaign. Click your own link in a tab where you were already browsing the shop, and the session keeps its old source.
- Some reports drop UTMs on purpose. Landing page + query string leaves them out. Google's help says they go to the Page location dimension instead.
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 shows | Share of revenue | Source cell |
|---|---|---|
| Direct, in last click, first click and touched views | 57.7% | Channels sheet, Direct row |
| Journeys with 1 touch (0.5 days to buy) | 79.5% | Journeys sheet, 1 touch row |
| Journeys with 2 to 3 touches (12.5 days to buy) | 12.2% | Journeys sheet, 2 to 3 touches row |
Lost tags do not leave a gap in GA4. They leave a wrong label, and the usual label is Direct. Google's help lists missing UTM parameters, redirects that strip them and URL shorteners among the causes of (direct) / (none).
GA4 also treats Direct as a last resort. Its attribution models give Direct credit only when the path to the sale holds nothing but direct visits. A direct return after a tagged visit keeps the tagged source.
So the Direct row is revenue from journeys where GA4 never learned a source. On the Channels sheet, Direct holds 57.7% of this one store's revenue in last click, first click and touched alike. A share that stays put in all three views fits journeys that showed GA4 no other channel.
That row is where a stripped or untagged click would land. The export cannot say how much of that 57.7% is lost tags and how much is people typing the address.
Each lost tag costs a lot in this export. On the Journeys sheet, journeys with 1 touch hold 79.5% of revenue and took 0.5 days to buy. In a one-visit journey, the tag on that click is the only record of where the buyer came from. Lose it, and the whole sale moves to Direct, with no later visit to correct the record.
Journeys with 2 to 3 touches hold 12.2% of revenue on the Journeys sheet and took 12.5 days to buy. Those buyers came back. A tagged click on a return visit shows under its own campaign in Traffic acquisition. In User acquisition, the same buyers still sit under their very first source.
What the export cannot show is which links lost their tags. It holds revenue shares by channel, not campaign names or landing URLs.
Why doesn't a working link settle it?
Because a clean link only proves the tags left your hands. It does not prove GA4 credited them. Three common tests mislead.
The first is the open session. GA4 keeps one source per session, and a session ends after 30 minutes of inactivity by default. A test click inside an open visit changes nothing.
The second is Realtime. It reports first-user dimensions with limited attribution, and Google's help sends you to the Acquisition reports for accurate attribution.
The third is a Google Ads ad with UTMs added. GA4 files those clicks under google / cpc and the Google Ads campaign name. Only your utm_content and utm_term survive, in the manual ad content and manual term dimensions.
What can a fixed tag not tell you?
Where the click came from, yes. Whether the campaign caused the sale, no. A tagged row counts the visits that carried the tag, including buyers who would have bought anyway.
Fixing tags also moves revenue rather than adding it. Expect Direct to shrink and named channels to grow, with the total unchanged. Some Direct stays whatever you do: Google's help says ad blockers can turn a visit into (direct) / (none).
What to do this week
- Test one live link in a fresh private window. Paste the link, let the page load and read the address bar. Pass: utm_source, utm_medium and utm_campaign are still there. Fail: they vanished, so a redirect or shortener stripped them; point the link at the final page.
- Find last week's campaign in Traffic acquisition. Go to Reports > Acquisition > Traffic acquisition, switch the dimension to Session campaign and search for the name. Pass: it has its own row. Fail: no row, so check Unassigned and google / cpc before you rebuild any links.
- Write down your Direct share before you fix anything. In the same report, switch to Session default channel group and note Direct's share of Total revenue. Pass: you have a number to compare next month. Fail: you fix tags blind and cannot tell whether Direct shrank.
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: Traffic acquisition report (Google); URL builders: Collect campaign data with custom URLs (Google); Scopes of traffic-source dimensions (Google); User acquisition report (Google); Realtime report (Google); Traffic-source dimensions, manual tagging, and auto-tagging (Google); About auto-tagging (Google); Default channel group (Google); Campaigns and traffic sources (Google); Understand (direct) / (none) traffic (Google); Get started with attribution (Google); About Analytics sessions (Google); Data freshness (Google)
Related answers
Frequently asked questions
Why does my paid campaign show up as Organic Social in GA4?
Usually because of the medium. GA4 files a social source under Paid Social only when the medium looks paid, such as cpc, ppc or anything starting with paid. With a medium like social or story, the same source lands in Organic Social. Fix the medium on new links.Why are my UTM parameters missing from the landing page report?
Because GA4 leaves them out of Landing page + query string and Page path + query string on purpose. Google's help says UTM information goes to the Page location dimension instead. Add Page location to an exploration to see the full tagged addresses.Can an ad blocker hide my tagged traffic?
Yes, some of it. Google's help says ad blockers can interfere with the cookies GA4 uses to trace a visit, which then shows as (direct) / (none). Clean tags cannot fix that part, so some Direct will remain after any fix.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AnalyticsAnalytics is the systematic computational analysis of data. It reveals customer behavior and measures campaign performance.
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- Attribution ModelAn Attribution Model defines how credit for conversions is assigned to marketing touchpoints. It dictates how marketing channels receive credit for sales.
- Direct TrafficDirect Traffic refers to website visitors who arrive by typing the URL directly into their browser or through bookmarks. They do not come from search engines or referrals.
- Google AdsGoogle Ads is an online advertising platform where advertisers bid to display ads, service offerings, and product listings.
- Landing PageLanding Page: A single web page that appears after clicking a search result, marketing promotion, email, or online advertisement.
- Traffic SourceTraffic Source is the origin through which users find a site. Common sources include organic search, paid search, direct traffic, and referrals.
- UTM ParametersUTM Parameters are URL tags marketers use to track campaign effectiveness across traffic sources. They provide data for accurate campaign tracking and attribution in analytics platforms.