Guides

GA4 UTM Tracking

GA4 UTM Tracking: Essentials for Accurate Campaign Measurement

Andrei Kholkin
Andrei Kholkin
May 17, 2024
GA4 UTM Tracking

Build your GA4 UTM link

Enter your destination and campaign details to create a tagged link. Link generation happens in your browser.

GA4 UTM tracking works by adding campaign parameters to external links that send visitors to your website. When your GA4 tag collects the landing-page visit, those parameters supply source, medium, and campaign context for acquisition reporting. Use consistent tags, preserve them through redirects, and check session-scoped dimensions in the Traffic acquisition report.

Understanding GA4 UTM tracking

UTM parameters are query-string values that identify a marketing link. A source describes where traffic comes from, a medium describes the marketing method, and a campaign groups links under an initiative. They are especially useful for email, social posts, partner placements, and advertising links that would otherwise lack sufficient campaign context.

A tagged URL does not send data to GA4 by itself. The destination must load a working Google tag or another correctly configured GA4 collection implementation. Consent settings, blocked scripts, redirects, and the collected page URL can all affect what is recorded.

For parameter definitions and reporting availability, use Google's official URL-builder documentation. Video walkthroughs may show an earlier interface; the steps below use GA4 reports and dimensions rather than Universal Analytics views or goals.

How to set up UTM tracking in GA4

  1. Confirm the destination collects GA4 data. In Admin → Data collection and modification → Data streams, select the web stream and check its Measurement ID against your implementation. Verify that a landing-page visit reaches the intended property.
  2. Decide whether manual tagging is appropriate. Use UTMs for external campaign links you control. For Google Ads, normally retain auto-tagging and link the Ads account to GA4; manual UTMs are not a substitute for that integration.
  3. Choose a reporting vocabulary. Agree on source, medium, campaign name, and any optional identifiers before generating links.
  4. Build the URL. Use Google's Campaign URL Builder or a controlled template. No separate GA4 switch is required to recognize standard UTMs. Our UTM Builder guide explains the link-building workflow.
  5. Test the distributed link. Click it through the actual email, ad preview, shortener, or redirect. Check the final landing URL and the URL collected by GA4.
  6. Validate collection, then reporting. Use DebugView for the test event and inspect processed acquisition data after the reporting delay.

You do not need custom dimensions for standard campaign fields such as source, medium, or campaign name. Custom collection may be needed for additional business-specific information, but it should not duplicate GA4's built-in campaign dimensions.

A worked tagged-link example

Suppose a monthly email newsletter contains a hero button linking to a guide. This illustrative URL identifies the newsletter, the email medium, the campaign, and the placement:

https://example.com/guide?utm_source=newsletter&utm_medium=email&utm_campaign=spring_guide_launch&utm_id=sgl_001&utm_content=hero_button

For a footer link in the same email, keep the source, medium, campaign, and ID unchanged; set utm_content=footer_link. That allows comparison of collected visits and subsequent activity by placement. It does not make GA4 an email click counter: not every email click produces a collected website visit.

Start a query string with ?, and separate parameters with &. If the destination already contains ?product=123, append UTMs with &, not another question mark. Place parameters before a fragment such as #pricing, encode reserved characters, and avoid duplicate parameter keys.

Standard and optional campaign parameters

Google documents the following campaign fields. Use the first three as your practical baseline, then add optional parameters only when they answer a reporting question. See our GA4 UTM Parameters guide for additional examples.

utm_source
The traffic source, such as newsletter, instagram, or a partner name. It populates manual source dimensions.
utm_medium
The marketing medium, such as email, cpc, or social. It populates manual medium dimensions and helps determine channel grouping.
utm_campaign
The campaign name, such as spring_guide_launch. It supplies manual campaign-name context.
utm_id
The campaign ID. Google also uses this field for matching campaign information in relevant data-import workflows. utm_campaign_id is not the standard GA4 UTM campaign-ID field and is not automatically equivalent to utm_id.
utm_term
The paid keyword or term label. It populates manual term dimensions; a manually supplied label is not automatically the user's actual search query.
utm_content
A label distinguishing creatives, placements, or links. It populates manual ad content dimensions.
utm_source_platform
The platform responsible for directing traffic, such as a buying or distribution platform. It is distinct from utm_source and maps to manual source platform dimensions.
utm_creative_format
A documented field for creative format, such as display or video. Google's URL-builder documentation says it is not currently reported in GA4 properties. Do not assume appending it creates a selectable native report dimension.
utm_marketing_tactic
A documented field for targeting or marketing tactic, such as remarketing or prospecting. Google likewise says it is not currently reported in GA4 properties.

