Mistakes Big Companies, Including Google, Make in UTM Parameters and One Company Does It Really Well

While building a UTM URL, you sometimes find yourself wondering what should you use for utm_campaign, utm_source or any other UTM parameter. Sometimes it’s clear, but often you don’t know and just make a guess. When you realize it was not the best choice, it’s probably too late.

One option to prevent this is to search online for what the experts recommend. But there’s also another great option. You can look at the examples of UTM parameters that land in your inbox every day. Some of them will give you good ideas.

You probably get regular emails from your favorite websites like Pinterest, Groupon, Fab, and the latest internet darling, Medium. Click on a link in those emails and you will notice the UTM parameters in the URL.

Let’s look at emails from 10 companies. We can see some mistakes as well as best practices in how they use UTM parameters.  We will also see how one company knows how to use UTM parameters really well. As we go through each email, we will develop a sense of good practices to follow when creating UTM parameters.

If you don’t know what UTM parameters are or why you should use them, you can look at these articles and also search for “UTM parameters”.

Let’s get started.

10. Pinterest

Pinterest sends out weekly emails with a list of “boards” to follow. Each “board” has an author, a few images, and a “Follow Board” button. All the links for a given board, except the author, go to the same page. Here’s a snapshot of the part of the email.

Links in Pinterest email
Links in Pinterest email

All the links (marked in red boxes) share these UTM parameters:

utm_campaign : weekly_wkly_130722
utm_medium : email
utm_source : sendgrid.com

What’s good about it:

  • utm_medium as “email” is short and clear.
  • “130722” in utm_campaign is the date the email was sent out (22 July, 2013). It’s a useful piece of information to have.

What could be improved:

  • utm_campaign has “weekly” and “wkly”. This duplicate information can only cause confusion.
  • Sendgrid is an email service provider and should not be used for utm_source. It has no marketing value.
  • There’s no way to know if people click more frequently on one of the images or the “Follow Board” buttons.

9. Medium

The weekly email from Medium has a list of recommended articles.

Links in Medium email
Links in Medium email

Each link has a different URL, but shares the same UTM parameters with others.

utm_campaign : 28A
utm_medium : email
utm_source : newsletter28A

What’s good about it:

  • utm_source with “newsletter” in it is meaningful.
  • When you click a link in an email from Medium, the UTM parameters disappear as soon as the page loads. This completely hides the UTM parameters from the website visitors and also makes the URLs look nicer in the browser.

What could be improved:

  • Using codes like “28A” prevents people from knowing what campaign they were part of. But it also means that anyone looking at analytics reports has an unnecessary overhead of figuring out the difference between “28A” and “29A”.
  • Because of “28A” in utm_source, you cannot easily compare the performance of “newsletter” emails across different campaigns. It is also duplicate information from utm_campaign.

8. Fab

Fab sends out a weekly email with the best selling products, top events, etc.

Links in Fab.com emails
Links in Fab.com emails

Similar to Pinterest and Medium, all the links in the email have the same UTM parameters.

utm_campaign : best_of_fab_mailer
utm_medium : email
utm_source : Triggermail
utm_term : best_of_fab_production

What’s good about it:

  • utm_campaign and utm_medium are clear and make sense.
  • utm_source as “Triggermail” might mean that these emails are triggered based on some user settings. It’s clear.

What could be improved:

  • Specifying utm_term is a big mistake. It should only be used in paid search to specify keywords, such as in Google Adwords. It also does not provide any information that utm_campaign does not.
  • Use lowercase for utm_source.

7. Unbounce

People at Unbounce create very good content about marketing and landing page optimization. They promote creating highly converting landing pages. That’s why I was a bit disappointed when I looked at the links in their email.

Links in Unbounce emails
Links in Unbounce emails

All the links go to the same URL and share the same set of UTM parameters.

utm_campaign : big-picture-cro
utm_medium : Email-Invite
utm_source : Webinar
utm_content : conversion

