How to Track UTM Links in Google Analytics (GA4 Guide)
To track UTM links in Google Analytics, open GA4, go to Reports, then Acquisition, then Traffic acquisition, and read the Session campaign, Session source, and Session medium columns: every visit that arrived through a tagged link appears there under the campaign name you set. Build tagged links with our free UTM builder, then verify and report them below.
- The Short Answer: Where UTM Data Lives in GA4
- Build the Tagged URL First: Three Required Parameters
- GA4 DebugView UTM Test: Verify Before You Send
- Read the Traffic Acquisition Report Like a Marketer
- Build a UTM Campaign Report in GA4 Exploration
- Offline and QR Codes: UTM Links Beyond the Browser
- 5 Mistakes That Ruin UTM Tracking in GA4
The Short Answer: Where UTM Data Lives in GA4
How to see UTM data in GA4 comes down to one report: Reports, then Acquisition, then Traffic acquisition. That report shows one row per source-medium-campaign combination, and the three columns that matter are Session source, Session medium, and Session campaign, which map directly to utm_source, utm_medium, and utm_campaign on your links. A visitor who clicks a newsletter link tagged utm_source=newsletter, utm_medium=email, utm_campaign=october-launch appears as a session with source newsletter, medium email, and campaign october-launch. Two facts about timing prevent most false alarms: standard reports take 24 to 48 hours to process, so a link clicked this morning may not appear until tomorrow, and the Realtime report shows only the last 30 minutes, so it is a spot check, not a record. If the report shows (not set) for campaign, the visit arrived without a utm_campaign value, which usually means an untagged link, a stripped parameter, or an internal link that overwrote the original campaign. For building the tagged links themselves, our free UTM builder constructs them with the right parameter names, and our guide to utm source vs medium vs campaign explains what each parameter means.
Build the Tagged URL First: Three Required Parameters
A trackable UTM link needs three parameters, and no more than five: utm_source (who sent the traffic, like newsletter or facebook), utm_medium (how it arrived, like email or social), and utm_campaign (which effort it belongs to, like october-launch). Two optional parameters complete the set: utm_term for the paid keyword, and utm_content for distinguishing two links in the same message, like header-button vs footer-link. Naming rules decide whether the report is readable: use lowercase everywhere, because GA4 treats Email and email as two different mediums and splits your campaign in half; use underscores instead of spaces, because spaces become percent-encoded clutter; and use a short approved list of mediums, because a free-text medium like social-media lands in the Unassigned channel instead of Social. A finished link looks like this: example.com/landing?utm_source=newsletter&utm_medium=email&utm_campaign=october-launch. Build it with our free UTM builder rather than typing parameters by hand, because a single misspelled parameter, utm_campaing instead of utm_campaign, silently drops the whole campaign from the report. For the full naming system, our guide to building UTM links for campaigns covers conventions and templates.
GA4 DebugView UTM Test: Verify Before You Send
A GA4 DebugView UTM test catches broken tagging before a campaign launches, and it takes two minutes. First, enable debug mode: install the Google Analytics Debugger extension, or add the debug_mode parameter to your own test visit, then open GA4 and go to Admin, then Data display, then DebugView. Second, click your own tagged link in that debug browser. Within seconds, DebugView shows your device, and the event stream shows a session_start event whose parameters include session_source, session_medium, and session_campaign with exactly the values you set. If the campaign value is missing or wrong, the link is broken, and the usual culprits are a redirect that strips query strings, a misspelled parameter, or a link shortener that drops parameters. Third, check the page_view event that follows: it should carry the same campaign values, because a session that starts tagged but loses the campaign on the second page means the site is rewriting URLs mid-session. Fix the link, retest, and only then send the campaign, because a broken tag cannot be repaired after the fact: untagged visits never regain their campaign, and a campaign sent with a broken tag reports zero sessions no matter how many people clicked. For the parameter definitions behind the test, our guide to utm source vs medium vs campaign explains each field.
Read the Traffic Acquisition Report Like a Marketer
The GA4 traffic acquisition report turns tagged sessions into decisions, once you know which controls matter. Start with the date range: set it to the campaign window, not the default 28 days, so a two-week campaign is not diluted by two quiet weeks. Next, add a filter: click 'Add filter', choose Session campaign, and type the campaign name exactly as tagged, lowercase and underscores included, because the filter is case-sensitive and 'October-Launch' will not match 'october-launch'. The table then shows sessions, engaged sessions, engagement rate, and conversions for that campaign alone, and the secondary dimension control lets you split it by Session source or Session medium to see which channel inside the campaign actually delivered. Compare two campaigns by opening the comparison control and adding a second Session campaign filter, which puts both campaigns side by side with their conversion rates, the figure that decides the next budget. One trap: the report attributes a session to the campaign of its first tagged page, so a visitor who arrives untagged, browses, and later clicks a tagged link inside your own site starts a new session under the tagged campaign, which is correct behavior, not double counting. For the naming rules that keep this report clean, our UTM link building guide covers conventions, and our free UTM builder generates the links.
Build a UTM Campaign Report in GA4 Exploration
A UTM campaign report in GA4 Exploration answers questions the standard report cannot, like which landing page each campaign converts on. Start in Explore, choose a Free form exploration, and set the dimensions to Session campaign, Session source, Session medium, and Landing page, with the metrics Sessions, Engaged sessions, and Key events or conversions. Drag Session campaign into Rows, add Landing page as a second row dimension, and the table breaks every campaign down by the page visitors landed on, which exposes the common failure where a campaign converts well on one landing page and badly on another. Add a filter for Session campaign equals your campaign name to isolate one effort, and add a segment for first-time visitors to separate new acquisition from returning traffic. Save the exploration and share it with the team, because a saved exploration updates itself as new data arrives, unlike an exported spreadsheet that goes stale the day it is downloaded. Two limits to know: Explorations sample data on very large properties, so a campaign with millions of sessions may show approximate figures, and Explorations cannot show data older than your retention setting, so a campaign from two years ago may be gone from Explore even though it survives in aggregated reports. For the tagging that feeds this report, our free UTM builder is the starting point, and our source-medium-campaign guide explains the dimensions.
Offline and QR Codes: UTM Links Beyond the Browser
Offline UTM links work the same way as online ones, with one extra step: the printed code must land on a tagged URL. A QR code on a flyer, a trade-show banner, or a direct-mail piece should encode the full tagged URL, including utm_source=flyer, utm_medium=print, and utm_campaign=fall-event, because a QR code that points to the bare homepage reports as Direct traffic and the campaign is invisible. Link shorteners are the usual breakage: a short link must forward the query string, not strip it, so test the short link in DebugView exactly as you would test the long one, and confirm the session_campaign value survives the redirect. Vanity URLs are the same trap in prettier form: example.com/fall-event must 301-redirect to the tagged URL with parameters intact, and a redirect rule that drops the query string silently untags every scan. For podcast and video descriptions, where links are not clickable, use a short memorable redirect that forwards to the tagged URL, and put the campaign name in the redirect itself so the report reads cleanly. One rule governs all offline tagging: never put UTM parameters on internal links inside your own site, because an internal tagged link overwrites the original campaign that brought the visitor, and the session is reattributed to the internal link. For building offline-ready links, our free UTM builder generates them, and our UTM link building guide covers the conventions.
5 Mistakes That Ruin UTM Tracking in GA4
Five mistakes ruin almost every bad UTM tracking setup. First, inconsistent casing: Email, email, and EMAIL are three mediums in GA4, and a campaign split three ways looks like three failing campaigns. Second, a medium outside the approved list: social-media is not a GA4 default channel, so sessions tagged medium=social-media land in Unassigned instead of Social, and the campaign looks like it drove no social traffic. Third, redirects that strip query strings: a short link or vanity URL that drops utm parameters sends every visitor in as Direct, and the campaign reports zero sessions. Fourth, UTM parameters on internal links: tagging your own navigation overwrites the original campaign, so a newsletter visitor who clicks an internally tagged banner is reattributed to the banner. Fifth, judging too early: standard reports lag 24 to 48 hours, so a campaign checked on launch day always looks dead, and the fix is DebugView for same-day verification and the Traffic acquisition report for the verdict. The fix for all five is the same habit: lowercase names, approved mediums, redirect tests in DebugView, no internal UTM links, and patience for the standard report. Do that, and the tracking itself, from tagged link to campaign row, will never be the part that goes wrong. For a second opinion on your setup, our keyword density checker covers the on-page measurement side of the same optimization habit.
Do it in one click
Build clean, correctly tagged campaign links in seconds — free UTM builder, no signup.
Open the Free Tool →