UTM parameters not showing in GA4? Seven causes and how to fix each one
UTM parameters usually go missing in GA4 for one of seven reasons: the data has not been processed yet (standard reports can take 24 to 48 hours), Google Ads auto-tagging overrides manual UTMs, a redirect strips the parameters before the page loads, case or spelling splits the values, a required parameter is missing so GA4 shows (not set), the medium does not match GA4’s channel rules so traffic lands in Unassigned, or you are looking at a dimension that does not hold UTMs. Each cause has a quick test.
Key takeaways
- Check Realtime first. Standard GA4 reports can take 24 to 48 hours to settle.
- When gclid and UTMs are both on a Google Ads click, GA4 uses the auto-tagged values.
- Click the live link and watch the address bar: if the UTMs disappear, a redirect is stripping them.
- GA4 values are case sensitive, so Google and google are two sources.
- Use mediums that match GA4’s channel rules, such as cpc or paid-social, or paid traffic lands in Organic Social or Unassigned.
Link Console at a glance
- What it is
- A UTM link builder from PlanConversion that applies naming rules as people type, with short links, QR codes and a shared link history
- Checks
- Live Google Ads and Microsoft Ads URLs (hourly, read only, Pro); GA4 exports; HubSpot, Salesforce and Pipedrive (Pro)
- 1 month free
- First month free for up to 3 users, no credit card: naming rules, approved values, approvals, 5 templates, 100 short links a month. Then Pro, or the workspace pauses with its data kept
- Pro
- $79 USD per workspace a month, or $790 a year (12 months for the price of 10); 10 users included, then $5 per extra user. Approvals, ad account audit, link health, GA4 and CRM attribution check and API included
- Enterprise
- $249 USD a month, billed annually, unlimited users; includes naming taxonomy setup, invoice billing and priority support
- With Pacing Console
- Pro: add Link Console for $39 a month, so both products are $88 per workspace a month ($880 a year); Enterprise: add Link Console to Pacing Console Enterprise for $199 a month for all users. One account for both products: the same login, team and billing
- Sign-in and extension
- Google or Microsoft sign-in; Chrome extension in the Chrome Web Store
The seven causes at a glance
| Cause | Symptom | Quick test | Fix |
|---|---|---|---|
| 1. Processing delay | Today’s campaign is missing from reports | Open Realtime and click the link yourself | Wait for daily processing; report on settled data |
| 2. Auto-tagging wins | Google Ads traffic shows google / cpc, not your UTMs | Compare the source with your tagged URL | Keep auto-tagging; use UTMs for other channels |
| 3. Redirect strips UTMs | Visits arrive as direct or referral | Click the link; check the final URL | Fix the redirect to pass the query string |
| 4. Case and spelling | The same source appears twice | Sort the source / medium list | Lowercase and approved values at build time |
| 5. Missing parameter | (not set) in campaign or source | Read the full URL in the ad | Always set source, medium and campaign |
| 6. Medium outside channel rules | Paid traffic in Organic Social or Unassigned | Check the medium against the default channel group | Use cpc, ppc, paid-*, display or email |
| 7. Wrong dimension | UTMs not in landing page reports | Look at page location or session dimensions | Use session source / medium / campaign |
1. The data is not processed yet
Google states that GA4 data processing can take 24 to 48 hours, with daily data for standard properties typically available after about 12 hours and Realtime within minutes. A campaign launched this morning can be absent from the acquisition reports and still be tracking correctly.
Test it by opening the tagged link in a private window and watching the Realtime report. If your visit shows the right source and medium there, tracking works and the report only needs time.
2. Google Ads auto-tagging takes priority
When a Google Ads click carries both the gclid from auto-tagging and manual UTM parameters, GA4 uses the auto-tagged values for source, medium and the other traffic dimensions. Google documents one exception: when the gclid cannot be used as intended and UTM parameters are present, GA4 takes all cross-channel source values from the UTMs.
For Google Ads, keep auto-tagging on and link the accounts. It carries campaign, ad group and keyword data that manual tags cannot. Put your discipline into UTMs for LinkedIn, Microsoft, email, partners and offline QR codes, where they are the only source of truth.
We fix source data, routing and attribution so sales and finance trust the numbers.
3. A redirect strips the parameters
This is the most expensive cause because it is silent. The link in the ad is perfect, but a redirect on the way (http to https, a vanity URL, a moved page, a consent or language redirect) drops the query string. GA4 sees a visit without UTMs and classifies it as direct or referral.
Test it by clicking the live link and reading the final address. If the UTMs are gone, fix the redirect so it passes the query string through, or point the ad at the final URL. Then check again after every site migration, because redirects change more often than ads.
4. Case and spelling split your data
GA4 treats parameter values as case sensitive: utm_source=google and utm_source=Google are two different sources. The same goes for linkedin, LinkedIn and linked-in. Reports still work, but every chart splits one channel into several rows and every total is understated.
The fix is upstream. Agree a convention (lowercase, one separator, an approved list of sources and mediums) and enforce it when the link is built, not in a cleanup sheet after the quarter. Our guide to UTM naming conventions has a convention you can adopt as is.
5. A required parameter is missing
Google recommends always setting utm_source, utm_medium and utm_campaign, and notes that missing UTM parameters result in (not set) values in reporting. A link with only utm_campaign tells GA4 the campaign but not where the visit came from.
Make source, medium and campaign required in whatever tool builds your links, and audit the links already live in your ad accounts, because those are the ones nobody looks at again.
6. The medium does not match GA4’s channel rules
GA4 assigns sessions to default channels with fixed rules. For manual tags, Paid Social requires a source on GA4’s list of social sites and a medium that matches the pattern ^(.*cp.*|ppc|retargeting|paid.*)$. Paid Search needs a search site with the same medium pattern. Display needs a medium such as display, banner or cpm, and Email needs email as the source or medium. Anything that matches no rule is Unassigned.
So a LinkedIn ad tagged utm_source=linkedin with utm_medium=social or utm_medium=sponsored matches no paid rule and stays out of Paid Social, even though you paid for every click. Mediums such as cpc or paid-social keep paid traffic in the paid channels where your budget reports expect it.
7. You are looking in the wrong place
GA4 puts UTM parameters in the Page location dimension only. They are left out of Landing page + query string and Page path + query string, so if you search for utm_ in a landing page report, you will not find it. Use the traffic acquisition report with session source / medium and session campaign, or add page location to an exploration.
Also check whether you want session or first-user dimensions. First user shows how people first arrived; session shows how they arrived this time. A campaign aimed at existing contacts can look empty in first-user reports and healthy in session reports.
Stop the problem at the source
Six of the seven causes are prevented before the link is shared. That is why we built Link Console: it cleans values to your convention as people type, requires source, medium and campaign, offers approved values instead of free text, and keeps one shared history of every link.
The attribution check compares the values already in a GA4 export with your convention on every plan, and in HubSpot, Salesforce or Pipedrive on Pro, with the sessions, contacts and pipeline sitting on each wrong value.
On Pro, the link health monitor checks every saved destination daily and flags redirects that drop the UTM parameters. The first month of Link Console is free; Pro is US$79 per workspace a month.
Frequently asked questions
How long does it take for UTM data to show in GA4?
Realtime shows visits within minutes. Google says standard report processing can take 24 to 48 hours, with daily data for standard properties typically after about 12 hours.
Why do my Google Ads UTMs not show in GA4?
With auto-tagging on, GA4 uses the gclid values for source, medium and campaign instead of manual UTMs. Keep auto-tagging and rely on UTMs for other channels.
Why does my paid LinkedIn traffic show as organic social or Unassigned?
GA4 only counts manual tags as Paid Social when the medium matches its paid pattern, such as cpc, ppc or anything starting with paid. A medium like social or sponsored does not.
Are UTM parameters case sensitive in GA4?
Yes. Google states that utm_source=google is different from utm_source=Google, so inconsistent case splits one source into several.
What does (not set) mean for a campaign in GA4?
Usually that a UTM parameter was missing on the link, so GA4 had no value to record. Set source, medium and campaign on every tagged link.
Sources
Related service: RevOps and marketing operations. See also pricing and client results.
We run enterprise B2B demand generation for teams in Montreal, Toronto, Ottawa and the United States.