Sprites LogoSprites.ai
CustomersPricing
Sign in
Get a demo
Start 7-day trial→→
Start 7-day trial→→
Sprites LogoSprites.ai
  • Run adsMeta AdsFacebook and Instagram, scaledGoogle AdsSearch, PMax and ShoppingLinkedIn AdsB2B targeting and ABMTikTok AdsShort-form video that convertsReddit AdsReach communities by intentGoal OptimizationHit your ROAS or CPL target
    Create & researchAd GeneratorOn-brand ads for any channelCreative AnalyticsThe hooks and angles that winCompetitor IntelligenceRivals' ads, SEO and AI reachMarket ResearchAudience insight, with sources
    SEO & AI visibilityAI SEO ContentArticles written and publishedAI VisibilityGet cited in AI answersSEO Site AuditPrioritized fixes, site-wideKeyword & Traffic ResearchWhere the searches and gaps are
    Meet SpritesYour AI ads team, on every channelResearches, builds and launches campaigns, then optimizes them daily. You approve every change.Scale the winner +$600/dayApprovePaused 14 wasted keywords+ SEO & AI searchStart 7-day trial
  • By teamStartups & SMBsSenior marketing, no headcountMarketing teamsMore campaigns, same teamAgenciesEvery client, one workspaceEnterpriseApprovals, governance, scale
    By businessB2B & ABMPipeline from target accountsEcommerce & D2CProfitable ROAS at scalePLG SaaSSignups and trials, not clicksMobile appsInstalls that become usersFintechCompliant growth for financeHealthtechCareful, compliant growth
    Helghardt Avenant68% lower CPL in 6 weeksCustomer storyHow Rehive took its ABM playbook back from two agenciesHelghardt Avenant · Founder & CEO, RehiveRead the story
  • Ads LibraryReal ads from Meta, Google, LinkedIn, TikTok, Reddit and moreBlogIdeas and playbooks for modern marketingPrompt GalleryReady-to-run prompts for your next campaign
    Free toolsGlossaryReviewsCompare Sprites
  • Customers
  • Pricing
Sign in
Get a demo
Start 7-day trial→→
  1. Home/
  2. Attribution/
  3. utm parameters not showing in ga4

Attribution · Sprites diagnoses this

UTM parameters not showing in GA4

If the UTMs reach the page but GA4 does not show them, GA4 either never read them or overrode them. The common reasons are looking at the wrong report scope, a tag that fires after the URL changes, gclid taking priority over manual tags on Google clicks, and data that is still processing. Check the Traffic acquisition report at session scope before anything else.

Start 7-day trial →Do it by hand

$1 today. Cancel anytime before day 7.

What Sprites checks

4 checks
  • ?Session source / medium(not set) on 12% of sessions
  • ✓First page_view locationUTMs present
  • ✓Google Ads link in GA4Linked, auto-tagging on
  • !Custom channel rulespaid-social not matched
Illustration of a typical broken account. Your own readout comes from your account.

Why it happens

Wrong report or scope

  1. Wrong report or scope

    User acquisition shows first user source, not the session. A returning visitor from your new campaign shows under the old source there.

  2. gclid overrides UTMs on Google clicks

    With auto-tagging on, GA4 takes campaign data for Google Ads clicks from gclid, not from your utm_campaign.

  3. utm_medium does not match a channel rule

    GA4 builds the Default Channel Group from utm_source and utm_medium. A medium like "paid-social" or "Paid" that no rule matches lands in Unassigned.

  4. The tag reads a cleaned URL

    A redirect or a client-side route change removed the UTMs before the first page_view fired.

  5. Data still processing

    Standard reports can take 24 to 48 hours. Realtime shows the visit sooner.

How to line them up, step by step

  1. Open Traffic acquisition

    In GA4 go to Reports, then Acquisition, then Traffic acquisition, and switch the primary dimension to Session source / medium or Session campaign.

  2. Watch one tagged visit live

    Open Admin, then DebugView, load a tagged URL with the Google tag debugger on, and check page_location on the first page_view includes your UTMs.

  3. Use standard medium values

    Use cpc, paid_social, email and similar values GA4 recognizes. Check your channel groups under Admin, then Data display, then Channel groups.

  4. Check the Google Ads link

    Under Admin, then Product links, then Google Ads links, confirm the link is active. Google Ads clicks get their campaign from gclid through it.

Steps checked against Google Analytics Help: Collect campaign data with custom URLs; Google Analytics Help: Default channel group; Google Analytics Help: Traffic acquisition report.

Sprites diagnoses this

Sprites diagnoses it

Sprites reads your GA4 property and its traffic so you see which campaigns land unattributed.

What Sprites does

  • Reads the GA4 property setup: key events, linked Google Ads accounts and data streams, and names anything missing.
  • Breaks sessions down by channel, source and medium and by landing page, so Unassigned and (not set) traffic shows where it lands.
  • Splits GA4 conversions by linked Google Ads campaign beside the totals.

What it doesn't do

  • It does not edit GA4 settings, channel groups or your tags.
  • It does not rewrite your UTMs.
Start 7-day trial →

Questions

Why does GA4 show (not set) for my campaign?

The session had no campaign value GA4 could read, often because the UTMs were stripped before the tag fired or because the event was not tied to a session.

Why is my traffic Unassigned in GA4?

Your utm_source and utm_medium values did not match any rule in the Default Channel Group. Use standard medium values like cpc or paid_social.

Are UTMs case sensitive in GA4?

Yes. Facebook and facebook show as two sources. Pick lowercase and stick to it.

How long until UTMs show in GA4 reports?

Realtime shows them within minutes. Standard reports can take 24 to 48 hours.

More: Click IDs, UTMs and models

  • UTM parameters being stripped
  • GA4 vs Google Ads conversions: why the numbers don't match
  • GA4 vs Meta Ads conversions: why Meta reports more
  • What is gclid?
  • What is fbclid?
  • gclid missing from your URLs
  • PostHog UTM tracking
  • Multi-touch attribution
  • PostHog vs Google Analytics for paid ads
  • Attribution window
  • Cross-channel attribution
  • Google Ads attribution model
  • Meta ads attribution settings

Hubs

  • Why your tools disagree on conversions
  • Fix your ad account
  • Fix Google Ads problems
  • Fix your Meta ads
  • Fix your LinkedIn ads
  • Fix your Reddit ads
  • Fix Microsoft Ads problems

Reference

  • Attribution, defined
  • PostHog MCP server
  • Google Analytics MCP server
  • Google Ads MCP server
  • Incrementality
  • Marketing mix modeling
  • Ad specs

See where it breaks

Connect your accounts. Sprites reads them side by side and shows you exactly where the numbers split.

Start 7-day trial →Get a demo

Get the free AI-First Marketing Playbook

Packed with proven tactics, creative inspo, and automation tips to help you grow faster with less guesswork.

By clicking send you agree to the Terms and Conditions

Pillars

AI Marketing AgentVibe MarketingAI VisibilityAI Marketing AutomationAI for Meta AdsAI for Google AdsAI for LinkedIn AdsAI SEOAds LibraryChatGPT AdsAI AdsMCP Server

For Teams

For AgenciesFor EcommerceFor FintechFor HealthtechFor EnterpriseFor FreelancersFor Marketing Teams

Prompts Gallery

Marketing Campaign BuilderGoogle Ads Search Campaign BuilderCompetitor Meta Ads AnalyzerSEO Audit + Plan GeneratorGoogle Ads Campaign OptimizerGoogle Ads: PMax Campaign Builder

About

CustomersReviewsBlogTerms of ServicePrivacy PolicyDPACareersSitemap
Sprites TextWizard