How to Track Email Links in Google Analytics

Cody Schneider8 min read

You work hard on your email newsletters and campaigns, but can you actually prove they're working? If you check Google Analytics and see your email traffic getting lumped into "Direct" or "(not set)," you're flying blind. This article will show you exactly how to use UTM parameters to track every single click from your emails, so you can measure what's driving traffic, engagement, and most importantly, sales.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

First, Why Can't Google Analytics Track Email By Default?

It seems like Google Analytics should be smart enough to know when traffic is coming from an email, but it often can't. When a user clicks a link from their email client (like Outlook, Apple Mail, or a Gmail app), the browser often doesn't pass along any referrer information. A "referrer" is data that tells analytics tools where the visitor came from, like another website or a social media platform.

Without that referrer data, Google Analytics doesn't have a clear source. Instead of crediting your email hard work, it might misattribute that valuable traffic to:

  • Direct Traffic: This is a catch-all category for visitors where GA doesn't know the source. It might look like the person typed your URL directly into their browser, even though they clicked from your newsletter.
  • (not set): This generic label appears when GA has received some data, but the specific source, medium, or other parameter is missing.

This is a big problem. If your email traffic is miscategorized, you can't accurately measure your campaign's performance, prove your ROI, or make informed decisions about what's resonating with your audience. The solution is to give Google Analytics a little help by manually tagging your links with UTM parameters.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

What Are UTM Parameters? A Quick Breakdown

UTM stands for "Urchin Tracking Module" — a name left over from a web analytics company Google acquired years ago. In simple terms, UTMs are just small tags you add to the end of a URL. These tags don't change the destination page, but they pass crucial information back to Google Analytics, telling it exactly where the click came from.

Think of it like adding a packing slip to a package. The package still goes to the same destination, but the slip tells the recipient who sent it, what's inside, and why it was sent. There are five standard UTM parameters, but for email tracking, you only need to focus on three to start.

Here are the five parameters and what they do:

  • utm_source (Required): This identifies the specific sender of the traffic. For email, this could be your email service provider (ESP) or a general name for your sender. Examples: klaviyo, mailchimp, may_newsletter.
  • utm_medium (Required): This identifies the marketing channel. For all your email links, this should simply be email. Keeping this consistent is very important. Example: email.
  • utm_campaign (Required): This is the name of your specific promotion or campaign. Be descriptive here! Examples: spring_flash_sale_2024, weekly_content_digest, new_product_launch.
  • utm_content (Optional but useful): This helps you differentiate links that point to the same URL within the same email. This is perfect for AB testing different calls-to-action (CTAs). Examples: main_cta_button, top_banner_link, footer_logo.
  • utm_term (Optional): This was originally designed for paid search ads to track keywords. For email, it's less commonly used but can be repurposed for internal tracking or more granular AB testing efforts.

How to Build Your Trackable URLs with UTMs

Building a UTM-tagged URL sounds technical, but it’s incredibly straightforward. You don’t need to do any coding or manual typing. Google provides a free tool that does all the work for you: the Campaign URL Builder.

Let's walk through an example. Imagine you run an e-commerce store and you're sending a marketing email through Klaviyo to announce your 2024 Mother's Day Sale.

Step 1: Go to Google's Campaign URL Builder

You can find it by just googling "Campaign URL Builder" or heading there directly. Bookmark this page — you'll be using it a lot.

Step 2: Enter Your Destination URL

This is the page on your website where you want people to land after clicking the link. In our example, it's the dedicated Mother's Day sale page.

  • Website URL: https://www.yourstore.com/mothers-day-specials

Step 3: Fill in Your UTM Parameters

