UTM Parameters for Google Analytics 4: A Practical Guide

by Garrett Nafzinger

UTM parameters should make Google Analytics 4 more straightforward to use. Instead, they’re among a few sources of messy data in most accounts.

The problem isn’t GA4. It’s that UTMs require consistency, and most marketing teams don’t have a shared system for creating them. Traffic from Instagram shows up as “instagram” one week and “Instagram” the next. Paid ads get tagged with “social,” while organic posts use “organic_social.” Email, email, and e-mail are three separate things in GA4, causing e-mail campaigns to be split across three mediums.

It’s too bad there isn’t a simple way to clean this up in GA4, but Google Analytics has long been a tool that stores exactly what we send it. Over time, acquisition reports aren’t as accurate as they could be because technical and process aspects of UTM tracking must be aligned across your team.

This guide explains how UTM parameters work in GA4, when to use them, and how to set up a naming convention that keeps your data organized.

What GA4 Already Knows

GA4 can classify most traffic on its own when clear referral signals exist.

You don’t need UTMs for:

  • Organic search results (Google, Bing, etc.)
  • Direct visits (someone typing your URL in a browser)
  • Referrals (Editorial backlinks from other websites)

GA4 uses referrer data and known search-engine patterns to assign these visits to channels such as Organic Search, Direct, and Referral. When you add UTMs to those links, you can create more problems than you solve, overriding useful information GA4 already has.

UTMs become important when GA4 can’t reliably determine what kind of traffic you’re sending.

When You Need UTM Parameters

Use UTMs for any traffic where the intent isn’t evident from the referrer alone.

That includes:

  • Paid ads on social platforms (Instagram, TikTok, Pinterest, Facebook)
  • Email campaigns (newsletters, promotional emails, automated flows)
  • SMS or text message campaigns
  • Influencer partnerships
  • Affiliate links
  • QR codes
  • Sponsored content placements

In these cases, UTMs instruct GA4 how to classify traffic. Without them, a paid Instagram ad might appear as referral traffic or be lumped in with organic social posts.

How Source and Medium Work Together

Most UTM confusion happens because people misunderstand what source and medium are.

(UTM) Source: Where the Click Came From

The utm_source identifies the platform, system, or publisher that delivered the visitor.

Examples:

  • instagram
  • facebook
  • tiktok
  • klaviyo
  • newsletter

Source should be the specific place the link appeared.

(UTM) Medium: The Type of Traffic

The utm_medium describes the nature of the traffic.

Examples:

  • paid_social
  • organic_social
  • email
  • sms
  • affiliate
  • organic, referral, direct (though you often don’t need to assign these)

GA4 uses source and medium together to determine which channel bucket your traffic lands in. If either value is inconsistent or unclear, traffic can be misclassified.

Here’s an example: if you use utm_medium=paid_social for Instagram ads but utm_medium=social for TikTok ads, GA4 sees those as different mediums. Your paid social reporting is split, and you lose the ability to compare performance across platforms easily.

Why Naming Consistency Matters

GA4 does not normalize UTM values. Instagram and instagram are two different sources to GA4. Same with paid_social and Paid_Social.

This isn’t a bug. It’s how the system works. GA4 treats every unique string as a distinct value.

Industry guidance is clear: UTM values should be lowercase, spelled out, and standardized across your organization. Once inconsistent values enter GA4, cleaning them up later is challenging and often incomplete. You’ll be stuck with fragmented data for as long as you use that property.

Building a UTM Naming System for Your Team

UTM parameters work best when everyone follows the same rules.

Every organization should define:

  • Approved source values (instagram, facebook, klaviyo, etc.)
  • Approved medium values (paid_social, organic_social, email, sms, etc.)
  • Basic campaign naming conventions (202510-halloween-sale, 2025-blackfriday, etc.)

A shared Google Doc or internal wiki page works fine. The goal is to prevent people from making up new values every time they create a link.

When a new team member starts running ads or sending emails, they should know exactly which UTM parameters to use without guessing.

How to Track Paid Social Ads

For paid social campaigns, industry best practice is straightforward.

Use this structure:

  • utm_source = platform name
  • utm_medium = paid_social

Examples:

utm_source=instagram
utm_medium=paid_social

utm_source=pinterest
utm_medium=paid_social

