GA4 UTM Tracking Troubleshooting Guide: Root Causes, Debugging & Solutions

Find out why campaign data is missing or misclassified in GA4. Check UTM values, redirects, collection and reports using a step-by-step workflow.

Diagnostic schematic showing GA4 tracking issues branching into root causes and resolution workflows
Table of Contents
  1. The GA4 Attribution Diagnostic Flowchart
  2. Issue 1: Traffic Showing as Direct Instead of Paid Campaign
  3. Issue 2: Traffic Showing as "Unassigned"
  4. Issue 3: Campaign and Source Showing as "(not set)"
  5. Issue 4: Payment Gateway & Social Webview Referral Hijacking
  6. Issue 5: Server 301/302 Redirects Stripping Query Strings
  7. Issue 6: Consent Mode v2 Delays and Cookieless Pings
  8. Live Testing Protocol: Realtime & DebugView
  9. Frequently Asked Questions

If a campaign appears under the wrong source or does not appear at all, follow the click from the original link to the final page. Check the tags, redirects and analytics collection in that order. The sections below cover common symptoms and how to investigate them.

The GA4 Attribution Diagnostic Flowchart

When campaign data fails to appear correctly in GA4, follow this symptom triage table:

Observed Symptom Primary Suspect Definitive Test
Campaign traffic shows as Direct HTTP 301/302 redirect dropping query string; mobile webview; HTTPS to HTTP downgrade Inspect Network tab in DevTools; check if query parameters survive final URL
Traffic shows as Unassigned utm_medium does not match GA4 Default Channel Group regex rules Examine Session source / medium in GA4 Explorations against Google channel rules
Campaign shows as (not set) Measurement Protocol hits without campaign parameters; session timeout; page_view fired before config Verify session_start event payload in DebugView
Paid social shows as Referral UTM parameters stripped or missing; link wrapper stripped fbclid / utm_* Check if utm_medium=paid_social was included in ad destination URL

Issue 1: Traffic Showing as Direct Instead of Paid Campaign

GA4 uses Direct / (none) when there is no clear referral source. Missing campaign information can contribute, but the presence or absence of referrer, campaign, and advertising click information affects processing. If paid clicks appear as Direct, inspect the click URL, redirect chain, landing page, and analytics data before settling on a cause.

Root Cause: Unhandled Trailing Slash or Protocol Redirect

If you enter https://example.com/signup?utm_source=meta and a redirect sends the browser to https://example.com/signup/, check whether that redirect preserves the query string. The response's Location header shows the next URL requested:

# BROKEN REDIRECT (Query string stripped)
GET /signup?utm_source=meta -> 301 Moved Permanently
Location: https://example.com/signup/  <-- UTMs LOST!

# CORRECT REDIRECT (Query string preserved)
Location: https://example.com/signup/?utm_source=meta

Issue 2: Traffic Showing as "Unassigned"

GA4 uses "Unassigned" when the available traffic-source information does not meet an applicable Default Channel Group definition. Check the values collected and compare them with Google's current rules. For example:

  • utm_medium=paidsocial vs utm_medium=paid_social (both may match paid-social medium patterns; check the source and other available values against Google's current definitions).
  • utm_source=newsletter&utm_medium=email_blast (check whether the custom medium matches a current channel definition; the result depends on the available traffic-source data).

Issue 3: Campaign and Source Showing as "(not set)"

In GA4, (not set) indicates that GA4 collected an event, but the associated dimension has no recorded value. Common causes include:

  1. Partial tagging: Include source, medium and campaign together, plus relevant campaign identifiers. Missing values can produce missing dimensions; check the specific field and reporting scope.
  2. Measurement Protocol Mismatch: Backend offline conversion events sent via the GA4 Measurement Protocol without an attached client_id or session_id to link to the original campaign session.
  3. Session inactivity: GA4 uses a configurable inactivity timeout, typically 30 minutes. Midnight or a new campaign value does not by itself restart a GA4 session. Inspect session continuity before diagnosing campaign loss.

Issue 4: Payment Gateway & Social Webview Referral Hijacking

An external payment journey can introduce an unwanted referral or interrupt measurement. Check whether client and session identifiers survive checkout, whether tags run on the return page, and whether the payment provider appears in your acquisition reports. For a practical test, use the ecommerce tracking audit.

Issue 5: Server 301/302 Redirects Stripping Query Strings

Redirect chains can affect campaign attribution if a redirect drops the incoming query string. Check each redirect response and the final landing URL. In Apache mod_rewrite, the [QSA] flag is an Apache-specific option for appending an incoming query string when a substitution already creates one. Nginx uses different configuration; consult the documentation for the server in use.

Consent behavior depends on the implementation: basic consent mode blocks Google tags until consent, while advanced mode can send cookieless pings under denied consent. Test the landing page and consent transition separately; do not infer a second session solely from a consent update. Follow Google’s consent-mode concepts and your applicable consent requirements.

Live Testing Protocol: Realtime & DebugView

Never debug campaigns by waiting 24 to 48 hours for standard GA4 acquisition reports. Follow this real-time verification process:

  1. Use a complete test link such as ?utm_source=newsletter&utm_medium=email&utm_campaign=qa_audit. Enable debug mode for your own device through Tag Assistant or GTM Preview.
  2. Open the URL in an Incognito browser window.
  3. In GA4, go to Admin > DebugView. Select your active device stream.
  4. Click on the page_view and session_start events.

Frequently Asked Questions

Why does my campaign traffic show up as (Unassigned) in GA4?

GA4 uses (Unassigned) when the available traffic-source information does not meet an applicable Default Channel Group definition. Check for missing or unexpected values and compare them with Google's current definitions. Those definitions are not case-sensitive, so uppercase CPC alone does not automatically cause Unassigned.

Why are my paid campaign clicks showing as Direct traffic?

A redirect that removes campaign parameters can contribute, especially when no usable referrer or other campaign information remains. Other implementation or browser conditions can also affect attribution. Inspect the redirect chain, final URL, and data received by the analytics tag before identifying a cause.

How long does GA4 take to show UTM campaign data in standard reports?

Use Realtime and DebugView to confirm collection, then use processed acquisition reports for attribution. Enable debug mode through Tag Assistant, GTM Preview or your tag configuration; an arbitrary debug_mode=true URL parameter does not enable it in every implementation.

Do URL shorteners strip UTM parameters?

Query-string behavior depends on the shortener and redirect chain; an intermediate hop can remove campaign parameters. Test the complete shortened URL in a browser or network inspector and verify the final destination. The UTMCraft UTM Checker checks URL structure but does not follow live redirects.

Keep an evidence trail before changing settings

Record the published campaign link, final destination, consent state, collected page URL and exact report dimension. If the destination loses tags, investigate redirects first. If the destination is correct but no landing event arrives, inspect collection. If events arrive but the report looks different, compare scopes, processing and attribution settings.

Use the worked launch test and downloadable QA record. For additional instruction, Google’s official GA4 Tutorials YouTube series covers setup and integrations. For specific journeys, continue with the checkout audit, delivered email audit or LinkedIn lead audit.

Choose a focused guide

Use these guides when you need to investigate a specific part of this topic.

References