The last two fields are documented parameters, not invalid or universally unsupported tags. However, documentation of a parameter does not guarantee native reporting availability. If you need format or tactic analysis now, use a governed utm_content taxonomy or deliberately implement separate custom collection and reporting.

Use consistent naming conventions

The following table provides illustrative examples across common marketing channels (not customer results or a case study) using a consistent lowercase snake_case taxonomy:

Channel / Use utm_source utm_medium utm_campaign utm_content
Newsletter email newsletter email spring_launch hero_button
Paid social facebook paid_social spring_launch prospecting_video
Organic social instagram social spring_launch bio_link
Partner / referral partner_name referral spring_launch creator_review
QR / offline store_qr offline spring_launch counter_card

Teams should govern approved source and medium values and campaign naming together, keep placement distinctions in utm_content, and verify channel-group classification against their GA4 rules; a descriptive medium does not guarantee a particular default channel grouping. Do not use organic as a generic label for every unpaid link.

Channel grouping is rule-based. A descriptive medium does not automatically map to the channel you expect. For example, instagram with social can identify organic social traffic, while a recognized social source with a matching paid medium can identify Paid Social. Check your choices against Google's default channel group definitions.

Use UTMs on external acquisition links, not internal navigation. Internal tags introduce campaign information inside an existing visit and can interfere with interpretation. Track internal promotions with events instead.

Where to find UTM campaign data in GA4

A computer screen displaying a website analytics dashboard with UTM parameters and campaign tracking data

Traffic acquisition: campaign context for sessions

Open Reports → Acquisition → Traffic acquisition in the Life cycle collection. Depending on the published report collection, it may instead appear under Generate leads. Navigation is customizable; if the report is absent, an Editor or Administrator can check the Reports Library.

In the table, change the primary dimension from Session default channel group to Session source / medium or Session campaign, where available. Select the date range and search for the exact campaign name. Session campaign can contain campaign information from manual tagging or integrated advertising sources.

For explicitly manual fields, use dimensions such as Session manual campaign name, Session manual campaign ID, Session manual source platform, Session manual term, and Session manual ad content. Add them through report customization or an exploration when they are not in the report's dimension selector.

User acquisition: first acquisition context

The User acquisition report uses first-user dimensions, such as First user source / medium and First user campaign. A returning visitor clicking a newly tagged newsletter link does not necessarily acquire a new first-user source. Use session dimensions when asking which campaign brought this visit.

Explorations: campaign and placement together

Open Explore, create a free-form exploration, and import session-scoped manual dimensions. Put campaign name and manual ad content in rows, add appropriate metrics such as Sessions and Key events, and filter to your campaign. Keep dimension scopes aligned with the question. Consult Google's traffic-source scope documentation before interpreting first-user, session, and event-level results interchangeably.

Worked campaign-analysis example

To see how this works in practice, consider an illustrative reporting question: “Which source/medium and placement should we inspect for the spring launch?”

In an Exploration or customized Traffic acquisition report, select the appropriate date range with fully processed data. Filter or identify Session campaign = spring_launch. Compare your Session source / medium rows (for example, comparing facebook / paid_social against instagram / social). Next, add Session manual ad content to distinguish placements such as prospecting_video or bio_link. If a paid keyword or term label was deliberately supplied, inspect Session manual term as that label, not as proof of the actual search query.

Use Sessions and configured Key events as suitable metrics to evaluate the resulting table. This analysis describes observed visits, events, and attributed reporting; it does not measure causal lift or provide proof of ROI.

Reporting timing and measurement limitations

Realtime and DebugView help confirm that visits and events arrive, but they are not substitutes for processed campaign reports. A Realtime card showing first-user source does not verify the session campaign for a returning user.