What could be improved:

  • utm_medium and utm_source should be lowercase.
  • utm_medium should just be “email”. Any additional information like “invite” should be in other tags.
  • utm_source as “Webinar” is incorrect. It would make sense if I had subscribed to a “webinar” list. However, I got the email because I signed up for the Unbounce service. Something like “mail_settings” or even “newsletter” would make sense.
  • It is not clear what utm_content “conversion” is supposed to tell if it is the same for all the links.

6. Groupon

Like others, Groupon also sends regular emails with various offers. A snapshot of part of the email is shown below. It has two offers.

Links in Groupon emails
Links in Groupon emails

An offer has links for the image, title and “View” pointing to a unique url for that offer.

Links in the offer on the left, “Standup: Jeff Dye”, has the following UTM parameters:
utm_campaign : gl-cobbs-comedy-club-7
utm_medium : email
utm_source : newsletter

Links in the offer on the right, “Photography Workshop”, has these UTM parameters:
utm_campaign : eric-c-gould-photography-6
utm_medium : email
utm_source : newsletter

What’s good about it:

  • utm_medium and utm_source are concise and clear.

What could be improved:

  • utm_campaign does not say anything about the campaign. It should tell why you are sending this email. Fab.com’s “best_of_fab_mailer” is a good example of this. Also, the traffic reports for the target urls already measure what utm_campaign is trying to track. Imagine the number of campaigns showing up in Groupon’s analytics reports (a gazillion?).
  • It does not track if people click more on the image, the header or the “View” link.

5. Gilt City

Let’s get to more interesting cases. One such is Gilt City.

utm_content for links in Gilt City emails
utm_content for links in Gilt City emails

All the links in the email share a common set of UTM parameters, except utm_content which are shown in the snapshot above.

utm_campaign : Act20-562039272-san-francisco
utm_medium : email
utm_source : city
utm_term : 1342854

What’s good about it:

  • “city” for utm_source probably makes sense since it might mean people subscribed to Gilt City. However, it could be more specific.
  • utm_content is different for different kinds of links. e.g it is “templatelogo” for Gilt City log, it is “templateviewall” for “View All Offers”, and it is “sunnycity20”  for the big red “Get 20% Off”. It tells us what kind of link was clicked.

What could be improved:

  • As we discussed earlier, utm_term should not be used.
  • utm_campaign value of “Act20-562039272-san-francisco” has some internal numbering system which might not be very easy to analyze.
  • An underscore should be used in “san-francisco” part of utm_campaign. This tells us it is one word and separates it from the other information.

4. Zillow

Zillow has a very nice website. Their email also looks very well thought out.

Links in Zillow emails
Links in Zillow emails

A typical link in their email has following UTM parameters

utm_source : email
utm_medium : email
utm_campaign : emo-headerhome-20130730_Buzz_LocalData_updatetemplate

All the links have utm_source and utm_medium as “email”, but the utm_campaign is different for each link.

Let’s look at the utm_campaign values for each link. They are named in great detail. Hold on to your seats. We are diving deep. 

utm_campaign values:  The numbers next to each utm_campaign corresponds to the link in the image.

  1. emo-headerhome-20130730_Buzz_LocalData_updatetemplate
  2. emo-headermortgagerates-20130730_Buzz_LocalData_updatetemplate
  3. emo-headerdigs-20130730_Buzz_LocalData_updatetemplate
  4. emo-headerzillowlogo-20130730_Buzz_LocalData_updatetemplate
  5. emm-0713_LocalClaim-hdpbutton
  6. emm-0713_LocalClaim-hdpimage
  7. emm-0713_LocalClaim-hdpheader
  8. emm-0713_JulyLocalClaim-zhvi
  9. emm-0713_JulyLocalClaim-summary
  10. emm-0713_JulyLocalClaim-blog
  11. emm-0713_JulyLocalClaim-blog
  12. emm-0713_JulyLocalClaim-blog

