0%

Initialising Systems...

Back to Learn

UTM Tracking Guide: Campaign URLs & GA4 Reports

A practical guide for marketers, ecommerce teams, and agencies to build clean campaign URLs, avoid attribution errors, and analyze campaign traffic in Google Analytics 4.

What UTMs Do (and What They Don't Do)

UTM parameters (Urchin Tracking Module parameters) are standard key-value pairs added to the end of a URL. When a visitor clicks a tagged link, web analytics tools such as Google Analytics 4 (GA4) read those tags to identify which marketing initiative, platform, or link generated the visit.

You should use UTM parameters whenever you distribute links across external marketing touchpoints that you control:

  • Email marketing campaigns and automated newsletters
  • Organic social media posts, bios, and Linktree-style directory pages
  • Paid social advertising campaigns on platforms outside Google Ads (such as Meta, LinkedIn, and TikTok)
  • Affiliate partner links and influencer collaborations
  • Printed promotional QR codes, flyers, and business cards
  • Direct message campaigns (SMS, WhatsApp) and downloadable PDF whitepapers

Campaign Tagging vs. Automatic Referrer Detection

When a user clicks an untagged link on a webpage, browsers automatically send an HTTP Referer header (such as instagram.com or google.com). GA4 uses this header to classify organic traffic. However, automatic referrers cannot tell you whether a click came from an unpaid bio link, an ad test, or a targeted newsletter. UTM parameters explicitly provide that context, instructing your analytics tool to classify traffic into the intended campaign bucket.

What UTMs do not do: UTMs label inbound campaign links; they do not guarantee complete user-level attribution, bypass cookie consent, or identify individual people. Browser privacy features (like Safari's Advanced Tracking Protection), ad blockers, and visitors who decline analytics cookies via consent banners will still prevent or limit tracking. UTM parameters provide aggregated traffic attribution, not permanent or individual visitor identification.

Anatomy of a Tracked URL

A campaign URL consists of the base destination address, a question mark (?) that begins the query string, and individual UTM parameters separated by ampersands (&):

https://example.com/product?
utm_source=instagram&
utm_medium=paid_social&
utm_campaign=summer_sale_2026&
utm_content=carousel_v1&
utm_term=running_shoes

Standard UTM Parameters Reference

Below is a breakdown of the five standard parameters recognized across web analytics platforms:

Parameter Purpose Realistic Example GA4 Status
utm_source Identifies the specific platform, vendor, or site sending the traffic. newsletter, google, facebook Essential
utm_medium Identifies the high-level marketing channel or mechanism. email, cpc, paid_social, organic_social Essential
utm_campaign Identifies the overall marketing promotion, seasonal event, or theme. spring_sale_2027, brand_awareness Recommended
utm_content Distinguishes links pointing to the same page within the same creative or email. primary_cta, footer_link, video_ad_01 Optional
utm_term Supplies an audience segment, targeting criterion, or paid search keyword. running_shoes, cart_abandoners Optional

Official parameter requirements in GA4: According to Google Analytics documentation on campaign tracking, GA4 can capture individual UTM parameters independently if passed. However, to classify traffic accurately into standard channels, utm_source and utm_medium are practically mandatory. If utm_source is missing, traffic typically falls into (direct) / (none) or Unassigned.

A note on utm_term: This parameter does not automatically extract the search term someone typed into Google or Bing. Search engines withhold live organic search queries for user privacy. The value in utm_term is strictly whatever string you enter manually or whatever dynamic replacement token (such as {keyword} in paid search platforms) your ad network populates.

End-to-End Walkthrough: Tracking an Email Campaign

To see how campaign tagging works in practice, let's walk through tracking a seasonal promotional newsletter using the Groniq UTM Builder.

Scenario Details
Landing Page: https://example.com/spring-sale
Source: newsletter
Medium: email
Campaign: spring_sale_2027
Content: primary_cta (isolates the hero button from secondary links)

Here is the completed, correctly encoded destination URL:

https://example.com/spring-sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale_2027&utm_content=primary_cta

Step-by-Step Implementation

  1. Select your parameter values: Using medium=email ensures GA4 automatically groups this traffic into its default Email channel. Using source=newsletter identifies the distribution list, while content=primary_cta lets you distinguish between clicks on the main button and links in the email footer.
  2. Open the Groniq UTM Builder: Navigate to the Free UTM Builder & Campaign Generator.
    • In Guided Mode: In Step 1 (Destination URL), enter https://example.com/spring-sale. In Step 2 (Channel), click the Newsletter / Email preset button (which automatically configures source: newsletter and medium: email). In Step 3 (Campaign Name), type spring_sale_2027. Finally, open Step 4 (Optional details) and enter primary_cta in the Campaign Content field.
    • In Advanced Mode: Click the Advanced tab and enter the Destination URL, newsletter into Campaign Source, email into Campaign Medium, spring_sale_2027 into Campaign Name, and primary_cta into Campaign Content.
  3. Copy the generated URL: Click the Copy URL button located in the builder's preview panel.
  4. Test the link in a private browser window: Paste the copied link into an incognito or private browsing window. Confirm two things:
    • The correct landing page loads without 404 or application errors.
    • Check the browser address bar after page load. If your site performs server-side redirects (such as forcing http:// to https://, redirecting non-www to www, or appending a trailing slash like /spring-sale/), ensure the server passes the UTM query string through rather than stripping it off.
  5. Deploy in your email campaign: Paste the tested URL into your email service provider (e.g., Klaviyo, Mailchimp, or HubSpot) as the destination link for your primary call-to-action button. Note: If your email platform has an automatic UTM tracking toggle enabled, verify that its settings do not overwrite or duplicate your custom parameters.
Generate your campaign link now Build, validate, and copy single or bulk UTM links with preset channels.
Open UTM Builder

Where to Find Campaign Traffic in GA4

Once your campaign begins driving visits, you can analyze the incoming traffic inside Google Analytics 4. Follow this workflow based on official GA4 Traffic Acquisition documentation:

1. Access the Traffic Acquisition Report

In the left-hand navigation menu of GA4, go to Reports → Acquisition → Traffic acquisition.

Traffic Acquisition vs. User Acquisition (Scope Matters)

GA4 provides two different acquisition reports. Choosing the right one is critical:

• Traffic acquisition (Session scope): Measures how each individual session started using dimensions like Session source / medium and Session campaign. If an existing email subscriber clicks your newsletter link, their session will appear under email / newsletter here. Use this report for campaign evaluation.

• User acquisition (First-user scope): Measures how a person first discovered your website across their lifetime using dimensions like First user source / medium. If that subscriber first discovered your brand via Google organic search six months ago, this report will continue attributing them to Organic Search, not your email campaign.

2. Switch Primary Dimensions & Apply Filters

In the Traffic acquisition data table, the default primary dimension column is Session default channel group. To view your specific UTM tags:

  • Click the dropdown arrow above the first column of the table and switch the dimension to Session source / medium or Session campaign.
  • Set the Date Range: In the top-right corner of the interface, ensure your date selector covers the campaign timeframe.
  • Filter for your campaign: Use the search bar directly above the data table to filter for spring_sale_2027. Alternatively, click Add filter at the top of the report, select dimension Session campaign, choose match type contains or exactly matches, and enter spring_sale_2027.

3. Analyzing utm_content and utm_term (Explorations)

By default, GA4 standard reports do not display columns for utm_content (named Session manual ad content) or utm_term (named Session manual term). To inspect these granular values:

  • As a Secondary Dimension: In the Traffic acquisition report, click the blue + icon next to the primary dimension header and search for Session manual ad content.
  • Via Explorations: For deep analysis, click Explore in the left menu and start a Free-form Exploration. In the Dimensions panel, import Session campaign and Session manual ad content. In the Metrics panel, import Sessions, Engaged sessions, and Key events. Drag them into your report layout to see side-by-side performance for every link variation.

4. Immediate Checks vs. Processed Reports

Marketers frequently worry when a test click does not appear in standard reports immediately. Keep these timing factors in mind:

  • Realtime Verification: Open Reports → Realtime or Admin → DebugView (when using the Google Analytics Debugger browser extension). Realtime activity displays within seconds to confirm that your tracking tags fire properly.
  • Data Processing Latency: Standard GA4 reports require 24 to 48 hours to process, aggregate, and populate session data. Seeing zero campaign sessions in standard tables five minutes after launching is expected behavior.
  • Collection Blockers: A test click does not guarantee data collection if your browser runs an ad blocker, uses privacy shields (like Brave or Firefox Strict Tracking Protection), or if you reject analytics cookies on your site's consent banner.

UTMs Do Not Track Purchases By Themselves

UTM parameters only categorize the incoming session. They do not automatically track e-commerce purchases, leads, or revenue. Your website must have relevant tracking events (such as purchase or generate_lead) properly implemented and marked as Key events in GA4 Admin. GA4 can then attribute those key events to your UTM campaign source.

Practical UTM Naming Conventions

Consistent naming rules prevent fragmented reports. Follow these core standards across your team:

  • Always use lowercase: GA4 is case-sensitive. If one team member writes Email and another writes email, GA4 will treat them as two separate rows in your reports, distorting totals.
  • Use a consistent separator (hyphens or underscores): Stick to either spring-sale-2027 or spring_sale_2027 across all tracking.
  • The truth about spaces in URLs: Spaces do not technically break HTTP requests because browsers convert them to URL-encoded entities (such as %20 or +). However, encoded spaces make links fragile in chat apps and email clients, increase the chance of copy-paste truncation, and create messy report tables. Using simple alphanumeric strings with hyphens or underscores avoids these problems completely.

Channel Naming Examples & GA4 Channel Group Mapping

GA4 categorizes traffic into standard default channels based on strict rule matching. Ensure your utm_medium aligns with official GA4 criteria:

Channel utm_source utm_medium utm_campaign Resulting GA4 Channel
Email Newsletter newsletter email spring_sale_2027 Email
Paid Social (Meta) facebook / instagram paid_social spring_sale_2027 Paid Social
Organic Social linkedin organic_social brand_thought_leadership Organic Social
Affiliate Partnership partner_network affiliate spring_sale_2027 Affiliates

Warning on arbitrary mediums: If you invent non-standard medium values such as utm_medium=promo, utm_medium=insta, or utm_medium=post, GA4 will not recognize them and will classify the traffic as Unassigned.

Shared vs. Distinct Campaign Names Across Channels

Neither approach is mandatory; choose based on what you need to evaluate:

  • Shared campaign names (e.g. spring_sale_2027 across Email, Meta Ads, and Affiliates): Best when you want to measure total omnichannel performance under one unified campaign row in GA4. You can break down individual channels using secondary dimensions.
  • Distinct campaign names (e.g. spring_sale_email_vip vs spring_sale_meta_prospecting): Best when different channels run unique offers, distinct audiences, or separate budgets and you want immediate high-level clarity in the Campaign dimension without building custom explorations.

Common Mistakes & Troubleshooting

Before launching your next campaign, review this troubleshooting checklist to avoid common tracking errors:

Query-String Syntax Errors

A URL can contain only one question mark (?). If your destination URL already contains query parameters (e.g. example.com/shop?category=shoes), append UTMs with ampersands (&utm_source=newsletter), not another question mark. Also, never place anchor fragments before query strings (e.g. example.com/#reviews?utm_source=... is invalid; write example.com/?utm_source=...#reviews).

Server Redirects Stripping Parameters

When web servers process 301 or 302 redirects (such as adding a trailing slash, redirecting HTTP to HTTPS, or pointing non-www to www), poorly configured redirect rules frequently strip off the query string. Always test the destination URL in a browser and verify that the final URL in the address bar still contains your parameters.

Using UTMs on Internal Site Links (Never Do This)

Do not add UTM parameters to internal links (such as your homepage hero banner linking to a product page). In GA4, clicking an internal link tagged with UTMs immediately overrides the session's active traffic source. If a visitor arrived via a paid ad and subsequently clicked an internal banner tagged with utm_source=homepage_hero, subsequent events and purchases will be attributed to your internal link rather than the paid ad. For internal link tracking, use GA4 recommended events (such as select_promotion) or custom click events.

Inconsistent Casing & Naming

Because GA4 dimensions are case-sensitive, mixing Facebook and facebook or Email and email fragments your campaign reports into multiple rows. Enforce lowercase values across your entire team.

Personal Information (PII) in UTMs

Never include personally identifiable information (such as names, email addresses, phone numbers, or user IDs) in UTM values. Passing PII in URLs violates Google Analytics Terms of Service and data privacy regulations (GDPR and CCPA), and can result in data deletion or property termination.

For Google Ads campaigns, manually creating UTM tracking links is generally unnecessary and can lead to data discrepancies.

The Role of Auto-Tagging

When you link your Google Ads account to GA4 and enable Auto-tagging in Google Ads settings, Google automatically appends a Google Click Identifier parameter (gclid) to your landing page URLs. This identifier allows GA4 to import detailed Google Ads dimensions automatically, including:

  • Google Ads campaign, ad group, and ad ID
  • Search query and keyword match type
  • Google Ads creative format and ad network placement
  • Impression, cost, and click data synchronized via API

Manual UTMs vs. Auto-Tagging Precedence

According to official Google Analytics guidance, when both gclid and manual UTM tags are present on a destination URL, GA4 prioritizes the auto-tagged values for its Google Ads and traffic classification dimensions.

When are manual UTMs still useful with Google Ads? If you use external third-party tools (such as HubSpot, Salesforce, or a standalone attribution platform) that cannot read Google's proprietary gclid, you can add manual UTM parameters to Google Ads using Tracking Templates and dynamic ValueTrack parameters (e.g. utm_campaign={campaignid}&utm_content={creative}). Keep auto-tagging enabled so GA4 continues to receive full Google Ads data while your third-party systems capture standard UTM tags.

Frequently Asked Questions

Do I need UTMs on every link?

No. Only tag links on external channels you control (emails, social posts, non-Google ads, QR codes, affiliate links). Never tag internal navigation links on your own site, and do not expect to tag organic search results or independent editorial press coverage.

Can UTMs track conversions by themselves?

No. UTM parameters only attribute the visit to a specific source, medium, and campaign. Tracking purchases or form completions requires properly implemented conversion events (e.g. purchase or generate_lead) designated as Key events in GA4.

Why is my campaign missing from GA4?

Common causes include standard report processing latency (GA4 takes 24–48 hours to populate standard reports), inspecting the First-user report instead of Traffic acquisition, date range filters excluding today's test, server redirects stripping parameters, or ad blockers preventing the analytics tag from firing.

Should I add UTMs to internal links?

No. Adding UTMs to internal navigation links overwrites the session's traffic source attribution mid-session, masking the true marketing channel that brought the user to your site. Use custom event tracking for internal banners.

Do UTMs improve Google rankings?

No. UTM parameters are purely analytics measurement tags; search engine crawlers ignore them for ranking purposes. To prevent search engines from treating parameter-tagged URLs as duplicate content, ensure your pages include proper canonical tags pointing to the clean base URL.