Standard reports and explorations are not immediate. Google notes that processing can take 24–48 hours, and reports can change during processing. Check the property time zone, date range, and Google's data freshness documentation before concluding that a campaign is missing.

UTMs do not resolve consent-related gaps, browser restrictions, cross-device identity gaps, or copied links carrying someone else's original tags. Key events must be configured, and revenue requires correct transaction collection. Cost and profit are not supplied by a tagged URL.

A computer screen displaying a website with UTM parameters in the URL, while a chart shows the increase in traffic and conversions
UTMs provide campaign, source, and medium context for reporting. An attributed key event is not proof that a campaign caused it. Incremental impact requires an appropriate experiment or other causal measurement approach; tagging alone does not guarantee ROI improvement.

Troubleshooting missing or misattributed UTM data

The campaign does not appear

Inspect the final URL after every redirect. Look for stripped parameters, misspelled keys, empty values, duplicate keys, or parameters placed after a fragment. Confirm the collected page_location still contains the intended query string. A script can remove visible UTMs before the analytics tag reads them.

Then check the property, stream, consent behavior, tag firing, and collection request. Review active internal-traffic or developer-traffic data filters; GA4 does not use Universal Analytics views. Finally, allow processing time and remove unintended report filters.

The campaign is recorded under an unexpected channel

Compare the actual source and medium with the default channel rules. Unassigned means the values did not match a channel rule, not necessarily that the UTMs were absent. Correct future tags and, if appropriate, use a custom channel group; changing a URL does not rewrite previously collected source values.

First-user data shows an older campaign

That can be expected for a returning user. Inspect session-scoped dimensions. Also, GA4 does not start a new session simply because campaign parameters change mid-session, so test acquisition with a genuinely new session rather than repeatedly clicking tagged links in one active visit.

Paid-search or checkout attribution looks wrong

For Google Ads, check account linking, auto-tagging, and preservation of click identifiers such as gclid. Auto-tagging and manual fields can coexist, but integrated advertising dimensions may differ from manual dimensions.

If attribution changes around another domain, investigate cross-domain measurement and payment-provider referrals. See our GA4 cross-domain tracking guide. Do not add internal UTMs as a workaround for broken session continuity.

Short pre-launch QA checklist

Frequently asked questions

How do you build a UTM link for GA4?

Use Google's Campaign URL Builder or an internal controlled spreadsheet template. Provide the destination URL, enter values for utm_source, utm_medium, and utm_campaign, and append any optional identifiers. Ensure parameters start with ? (or & if existing query parameters already exist) and sit before any anchor fragment (#).

Where do you find UTM campaign results in GA4?

Navigate to Reports → Acquisition → Traffic acquisition and switch the primary dimension to session-scoped dimensions such as Session source / medium or Session campaign (note that navigation can vary depending on published collections). For granular breakdowns including manual ad content or term, create a custom free-form report in Explore.

How long does UTM reporting take to appear in GA4?

You can verify tag firing and parameter collection immediately using Realtime or DebugView. However, standard processed reports and Explorations take up to the stated 24–48-hour processing window, and reported figures can shift while data processing completes.

Why is a tagged visit missing or assigned unexpectedly?

Common reasons include redirects stripping query parameters, analytics tags blocked by browser shields or consent rules, viewing the wrong property or date range, active processing delays, source and medium combinations that fail to match default channel grouping rules (landing under Unassigned), or mistakenly checking first-user dimensions instead of session-scoped dimensions for returning visitors.

A reliable GA4 UTM workflow is straightforward: define the labels, build and test the links, inspect the correct reporting scope, and interpret the results within the limits of collection and attribution.

Read Next

ClickFunnels Webinar
Guides

ClickFunnels Webinar

ClickFunnels Webinar: Your Step-by-Step Guide to Successful Sales Funnels

Andrei Kholkin October 14, 2024
Brand Storytelling
Guides

Brand Storytelling

Brand Storytelling: Mastering the Art of Emotional Connection

Andrei Kholkin October 12, 2024
TikTok Analytics 2
Guides

TikTok Analytics 2

TikTok Analytics: Mastering Metrics for Strategic Growth

Andrei Kholkin October 10, 2024