You can almost figure out the naming convention they use. For links 1 to 4, “emo-header” is used as a prefix, for link 5-12, “emm-0713” is used as a prefix, etc.

What’s good about it:

  • They capture a lot of the information necessary to know what people are clicking.
  • Separating different pieces of information by a dash (“-“) helps to parse them easily in analytics tools.

What could be improved:

  • “email” is not a utm_source.
  • There are three variations of dates in utm_campaign: “20130730” in links 1 to 4, “0713” in links 5 to 7 and “0713_July” in links 8 to 12. This inconsistency only makes it difficult to generate reports based on dates, the reason they were added in the first place.
  • There is no need to capture the month twice in utm_campaign by adding “July” in links 8 to 12. It also breaks the consistency of the prefix “emm-0713_LocalClaim” by inserting “July” in there.
  • Lowercase letters should be used in all parameters.
  • Using “blog” as a suffix for links 10 to 12 tells us about the destination, but not what was clicked.
  • utm_campaign parameter is overloaded with information. Information like “hdpbutton”, “hdpimage”, “hdpheader”, etc. belongs in utm_content.

Overall, Zillow emails have the depth of tracking. The main issue with the inconsistent naming convention is the difficulty in analyzing the reports.

3. Ted

I love Ted videos. Who doesn’t? A lot of them are very inspiring. Let’s look at one of their weekly emails. Only lower half is shown.

utm_content for links in Ted emails
utm_content for links in Ted emails

The common UTM parameters shared by all the links are:

utm_campaign : newsletter_weekly
utm_medium : email
utm_source : newsletter_weekly_2013-06-08

utm_content is different for each link based on the context and are shown in the snapshot. e.g. the link on the quote by Adam Davidson has utm_content as “quote”. Similarly, other links have utm_content as “conversation” and “comment”.

What’s good about it:

  • This is a great example of how to use utm_content. They know exactly what kind of links get the most clicks.
  • utm_medium and utm_campaign are very clear.

What could be improved:

  • utm_source should not change for every newsletter. The date information does not belong in the source. It should go in utm_content.
  • utm_source repeats the “newsletter_weekly” which is already part of utm_campaign. It should be “myaccount” or “email_settings” because that’s how I get on this email list.

Overall, this is a very good UTM implementation. It also highlights a drawback of UTM parameters. They don’t have a very good way to track dates. One option is to add them to utm_content. e.g. “2013_06_08-conversation”. But then it makes analyzing utm_content more complex.

2. Google Offers

Let’s look at Google, the reason we use UTM parameters in the first place. Let’s see how they do it with Google Offers.

utm_content for links in Google Offers emails
utm_content for links in Google Offers emails

Google Offers, the daily deals service, sends out regular emails with the latest deals. Part of one such email is shown here. The top offer “BJ’s Restaurant and Brewhouse” is a single link. The other two offers have four links each, all pointing to the offer url.

The common UTM parameters for all the links are,

utm_campaign : dailyppo
utm_medium : email
utm_source : ppo

The utm_content for the links are “savable0”, “savable1” and “savable2” respectively.

What’s good about it:

  • utm_source “ppo” is probably the list that a person gets on by signing up for Google Offers. It is concise and clear.
  • utm_campaign “dailyppo” suggests that there is a daily email going out and perhaps there is also a weekly one. This is also very clear.
  • utm_content is not specific to any actual offer, but to the layout of the email. If “savable1” gets the most clicks across different emails, then we know where to promote the more expensive offers.

What could be improved:

  • There’s no way of knowing if people click more on “Get offer” button, the image or the heading of a particular offer.

Overall, the UTM parameters are used better than most companies. They are simple, clear and provide a lot of valuable information without making them clunky and difficult to analyze.

1. Redfin

Redfin sends an email when something matching your search criteria is found. Let’s look at their “Instant Updates” email.