Now, fill in the campaign fields based on the definitions we covered above. The tool has specific boxes for each one.

  • campaign_source: klaviyo (since that's our ESP)
  • campaign_medium: email (because it's an email campaign)
  • campaign_name: mothers_day_sale_2024 (a clear, descriptive name for the sale)
  • campaign_content: hero_image_button (let's say this link is for the main button in the email's hero image)

Step 4: Copy Your Newly Generated URL

As you fill in the fields, the builder will automatically generate a long, tagged URL at the bottom of the page. It will look something like this:

https://www.yourstore.com/mothers-day-specials?utm_source=klaviyo&utm_medium=email&utm_campaign=mothers_day_sale_2024&utm_content=hero_image_button

It looks a bit messy, but that's what makes the magic happen! Now, instead of using the simple URL in your email newsletter, you'll use this new, fully-tagged version. Anyone who clicks it will have all that tracking info sent directly to your Google Analytics account.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Best Practices for Naming Your UTM Parameters

Using UTMs is easy, but consistent use is what separates clean, actionable data from a confusing mess in Google Analytics. If you're not careful, you'll end up with multiple versions of the same campaign that are hard to analyze. Here's how to keep things tidy from day one.

1. Always Use Lowercase

Google Analytics is case-sensitive. This means Klaviyo and klaviyo will show up as two separate sources in your reports. To avoid this, get in the habit of using lowercase for everything. It's the simplest way to maintain data integrity.

2. Never Use Spaces

URLs and spaces don't mix well. If you put a space in a UTM tag, it will get converted into a clunky %20. Instead, use underscores (_) or hyphens (-) to separate words. spring_sale is much cleaner and easier to read than spring%20sale.

3. Be Consistent and Descriptive

The name may_newsletter gives you a lot more information a year from now than email_1. Your campaign names should be clear and descriptive enough for anyone on your team to understand immediately. Settle on a format and stick with it. For example, you could use [promotion]_[channel]_[year] or a similar framework.

4. Create a Naming Convention Document

The best way to ensure consistency, especially if you have a team, is to create a simple spreadsheet to track your UTM usage. Your document can be as simple as a Google Sheet with columns for "Campaign Name," "Source," "Medium," and a brief description. It acts as a single source of truth and prevents campaigns from being tagged improperly.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Where to Find Your Email Campaign Data in Google Analytics 4

Once you've sent an email with UTM-tagged links and visitors have started clicking, you're ready to see the results. Here’s where to find your campaign data in GA4:

  1. Log into your Google Analytics 4 account.
  2. From the left-hand navigation menu, go to Reports → Acquisition → Traffic acquisition.
  3. By default, this report shows data grouped by "Session default channel group." This view is helpful, but we need to see our campaign-specific data.
  4. Click on the dropdown menu for the primary dimension (it will say "Session default channel group") and change it to "Session campaign."

Voila! You will now see a table listing all your campaign names — the values you set in utm_campaign. In this view, you can see key metrics for each campaign, like the number of users, new users, sessions, engagement rate, conversions, and total revenue.

To dig deeper, you can add a secondary dimension. Click the blue "+" sign next to the "Session campaign" dropdown. Search for and select a dimension like "Session source / medium" to see which sources drove the traffic for each campaign. If you used utm_content to test different links, you can add "Session manual ad content" to see which specific links performed best.

Troubleshooting Common UTM Issues

  • My campaign isn't appearing in GA4. First, be patient — GA4 data can sometimes take 24–48 hours to fully process. Also, double-check the exact link you used in your email campaign. Was it copied correctly from the URL builder? One tiny typo can prevent the data from being tracked.
  • My email traffic is still showing as "Direct." This is almost always caused by an improperly implemented UTM tag. Either the link in the email was the "clean" URL without the tags, or the tags were malformed. Test the link yourself to see what URL appears in your browser's address bar.
  • My report is a mess of different campaign names. This is a sign that your naming conventions are inconsistent. It's time to create and enforce that documentation spreadsheet we discussed earlier to ensure everyone is using the same tags for the same things.

Final Thoughts

Tracking your email links with UTMs is not advanced data science, it's a fundamental best practice for any serious marketer. By taking a few extra minutes to properly tag your URLs, you shift from guessing what works to knowing with confidence which email campaigns are driving traffic, engaging your audience, and delivering real revenue.

Of course, building all your links and then manually digging through Google Analytics reports is still a time-consuming process. We built Graphed to remove this friction entirely. Instead of creating reports and searching for insights, you can connect your Google Analytics account in seconds and just ask in plain English: "Show me my top email campaigns by conversion rate this quarter." We'll instantly build a live dashboard for you, so you can spend your time acting on insights, not finding them.

Related Articles