GA4 picks up UTM parameters on its own, and you will find them in Reports, Acquisition, Traffic acquisition, under the Session campaign and Session source / medium dimensions. The harder part is reading them correctly once they are there.

Share post

How to Track UTM Parameters in Google Analytics 4

how-to-track-utm-in-google-analytics

60-Second Summary

This guide traces a tagged LinkedIn webinar campaign through GA4 from first click to a campaign report and solves common issues like (not set) and Unassigned. It shows where each UTM parameter appears, how session vs first-user dimensions differ, and how to validate links before spending.

  • Key takeaways: GA4 reads utm_source, utm_medium, utm_campaign, utm_content and utm_term with no extra setup — ensure the GA4 tag is on the landing page and tag links consistently; use manual dimensions to view exactly what your team tagged.

  • Standout strategies & tactics: Use Traffic acquisition (session) and User acquisition (first-user) for different questions; build Explorations with Session campaign, Session source/medium and Session manual ad content for precise comparisons; test new links in Realtime and use a UTM builder to avoid typos.

  • Real-world lessons & frameworks: Session dimensions credit each visit to the campaign that started it; first-user dimensions credit the person’s original source — use both for webinar funnels; utm_content/term only appear in manual dimensions and Page location preserves full tagged URLs.

  • Troubleshooting & fixes: (not set) often means missing utm_campaign or stripped tags via redirects; Unassigned usually comes from unrecognised medium values — normalise mediums (email, social, paid_social), fix case sensitivity or use custom channel groups; note Google Ads auto-tagging overrides standard dimensions.

*This summary was created with AI assistance, using our original content.

This guide follows one tagged LinkedIn campaign through GA4, from the first click to a full campaign report, and covers the problems almost everyone runs into: rows labelled (not set) and traffic sitting in Unassigned. If you are new to the tags themselves, our guide to UTM codes explains what each one records.

Do you need to set anything up first?

No. GA4 reads utm_source, utm_medium, utm_campaign, utm_content and utm_term from any tagged link without extra configuration. The only requirement is that the GA4 tag is installed on the page the link points to. There is no setting to switch on and no custom dimension to create for the standard five parameters.

The preparation that matters happens before anyone clicks: tagging your links consistently. Every value you put in a link appears in GA4 exactly as you typed it, so a typo becomes a row of its own. A free UTM builder keeps the values consistent from one link to the next.

The example campaign in this guide is a LinkedIn campaign promoting a webinar, with two tagged links: utm_medium=paid_social for the ad and utm_medium=social for the company page post. Both use utm_source=linkedin and utm_campaign=webinar-b2b-analytics-2026-11.

Where to find UTM data in GA4

The Traffic acquisition report is the main place to see campaign traffic. To find the webinar campaign:

  1. Open Reports in the left-hand menu.

  2. Open Acquisition. Some properties group it under a Life cycle heading.

  3. Open Traffic acquisition.

  4. Click the dropdown above the first column of the table and change the primary dimension to Session campaign.

  5. Find webinar-b2b-analytics-2026-11 in the list. Use the search box above the table if you have many campaigns.

  6. Click the plus button next to the primary dimension and add Session source / medium as a secondary dimension

You now see the campaign split into two rows: linkedin / paid_social for the ad and linkedin / social for the organic post. Each row shows sessions, engaged sessions, engagement rate, events and key events, so you can compare how the paid and organic traffic behaved once it arrived.

Set the date range to cover the full campaign, and use the comparison option in the date picker if you want to see how it moved your totals against the previous period. The key events column counts visits that completed an action you have marked as a key event, such as a webinar registration. If the registration is not marked as a key event yet, mark it in Admin before the campaign starts, so the column has something to show.

For a quicker view, the Acquisition overview page shows summary cards for session source and session campaign. It is useful for a glance at what is driving traffic this week, but the Traffic acquisition table is where you do the actual comparison.

GA4 lets each property customise its report menu, so the labels in your account may differ slightly from the ones above. If you cannot find Traffic acquisition, check the Library at the bottom of the Reports menu, where an administrator can add it back to the navigation. Google's help page on traffic-source dimensions lists every dimension that holds campaign data.

Which GA4 dimension shows each UTM parameter

Each UTM parameter maps to a dimension in GA4. The table below shows where to find each one.

UTM parameter

GA4 dimension

Example value