utm_content for links in Redfin emails
utm_content for links in Redfin emails

All the links in this email share these UTM parameters,

utm_campaign : instant_listings_update
utm_medium : email
utm_source : myredfin

utm_content for each link is different and the exact values are shown in the snapshot of the email. e.g utm_content for the image of the home is “home_image”. If there were a second house in the email, it would also have “home_image” as utm_content for the link on its image.

What’s good about it: 

  • utm_campaign tells us exactly what this email is about.
  • utm_source is also very precise. These emails are sent when someone opts for listing updates in their Redfin account. So “myredfin” is exactly the source of the emails.
  • utm_content is different for each type of link and is based on the content. This tells Redfin exactly what links people are clicking even when they go to the same page.

Redfin has the most rich and clean set of UTM parameters I have ever found (especially in their instant updates emails). However, they don’t implement the same level of tracking in their other emails, like “Insider Reports”. It’s possible that a different team is responsible for those emails.

Final Thoughts:

Even though we noticed some mistakes in UTM parameters in emails from these companies, we still don’t know their exact analytics setup, or their needs. The current set of UTM parameters probably works best for their particular requirements.

The focus of this post is on simplicity. Good conventions, implemented consistently, can not only enable great insights, but also get them faster with minimum frustration. We also get accurate analytics reports since the risk of navigating through complex UTM parameters, writing regular expressions to parse them, miscommunication across team members, and other such unexpected issues is reduced considerably.

What conventions do you use for UTM parameters? What’s working for you and what’s not?