This structure aligns with GA4’s default channel grouping logic. Paid social traffic lands where it should in your reports.

Using generic values such as “paid” or “cpc” can misclassify traffic.

Tracking Organic Social Posts Separately

Paid and organic social traffic should never share the same medium value.

For unpaid posts or links in your profile:

utm_source=instagram
utm_medium=organic_social

This keeps organic performance separate from paid campaigns. If you use the same medium for both, you can’t measure organic reach independently, and your paid campaign data gets contaminated.

Auto-Tagging vs Manual Tagging

Many advertising platforms offer auto-tagging or default URL parameters.

In practice, these features are inconsistent:

  • Some platforms use values that don’t align with GA4 channel logic
  • Default settings rarely match your internal naming conventions
  • Auto-tagging behavior varies between platforms and changes over time

Pinterest is a typical example. Without manual UTMs, paid traffic can appear as referral traffic. TikTok’s behavior depends on how you’ve configured your account. Meta (Facebook and Instagram) requires UTMs to be added manually at the ad level.

If a platform lets you set default URL parameters at the account level, that can work well as long as you’re using the right source and medium values. Otherwise, manual tagging at the ad or link level is more reliable.

The method matters less than consistency. Pick an approach and apply it evenly.

How to Track Email Campaigns

Email platforms often append tracking parameters automatically, but the defaults aren’t always GA4-friendly.

For email campaigns and automated flows, use:

utm_source=klaviyo
utm_medium=email
utm_campaign=black_friday_2025

Common issues include using “flow” or “campaign” as the medium, or creating custom medium values that GA4 doesn’t recognize as email traffic. When that happens, email visits show up as Direct or Unassigned.

Using a consistent email medium ensures your email traffic is grouped correctly in reports.

Campaign Names and What They Control

Campaign names help you distinguish between promotions, but they don’t affect channel assignment.

Examples:

utm_campaign=2025_black_friday
utm_campaign=holiday_sale
utm_campaign=welcome_series

Campaign naming should be consistent and readable, but it’s less critical than source and medium. Use lowercase and underscores for readability. Make sure someone reviewing reports six months from now will understand what the campaign was.

Common UTM Patterns That Cause Issues

Most GA4 attribution problems trace back to a handful of issues:

  • Shortened platform names (ig, fb, IG)
  • Inconsistent capitalization (Instagram vs instagram)
  • Missing utm_medium on paid traffic
  • Using placement names as medium values (reels, or IG Reels)
  • Applying paid search conventions to social ads
  • Adding UTMs to organic search or referral links unnecessarily

Avoiding these patterns prevents most long-term reporting issues.

Tools That Make UTM Tagging Easier

A UTM builder reduces manual errors and keeps naming predictable.

One straightforward option is utmbuilder.net. Note that “paid_social” may need to be entered manually since not all tools include it as a preset.

Shared templates or documented standards are just as important as tools. When multiple people create links, the shared standard matters more than which tool they use to build them.

A Practical Example

Here’s what happens when UTMs are inconsistent:

A healthcare practice runs Instagram ads using utm_medium=social and sends a monthly newsletter using utm_medium=email_campaign. Later, they launch Pinterest ads using utm_medium=paid_social.

In GA4, they now have three different medium values for what should be two channels (paid social and email). Instagram and Pinterest can’t be compared easily. The email traffic is partially hidden under a custom medium value (email_campaign, instead of email). When they try to measure paid social ROI, the Instagram data is missing.

Here’s the same scenario with consistent UTMs:

Instagram ads: utm_source=instagram&utm_medium=paid_social Pinterest ads: utm_source=pinterest&utm_medium=paid_social Email campaigns: utm_source=klaviyo&utm_medium=email

All paid social traffic appears under a single channel. All email traffic is grouped correctly. Reports are easier to read, and campaign performance can be compared accurately.

Next Steps

If your GA4 account has inconsistent UTMs, start by documenting what you want your naming system to look like going forward. Define source values for each platform you use. Pick one medium value for paid social, one for email, and one for organic social.

Then apply that system to new campaigns. Historical data won’t fix itself, but new data will be organized.

If you want help auditing your existing GA4 or UTM setup, defining a naming standard, or cleaning up GA4 acquisition reporting, contact Garrett Digital.