utm_source

Session source (or Session manual source)

linkedin

utm_medium

Session medium (or Session manual medium)

paid_social

utm_campaign

Session campaign (or Session manual campaign name)

webinar-b2b-analytics-2026-11

utm_content

Session manual ad content

video-ad-a

utm_term

Session manual term

not used in this example

Each manual dimension also has a First user version, such as First user manual source, which you will find in the User acquisition report.

The "manual" dimensions show only the values that came from your UTM tags. The standard dimensions, such as Session source, can also be filled by Google Ads auto-tagging and other automatic sources. If you want to see exactly what your team tagged, use the manual versions.

utm_content and utm_term only appear through the manual dimensions, so add Session manual ad content as a secondary dimension when you want to compare individual ads. In the webinar example, that splits linkedin / paid_social into one row per ad creative.

One more detail catches people out. UTM values do not appear in the Landing page + query string dimension, because GA4 strips them from it. If you want to see the full tagged address of a landing page, use the Page location dimension instead.

Campaign names arrive exactly as written in the link, so webinar-b2b-analytics-2026-11 and Webinar-B2B-Analytics-2026-11 appear as two rows. If you see near-duplicates in the Session campaign list, that is usually the cause.

First visit or every visit: session vs first user dimensions

GA4 can credit a campaign for each visit or for each person, and the two answer different questions.

Traffic acquisition uses session dimensions. It credits each visit to the campaign that started that visit. User acquisition uses first user dimensions, such as First user campaign, and credits each person to the campaign that brought them to your site for the first time.

Take someone who first clicks the LinkedIn webinar ad, leaves, and returns a week later from a reminder email. In User acquisition, they belong to the LinkedIn campaign, because that is how they found you. In Traffic acquisition, their first visit sits under the LinkedIn ad and their second visit under the email.

Use User acquisition when the question is which campaigns bring new people to the site. Use Traffic acquisition when the question is which campaigns bring visits and what those visits do. For a webinar campaign, both matter: the LinkedIn ad may introduce people, while the reminder email brings them back to register. The two reports rarely show the same totals for a campaign, and that is expected: a campaign that introduces many new people looks strong in User acquisition, and one that brings people back looks strong in Traffic acquisition.

Build a campaign report in Explorations

The standard reports are fixed. Explorations let you build a table with exactly the dimensions and metrics you need. To build a campaign report for the webinar:

  1. Open Explore in the left-hand menu.

  2. Start a new Free form exploration.

  3. In the Variables panel, add Session campaign, Session source / medium and Session manual ad content as dimensions.

  4. Add Sessions, Engaged sessions and Key events as metrics.

  5. Drag Session campaign and Session manual ad content into Rows, and the three metrics into Values.

  6. Add a filter where Session campaign exactly matches webinar-b2b-analytics-2026-11.

The result is a row for each ad and placement in the campaign. You can compare video-ad-a against your other creative, and against the company page post, on visits, engagement and key events in one view. Save the exploration and change the filter for the next campaign instead of rebuilding it. Explorations only reach back as far as your property's data retention setting, which is two months by default on standard properties, so for longer comparisons use the standard reports or change the retention setting in Admin.

If you report to people who do not use GA4, the same dimensions and metrics are available in Data Studio (formerly Looker Studio), where you can build a dashboard from the same table that updates on its own.

Before the campaign goes live, click your own tagged link, then open Reports, Realtime. Within a minute or two, the campaign name should appear in the realtime cards. Change a card's dimension to the campaign if it shows source by default.

If it does not appear, something is wrong with the link or with the GA4 tag on the landing page, and it is far cheaper to find out now than after a week of ad spend. You can also check your UTM links with a checker before they go live, to catch typos and values GA4 will not recognise.

Why UTM data shows as (not set) or Unassigned

(not set) in the campaign report

(not set) means GA4 had no campaign value for those sessions. Visits from direct traffic, organic search and most referrals carry no campaign, so they always show as (not set) in a campaign report, and that is expected. Filter them out when you only want tagged campaigns.

It becomes a problem when tagged traffic lands there. Links that include utm_source and utm_medium but no utm_campaign show as (not set), so add utm_campaign to every link. Redirects can strip the tags before the page loads, so test any link that passes through a redirect or a link shortener. Google Ads clicks can show as (not set) when the Google Ads account is not linked to GA4, so check the link in GA4's Admin settings.