Note: You can use a tool like Terminus to manage your UTM tracking URLs. It will help you enforce good practices and consistency across your team.

  • Ramsay Leimenstoll

    This article is amazing! My company has a legacy homegrown utm system that no one really understands anymore, so analytics insights are greatly hampered. This article inspired me to try to overhaul them entirely. It’s a very complex topic, but by the time I’d reached the end of the article (all the while toggling Google’s URL builder tool and a word processor document where I was taking notes), I already had the first level of a guidelines outline and a possible format to start using ASAP. Thank you!

    • Thanks for the compliment Ramsay. I really appreciate it.

  • Ramsay Leimenstoll

    I’ve actually got a question for you, Puru: Say I’m trying to define utm variables for one link in the first of a series of drip campaign emails.

    Would you suggest adding a “1” or “day1” to utm_source or utm_campaign? I’d want to be able to compare its click-through rates to those of the 2nd email in the series, etc.

    A 2nd Q: if I wanted to try leading the series with different topics (e.g. in one series day1 is about balloons, and in the other day1 is about cookies) where would you suggest adding a phrase that would help me compare those?

    • Ramsay,

      For the first question, I would suggest using “1” instead of “day1” since the interval between emails can vary. Also, I would suggest adding it to utm_campaign. When adding additional information to any UTM parameter, I like using dash “-“. e.g “how_to_make_coffee-1”. This way you have all the “how_to_make_coffee” campaigns next to each other in analytics and you can compare. If you want to get fancy later on with advanced features of Google Analytics (e.g using regular expressions), you also have a clean reference “-” to separate the information.

      For the second question, it seems that you want to be able to easily compare 1st email of balloon with 1st email of cookies. One option is to use, “learn_stuff-1-balloons” and “learn_stuff-1-cookies” for utm_campaign for the first email and so on. But you could also use “learn_stuff-balloons-1” and “learn_stuff-cookies-1”. I personally would prefer the second approach since all the balloons campaigns will be together and so will be the cookies campaigns.

      Hope this helps. Thank you very much for the questions, Ramsay. It also helps me think through new scenarios.


      • Ramsay Leimenstoll

        Thank you so much for this detailed response, Puru. It really helped. I guess it all comes down to what is most important to us to be able to compare most readily/easily. I think we might try out one way of defining our utm parameters for a week or so, and if we realize that they’re missing something crucial, or making something important too difficult, we can change them up. I’m confident that any strategy that incorporates what I’ve learned from this article will be an improvement over our current strategy, which currently makes traffic source analysis slow going.

  • Pingback: How to Use UTM Parameters in Drip Email Campaigns for Best Results - Terminus Blog()

  • Lucy

    Great post! Quick question: for the source parameter, do you recommend using the site’s general name or URL? Example: “utm_source=website” or “utm_source=website”

    • In the past, I have preferred the name of the website e.g. utm_source=twitter since it’s clear and simple.

      But also consider that the referral traffic has source as “twitter.com”. So there’s an advantage in using something like utm_source=twitter.com. This allows you to see all the traffic from Twitter in one place. Therefore, I am now slowly inclining toward using the domain name as utm_source. It could help you build cleaner reports.

  • AHA

    How do you recommend tracking social media sites? Including “social” as the medium seems redundant if you have facebook (or facebook.com) as the source. So, could “facebook” be the medium, & the source could say something about whether the traffic is paid, organic, or what the target audience is?

    So, for example, a paid post on facebook that drives to your website could be: “www.website.com/?utm_medium=facebook&utm_source=paid&utm_campaign=blah&utm_content=blah

    • In this case, medium should be “social” and it is not redundant. For example, for twitter, medium should also be “social”. This way all your social traffic can be grouped together and be shown in the same channel.

      If it’s a paid ad on Facebook, then the medium is “cpc” or “ppc” or “cpm”, etc. I think you should never use “organic” as medium. It gets grouped in Organic Search channel which is probably not what you want.

      If you are interested, you could sign up for the UTM Best Practices email course above or at https://www.terminusapp.com/utm-parameters-best-practices/. It covers this in detail.

      Hope this helps.

      • AHA

        It does help, thank you. Another idea – What about using “post,” “ad,” and “share” instead of “social” in the medium. And then you can use “facebook,” “twitter,” etc. for the source. (“share” would be used on share buttons on content to differentiate from posts and ads.) I signed up for the course, thank you! Excited for it.

        • That could work, but the reason to use “social” for medium is because Google Analytics understand it and knows to categorize this traffic under Social channel in its reports.

          To add any extra information about the type of social activity, you could use utm_content. It’s meant to describe what kind of content was clicked ie. “post”, “share”, etc. You could even add headline there that’ll tell you what worked. This helps keep the medium separate from the extra data that’s very specific one medium.

          If it’s an ad, then I would suggest using “cpc” (or “cpm” based on type of paid ad) as medium. This helps you easily compare all paid traffic with each other, e.g. Adwords, Facebook Ads, LinkedIn Ads, etc. where you need hard conversion numbers to justify additional investment.

          Hope this helps.

          • AHA

            Hi Puru thanks so much for all of your suggestions. Really helpful feedback. Yeah, I think that makes sense about using “social” (because that’s what GA uses.) It’s too bad it can’t be a little more customized.

      • AHA

        Also, another question – how do you recommend including information about whether an ad is a remarketing ad or a standard (non-remarketing) ad?

        • My recommendation would be to add that information in utm_campaign, since that’s what it essentially is, a remarketing campaign. Just a prefix “rm-” to any campaign name should tell you it’s “remarketing” campaign. You could come up with another prefix name that resonates better with you and your team.

          Your retargeting campaigns should also have different medium based on the type of ad, e.g. display, cpc, cpm, etc. This will help you compare it with other similar paid types.

  • Joycelyn Ghardt

    This is a great article, thank you so much!

    Do you know what Medium are doing to remove the utm parameters from the URL so the user doesn’t see them?

    • Hi Joycelyn,

      I think they use a script to remove it. You can add something similar from Wistia to your website. Here’s the link: http://wistia.com/blog/fresh-url

      However, make sure that it works with your analytics software. Wistia’s script works with Google Analytics and some other popular analytics tools, but not all of them.

      Hope this helps.