Measurement and attribution

UTM parameters not showing in GA4: a troubleshooting checklist

Check the exact published link, the URL that survives redirects, and the event received by the intended GA4 property. Then inspect session-scoped acquisition dimensions. Missing UTM text in a landing-page report, an Unassigned channel, and a missing event are different problems that need different fixes.

A campaign link can look correct in a spreadsheet while the report still appears empty. Before rebuilding the tags, locate the first point where the evidence stops matching your expectation: publication, navigation, collection, or reporting.

This checklist is for website campaign links. It does not assume that an ad click, a page load, an analytics event, and a session should have identical counts. Use the UTM builder to assemble a link and the bulk UTM validator to review a batch. Neither tool verifies your GA4 installation.

Start with the symptom, not a new naming convention

What you observeFirst checkAvoid doing immediately
Campaign labels are absent from the final addressFollow the exact published link through redirectsRename the campaign
The final URL is correct, but no test event arrivesCheck the destination property, tag, and consent stateConclude that the UTM syntax is wrong
A test event arrives, but the acquisition report differsCheck report scope, date, filters, and processingCompare unrelated user and session dimensions
Source and medium exist, but the channel is UnassignedInspect channel classification rulesTreat every such visit as untracked
UTMs are missing only from a landing-page dimensionCheck the dimension definitionReinstall the analytics tag

Keep the original link and one expected result in your notes. Replacing several tags, reports, and redirects at once makes it harder to determine which change mattered.

1. Inspect the link people can actually click

Copy the link from the published placement, not just the campaign planning sheet. A newsletter service, link shortener, ad configuration, or copied draft can produce a different destination from the one your team approved.

Review the parameter spelling, empty values, duplicated keys, and capitalization. Use a stable campaign label for the test so it can be distinguished from ordinary traffic, without including a person's identity or an account secret. Our naming-convention guide explains how to keep the campaign distinct from individual creative placements.

A syntactically valid link proves only that the URL can be parsed. It does not prove that the destination exists, that the visitor reaches it, or that Analytics receives an event.

2. Check what survives navigation

Open the published link in a suitable test browser and record the final address. Include any shortener, domain migration, locale selection, and trailing-slash normalization in the path you inspect.

For example, this fictional campaign starts with:

https://example.com/old-offer?utm_source=partner-example&utm_medium=email&utm_campaign=demo-september

If a redirect sends the visitor to https://example.com/demo and discards the query, the page may load correctly while losing the campaign labels before collection. Repair the redirect's query handling, then repeat that exact navigation. Do not add UTMs to every internal link as a workaround for a broken entry path.

Check the received page URL as well as the address bar. A site can deliberately remove query parameters after capturing them. The observation you need is the value available when measurement runs, rather than an assumption based only on how the address looks later.

3. Verify collection in the intended property

Confirm the measurement destination matches the property being inspected. Reused landing pages sometimes retain a previous site's tag. A browser request sent somewhere is not evidence that your current property received it.

Use a controlled debug session to inspect the received event and its parameters. Google's DebugView documentation describes device-specific debugging and notes that consent or privacy controls can affect event visibility. DebugView has limited attribution processing; use it to investigate collection, then use acquisition reports for attribution analysis.

Record the test device, timestamp, consent state, destination property, and received page location. If the event is absent, investigate that boundary first. If it is present with the expected URL, move to reporting. Respect the site's intended privacy choices throughout the test.

4. Inspect a report with the right scope

For a visit-level campaign investigation, inspect Session source / medium and Session campaign in Traffic acquisition. The Traffic acquisition report covers both new and returning users and differs from User acquisition. A first-user value can describe an earlier acquisition rather than the campaign you are currently testing.

Keep the date range, property timezone, comparison, and filters visible in your notes. Check whether the report includes the test period. Allow for processing before treating an unfinished report as a failed collection test; a live diagnostic and a processed report answer different questions.

There is also a specific dimension trap: Google's campaign URL documentation says UTM parameters are omitted from Landing page + query string and Page path + query string. Use Page location when investigating the received URL. Missing UTM text in those two path dimensions does not establish missing campaign data.

5. Separate channel classification from missing data

If the source and medium are populated, but the channel is Unassigned, inspect the classification rather than assuming the whole visit was lost. GA4's default channels use defined rules. An understandable team label does not necessarily match those rules.

Compare the actual values with the relevant channel definition. If your organization needs another classification, document a custom channel group deliberately. Keep the original source evidence so a taxonomy change does not look like newly acquired traffic.

For Google Ads and other integrated buying platforms, also review the interaction between manual labels and auto-tagging. Google's traffic-source dimension guide explains their population rules. Do not remove a working auto-tagging setup simply because one manual campaign value differs from an expectation.

A worked diagnosis: fix the earliest broken step

Imagine a fictional partner newsletter that points at an old product URL. The team sees no sessions under its new campaign label. It proposes changing email to another medium.

The reviewer instead follows one published link. The shortener preserves the tags, but the old product route redirects to a new route without the query. The new page sends a page-view event to the correct property with a clean, untagged location. This sequence gives the team a concrete routing defect to fix before touching the naming convention.

After the repair, the reviewer repeats the same path and sees the tags in the received page location. That confirms the repaired collection path. The team then checks the processed acquisition report for the relevant session dimensions. It does not claim that one successful test recovered historical attribution or proved every real visitor was measured.

If the query had survived and the event had arrived correctly, the next investigation would have been report scope or classification. The purpose of the sequence is to keep each proposed fix tied to an observed failure.

Keep a small verification record

RecordWhy it helps the next reviewer
Published placement and exact public linkReproduces the entry path
Redirect destinations and final queryIdentifies where labels changed
Test time, device, and consent stateDefines collection conditions
Intended property and received eventSeparates configuration from collection
Report, dimension, period, and filtersMakes the reporting comparison repeatable
Change made and repeated resultShows what the repair actually established

Store campaign labels and public URLs, not customer identities or secret tokens. The UTM tracking template provides a campaign register, while the launch checklist helps keep destination and measurement checks together.

Finish with a bounded conclusion: the link was corrected, the tag received the intended URL, or the report was using the wrong dimension. Broader traffic and lead outcomes require their own measurement window.

A UTM naming convention your paid-media team can keep using

Build a campaign naming dictionary, distinguish sources from placements, handle auto-tagging carefully, and keep a usable campaign register through reporting and handovers.

Measure AI search visibility, referrals and leads without mixing them up

Build a practical measurement plan for Google AI search, ChatGPT referrals, Bing citations and Grok observations. Separate visibility, visits, resource use and accepted leads.

Moving domains without losing track of Search Console and GA4

A practical domain-migration checklist using GaaS's Versaunt-to-trygaas move: redirects, DNS verification, sitemap receipts, retained GA4 history and honest post-launch checks.

Recover from a conversion-tracking outage

Diagnose and recover a conversion-tracking outage by tracing business events, containing unreliable automation, repairing the failing stage, and reconciling recovery.

Have a correction or a question about the workflow? Contact GaaS. Read our editorial standards for sourcing and example conventions.