Unassigned in the channel report

Unassigned means GA4 could not match the visit to one of its default channels, usually because the utm_medium value is not one it recognises. Values such as qr, event or partner are common causes. Switch to medium values GA4 knows, such as email, social, paid_social or referral, and write them into your team's UTM naming convention so the same mistake does not come back.

Mixed capitals cause a related problem: LinkedIn and linkedin appear as two sources in your reports. Our guide to UTM case sensitivity explains how to merge them. For values that are already in your data, a custom channel group can sort them into the right channel, and it applies to past data too.

Google Ads needs a separate note. When a Google Ads click carries both auto-tagging and manual UTM tags, GA4 uses the auto-tagged values for source, medium and the other traffic-source dimensions, according to Google's help page on traffic-source dimensions.

There is no setting in GA4 that makes your manual tags win. Your UTM values still appear in the manual dimensions, such as Session manual source, so you can read them there.

See which companies a campaign brought

GA4 reports sessions and users. It can tell you the LinkedIn webinar campaign brought 300 sessions and 12 registrations. It cannot tell you whether those visits came from the companies you were targeting, which in B2B is usually the question that matters most.

Leadfeeder Web Insights reads the same traffic at company level. Its Campaigns report shows one row per campaign, with how many companies came, how many fit your ideal customer profile and their average Intent Score. The numbers will not match GA4, because GA4 counts visits and Web Insights counts companies. Both are correct; they answer different questions, which is why the two work well side by side in your B2B website analytics.

Web Insights rows show numbers, not company names. To see the companies behind a campaign by name, use Web Visitors. Install the tracking script, then open the Campaigns report after a week of tagged traffic.

To take UTM values a step further, into the lead record itself, see our guide to UTM data in your CRM.

Frequently asked questions

How can I check UTM codes in Google Analytics 4?

Open Reports, Acquisition, Traffic acquisition, and change the primary dimension to Session campaign. Add Session source / medium as a secondary dimension to split each campaign by platform and channel. For a brand-new link, click it yourself and look for the campaign in the Realtime report, where it should appear within a minute or two.

How do I track my UTM links?

Tag each link with at least utm_source, utm_medium and utm_campaign, using the same values every time. GA4 records the tags automatically as long as its tag is on the landing page. Check each link in Realtime before launch, then read the results in the Traffic acquisition report or a Free form exploration.

What are UTM parameters in Google Analytics?

UTM parameters are tags added to the end of a link that tell Google Analytics where a visit came from. GA4 reads the source, medium and campaign values and shows them in its acquisition reports, so you can compare campaigns. The content and term values appear in the manual dimensions, such as Session manual ad content.

How long does it take for UTM data to appear in GA4?

Tagged visits show up in the Realtime report within a minute or two. The standard reports, such as Traffic acquisition, usually take several hours and can take up to a day or two to process fully. Check Realtime to confirm a link works, and wait a day before judging how a campaign performed.

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

(not set) means GA4 had no campaign value for those sessions. Direct, organic and most referral traffic always shows as (not set) in a campaign report. If tagged traffic appears there, check for links missing utm_campaign, redirects that strip the tags, and Google Ads accounts that are not linked to GA4.

Where does ChatGPT traffic appear in GA4?

Links that ChatGPT cites usually carry utm_source=chatgpt.com, so the traffic appears with chatgpt.com as its source in Traffic acquisition. GA4 gives these visits the medium ai-assistant and puts them in its AI Assistant channel. Our guide to the ChatGPT UTM source covers what the tag captures and what it misses.

Start with the free Lite plan and open the Campaigns report after a week of tagged campaigns to see how many companies each one brought and how many fit your ideal customer profile. Terms and conditions apply.

Generate quality leads from website traffic

Hana-profile-pic

Head of Web & Creative @ Leadfeeder

Hana Banacka leads Web & Creative at Leadfeeder, where she focuses on improving website performance and optimizing the digital buyer journey. With more than 10 years of experience in B2B SaaS marketing, she specializes in conversion optimization, experimentation frameworks, and data-driven website strategy.

Hana has led global CRO programs, managed cross-functional web teams, and implemented testing strategies that significantly improve funnel performance. Her experience optimizing complex B2B websites informs her perspective on how companies can reduce friction in the buying journey and turn website visitors into qualified leads

Related articles