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 observe | First check | Avoid doing immediately |
|---|---|---|
| Campaign labels are absent from the final address | Follow the exact published link through redirects | Rename the campaign |
| The final URL is correct, but no test event arrives | Check the destination property, tag, and consent state | Conclude that the UTM syntax is wrong |
| A test event arrives, but the acquisition report differs | Check report scope, date, filters, and processing | Compare unrelated user and session dimensions |
| Source and medium exist, but the channel is Unassigned | Inspect channel classification rules | Treat every such visit as untracked |
| UTMs are missing only from a landing-page dimension | Check the dimension definition | Reinstall 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
| Record | Why it helps the next reviewer |
|---|---|
| Published placement and exact public link | Reproduces the entry path |
| Redirect destinations and final query | Identifies where labels changed |
| Test time, device, and consent state | Defines collection conditions |
| Intended property and received event | Separates configuration from collection |
| Report, dimension, period, and filters | Makes the reporting comparison repeatable |
| Change made and repeated result | Shows 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.
