Quick Navigation
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 (&):
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.
https://example.com/spring-salenewsletteremailspring_sale_2027primary_cta (isolates the hero button from secondary links)Here is the completed, correctly encoded destination URL:
Step-by-Step Implementation
-
Select your parameter values: Using
medium=emailensures GA4 automatically groups this traffic into its default Email channel. Usingsource=newsletteridentifies the distribution list, whilecontent=primary_ctalets you distinguish between clicks on the main button and links in the email footer. -
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 configuressource: newsletterandmedium: email). In Step 3 (Campaign Name), typespring_sale_2027. Finally, open Step 4 (Optional details) and enterprimary_ctain the Campaign Content field. - In Advanced Mode: Click the Advanced tab and enter the Destination URL,
newsletterinto Campaign Source,emailinto Campaign Medium,spring_sale_2027into Campaign Name, andprimary_ctainto Campaign Content.
- In Guided Mode: In Step 1 (Destination URL), enter
- Copy the generated URL: Click the Copy URL button located in the builder's preview panel.
-
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://tohttps://, 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.
- 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.
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 dimensionSession campaign, choose match type contains or exactly matches, and enterspring_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 campaignandSession manual ad content. In the Metrics panel, importSessions,Engaged sessions, andKey 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
Emailand another writesemail, 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-2027orspring_sale_2027across 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
%20or+). 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 | spring_sale_2027 | ||
| Paid Social (Meta) | facebook / instagram | paid_social | spring_sale_2027 | Paid Social |
| Organic Social | 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_2027across 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_vipvsspring_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.
Google Ads & Auto-Tagging
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.