The Definitive Guide To Campaign Tagging in Google Analytics


UPDATE: Due to the general confusion over channel groupings, I wrote a comprehensive companion guide on what they are, why they’re important, how to modify them, and how to make sure your campaigns aren’t under-reporting. You’ll see how even large publishers like BuzzFeed, Gawker, and Jezebel are shooting themselves in the foot with bad tagging (and hence bad channels).

I can say without hyperbole that no functionality in Google Analytics is misunderstood as much as campaign tagging. I’m a huge proponent of it because it enables marketers to track the effectiveness of all of their marketing efforts.

I’m writing this guide because if marketers understood the power of campaign tagging — and the level of granularity they could achieve when done well — there would be fewer spaghetti stains on their walls. In my experience, most companies either under-utilize, mangle, or overlook campaign tagging altogether.

And I can honestly say that in my years of consulting and performing analytics audits I have not seen one client even come close to using campaign tagging effectively. And some have even trashed their analytics data with it.

So my goal with this guide is to hopefully set that aright.

Table of Contents

How Campaign Tagging Works
Why Tag
Cast Of Characters
Video Explanation Of Campaign Tagging
Reports Impacted By Campaign Tags
Google’s Classification Rules
Fixing Default Channel Grouping
Developing A Tagging Strategy
Golden Rule Of Campaign Tagging
Social Tools Culprits
Excel Fix
Worst Tagging Mistakes I See
Tagging Resources

UPDATE: I added a great tip in the Cast Of Characters section submitted by a commenter.

How Campaign Tagging Works

When a visitor comes to a site that has the Google Analytics tracking code installed, Google Analytics captures a lot of data via cookies: the medium (organic, referral, direct, etc.), source (site the visitor came from), browser, screen resolution, country, metro, etc. etc. With campaign tagging you can overwrite the cookie data with your own custom tags.

Dramatic aside: Did you catch the enormity of that? Think of campaign tagging like fireworks: Powerful, beautiful, awe inspiring. Yet, if not treated with caution, you can blow your hand up.


Okay, enough pyrotechnics. Let’s talk how to set them up.

You set up campaigns using query parameters that you add to links you include in marketing campaigns. You don’t have to set up anything in Google Analytics. When traffic comes to your site via these links, the data will automatically be added to the right reports.

These campaign parameters all start with utm_ and create key/value pairs in a URL**. For example, the URL might look like

** If you already have query parameters you’re using for campaigns, you can switch out Google Analytics utm_ parameters with yours. Learn more from this resource on the Google site.

Back to Top

Why Tag

There are a number of reasons you want to tag your links, as well as a number of reports that are impacted by campaign tagging. (Learn more in the Reports Impacted By Campaign Tags section of the guide.) But here are a few top reasons:

  1. Campaign tagging consolidates all campaign data in a set of campaign reports (found under Acquisition > Campaigns).
  2. If you’re running paid search campaigns outside of AdWords (or AdWords campaigns with auto tagging disabled), those visits will show up as organic. (I’ve seen this happen. It’s ugly.)
  3. If you’re running campaigns on other non-search or social sites (like banner ads on affiliate sites) and you don’t tag those links, they’ll get lumped in with your referral traffic.
  4. If you’re running email campaigns, campaign tagging rises from really good idea to critical. This is because traffic from email will be grossly under-reported if you don’t tag all links pointing back to your site. There are three primary causes for this:
  • Visits from desktop apps, such as Outlook and Mac Mail, show up in analytics as direct — or medium = (none) — because no referer data gets passed.
  • Visits from webmail providers that default to a secure server (such as Gmail and Hotmail) don’t pass referer data.
  • Visits from mobile often show up as direct because of issues with referer data getting passed.

The bottom line is when you’re brokering traffic in some way, you want to make sure you can track the success of those campaigns.

Back to Top

Cast Of Characters

MVP Parameters

Google Analytics campaign tagging players

The tags you’ll be working with most are utm_medium, utm_source, and utm_campaign. Let’s give them a proper introduction, shall we?


campaign tracking Google Analytics medium bucket

Think of the medium parameter as a bucket. You want mediums to be nice, big buckets. The mediums that Google Analytics automatically identifies are organic, (none), referral, and cpc (if you’re using AdWords and are auto tagging links). When tagging your links, you should follow the same form for your custom mediums.

The reason you want these buckets to be big is it allows you to slice and dice your data by source and campaign name when all that luscious data comes in. If these buckets are too small, that segmentation becomes arduous at best, impossible at worst. It’s first-degree data abuse.

Although this list isn’t exhaustive and your campaigns may warrant mediums that aren’t included, here are some good mediums I’ve used over the years:

  • social
  • email
  • feed
  • banner
  • cpc
  • display
  • affiliate
  • ebook
  • tv
  • print
  • billboard
  • partner
  • radio
  • qr code
  • widget

The most common mistake I see with campaign tagging is confusing medium with source and less frequently campaign name. Of the three players, this one is the most important to get right, in my opinion. But if you get social and email wrong, other reports will suffer from this mistake. We’ll get to that more in the Reports Impacted By Campaign Tags of the guide.


The source is simply where the link lives. For the best guide, let’s look at how Google Analytics lists sources.

referal format in Google Analytics

Note: is Twitter’s link wrapper. When you share a link on Twitter that’s greater than 19 characters — even if you use a tool like TweetDeck or Hootsuite — it shows up in Google Analytics as coming from You can learn more from the Twitter site.

Before Twitter started using, links from desktop and mobile apps were showing up in analytics as direct traffic if they weren’t tagged, so it’s definitely a welcome change.

Did you publish a link on Twitter? If so, set utm_source to Did you publish it on Facebook? Then set it to Did you broker a banner on my site (suspending reality for a moment)? Then set it to Pretty straightforward.

One exception email. Since emails don’t actually live on a site, you have to get a little resourceful. If you’re using an email service, like Marketo, you could set utm_source to marketo. I’ve also seen sites set source to internal. What you don’t want to do is set it to your domain. I’ve seen clients do this. The problem is these visits will look like self-referrals (or visits sent from your own site), and these should be avoided.

Campaign Name

Campaign Name is simply the name of your campaign. Seems easy enough. And yet this is a tag that sites botch pretty consistently. Strategic, well-organized marketing campaigns should have campaign names that span multiple mediums and sources. Competition is healthy, as is testing, which you will be hard pressed to do if you don’t test your campaigns in different mediums.

Okay, it’s story time. Once upon a time, I worked in-house with a publishing company, and we had two campaigns that we were pushing pretty hard. One was a membership campaign we’ll call 25cents (the idea being the cost of membership broken down by day). We also had a half off sale for students that we’ll call half+off. (A plus sign translates to spaces in Google Analytics reports.)

We ran these campaigns on Twitter, Facebook, email, four different sites owned by the company, and several partner sites. So these campaigns were divided into four mediums: social, email, partner, and banner. (We could have used display in lieu of banner, but we wanted to differentiate them from AdWords display ads. It’s a judgment call. And if these partners had been affiliates, we would have used affiliate. But they weren’t.)

When the data started coming in, we were able to compare the performance of these two campaigns across different mediums and sources. We also compared landing page performance on the different networks. Throw all that data in a pivot table (you can learn how with this video tutorial), and you can analyze it from many different angles to find opportunities and problem children.

As straightforward as naming campaigns may appear to be, here are the biggest mistakes I see with this parameter:

  • They’re too narrow. I tend to see this with companies that send out daily emails. What they tend to do is give each day a unique campaign name. And sometimes these emails follow different formats, depending on who creates the tags. This can make it very difficult (at least without some pretty sophisticated regex) to group all these visits, if you want to analyze the performance of your daily email. For daily emails, it would be better, in my opinion/experience, to use one campaign name (e.g., daily+deals+email). If you want more detail, you have two more campaign parameters we’ll get to in a minute. Now if you send out a monthly newsletter, I recommend incorporating the month and year in the campaign name because it’s part of the identification of the newsletter. For example, you could use 2014-03+member+newsletter.
  • They’re too cryptic. Sometimes developers use automatically generated campaign names, or paranoid marketers obfuscate them so their competitors won’t be able to figure out what campaigns they’re running. The problem is that oftentimes this scorched-earth approach to campaign naming results in marketers having no idea what these campaign names refer to. You can’t improve what you can’t measure. If it’s not feasible to rename these cryptic campaigns, set up a lookup table in Excel or your database to use for in reporting.
  • They’re too fragmented. As I’ve already mentioned, calling a campaign a unique name for each medium and source you publish to prohibits segmenting these campaigns later. The more you can compare campaign performance across different channels, the more refined your campaign strategy will become over time.
  • They follow naming conventions that should be reserved for medium and/or source. For example, if you have a new campaign you’re launching on Pinterest, there’s no need to include Pinterest in the campaign name. You’ll have it in the source.

B Team Parameters

Although Medium, Source, and Campaign are the parameters you’ll use most as a marketer (PPC campaigns excepted), there are a couple other optional parameters that are on call in the event you require their services.

campaign parameters in Google Analytics


The Content parameter allows you to provide additional details about your campaign. For paid search campaigns, you use it to differentiate ads. But you can also use it for marketing campaigns. Here are a few examples of how you might use it in non-PPC campaigns:

  • To differentiate different types of links in emails, e.g., text vs image.
  • To differentiate links from different sections of your emails, e.g., header vs editorial vs sidebar vs footer, etc.
  • To record the date of daily emails.
  • To run A/B and multivariate tests. For example, you could put several links in an email to the same page but in different sections and/or formats. Similarly, if you have banner ads on different sites, you could use the content parameter to capture the banner size (e.g., utm_content=728×90) or position on the page (e.g., utm_content=right+sidebar).


The Term parameter is used in paid search campaigns to note the keywords you’re bidding on (e.g., utm_term=high+top+sneakers). Again, with AdWords, if you have auto tagging enabled (which I strongly recommend), you don’t have to set this value. But if you’re running ads on Bing or any other paid search network, you need to tag these manually. Failure to do so will artificially inflate your organic search data.

UPDATE: My friend, Yehoshua Coren, who is brimming with awesome, added this great tip in a comment:

Here’s my preferred tag for Bing Ads –> turns GA into a matched search query performance marketing report.


It pays to have smart friends! Thanks, Yehoshua!

You could repurpose this parameter for other marketing campaigns, but I don’t recommend it.

Back to Top

Video Explanation Of Campaign Tagging

Still confused? I created a video that attempts to explain campaign tagging visually. You know, just doing my part to accommodate different learning types. :) Seriously, I just really want marketers to really absorb this. It’s that important, in my opinion.

Back to Top

Reports Impacted By Campaign Tags

Up until recently, if you messed campaign tagging up, it only polluted your campaign reports. Not so anymore. There are now a number of reports that are impacted by these tags, especially the medium parameter.

Campaign Reports

First and foremost, the Campaign reports in Google Analytics rise and fall on the integrity of a site’s campaign tagging efforts. To analyze campaign traffic, you’ll want to navigate to Acquisition > Campaigns. The default primary dimension is Campaign, but you can also choose Source, Medium, Landing Page, or any of the options in the drop-down menu.

Campaign report in Google Analytics
Click for larger image

I will frequently first click on the Medium primary dimension to make sure there’s no funny business going on in the data. For example, I recently audited a site that had more than 2,000 unique mediums. Most sites aren’t going to have more than 10 [legitimate] mediums, total.

You can also take advantage of the secondary dimension to analyze your mediums more closely. What I’ll typically do is isolate a single medium and then choose source or campaign as my secondary dimension to view all of the sources or campaigns in each medium, like so:


Through the interface you can export a flat report that can be brought into a pivot table (learn how in this post). But you only get two dimensions**. If you’re planning to do your analysis online, you can create a custom report that includes Medium, Source, and Campaign with whatever metrics you want to analyze (e.g., visits, bounce rate, revenue, etc.). Then you get up to five dimensions.

If you’re unfamiliar with custom reports, you can learn how to create them in this video tutorial I did. Or you could use this custom report as a starter. Just click the Edit button in the top-left corner of the report to customize it to your needs. (If you get a 404 error, it’s because you need to log in to your Google Analytics account.)

custom report in Google Analytics

If you want a flat report that requires more than two dimensions**, such as one that includes medium, source, and campaign (my fave cocktail), you’ll need to use the API. I wrote this post on the Search Engine Land site that describes how to use a free analytics tool to do this. Here’s a screenshot demonstrating how you might want to set that up.

Excellent Analytics API how to


**UPDATE: Google Analytics now gives you up to five dimensions in custom reports!  (Post updated March 10, 2015)

Social Reports

If your social links are mis-tagged your reports under Acquisition > Social will be off. The issues vary slightly depending on the social report you’re working with. But the closer you tag your links to the formatting you see in Google Analytics’ referral reports, the more trustworthy your data will be.

What’s really sad is I’ve seen cases where it would have actually been better for clients to not tag at all than to tag incorrectly. I don’t promote eschewing campaign tagging, but mis-tagging social links is worse than not tagging them at all because, if left untagged, Google would have at least recognized the visits as having come from one of its 400 or so social networks. I had some larger clients who were significantly hurt by social tools like Buffer and SocialFlow mis-tagging social links as utm_medium=twitter or utm_medium=facebook. (You’ll learn more about this in the Social Tools Culprits of the guide.)

Multi-Channel Fnnnels Reports

Google Analytics’ new(ish) MCF reports are the best upgrade to Google Analytics in years. I explained why in my Taking Credit Where Credit’s Due presentation last year (starting in slide 78). They are amazing, and every site that reports any kind of revenue (whether ecommerce or goal values) should use them. If you don’t, I can tell you right now that you are not taking enough credit for your marketing efforts.

Seriously, check out slides 90 to 96 to see the uptick in reported revenue when assists were added in. I found for one client that for every $3 their PPC vendor was reporting in conversions, PPC accounted for $8 in assisted conversions. By adding MCF reporting to their monthly reports, I made their PPC vendor look like heroes, unbeknownst to them. And this was before Google upgraded the lookback window to 90 days instead of the initial 30 days we had.

Important Note: At the time of writing (3/31/14), the lookback window for the Multi-Channel Funnels API still only gives us 30 days. It hasn’t been upgraded to 90 days yet. :( This is important because if you set the lookback window to 90 days in the interface, your data will not align with the data you get from the API.

These reports can’t be fixed by fixing the Default Channel Grouping inside of Google Analytics, unfortunately. This includes the Attribution models under Conversions > Attribution. You have to use custom channel groupings to apply customized channels to these reports. But at the time of writing custom channel groupings aren’t available in the API. Unless you’re using an API tool like Tableau or Analytics Canvas that allows you to clean up your data, your only option is to fix your reports by fixing your tags or inside Excel, as I demonstrate in the Excel Fix section of the guide.

To learn more about MCF reports, check out Google’s resource on it. My friend, Yehoshua Coren, also wrote a great post on Multi-Channel Funnels.

Back to Top

Google’s Classification Rules

If you want to see the rules Google uses to classify visits, there’s a backdoor in. Follow these steps:

  1. Go to Conversions > Multi-Channel Funnels > Assisted Conversions.
  2. Under Primary Dimension, click Channel Groupings, and choose Copy MCF Channel Grouping Template from the drop-down. (We’re not actually going to copy them.
  3. In the Channel Grouping Settings dialog, click on any of the pencil icons to edit a definition.
  4. To check out Google’s definition of Social Network, click the pencil icon. Here’s what you’ll see:
Multi-Channel Funnels settings
Click for larger image

Here’s the regex Google uses to help classify social traffic:

^(social|social-network|social-media|sm|social network|social media)$

So this dialog says, in plain English, if the visit comes from one of the 400 sites Google has classified as a social network OR medium is set to social, social-network, social-media, sm, social+network, or social+media.

If you do paid search, you should definitely check out the channel definitions for Paid Search, Display, and Other Advertising. For example, I was surprised to find out that text-based display ads don’t fall under the category of Display; they fall under Other Advertising.

Google has also published these definitions here.

Back to Top

Fixing Your Default Channel Grouping

UPDATE: Make sure you read my comprehensive companion guide channel groupings before you touch these settings.

To modify your Default Channel Grouping, navigate to Admin > View > Channel Grouping. Under Default Channel Grouping, click Actions and then Edit from the drop-down menu.

Default Channel Grouping settings
Click for larger image

Then click OR and set Medium to regex match twitter|facebook (or whatever other definitions you need to include). Just put a pipe character in between each definition. It means “or” in regex. (Learn how to master regex in Google Analytics in this post I wrote for non-developers.)

Back to Top

Walking Through A Tagging Strategy

As I mentioned earlier, you want to create your strategy so that you have campaigns that span different mediums and sources. No better way to explain how to craft a tagging strategy than to walk through one. So let’s create two faux campaigns and plan out their strategy.

Business: Software provider of a beta social media analytics tool

Objective: Introduce the tool to the market. Incentivize people to try it with a 30-day free trial. Reach out to leaders in the social media space and marketing professors to offer a one-year free trial.

Campaign 1

Campaign Name: Free Trial

Target Channels: Twitter, Facebook ads, sponsored tweets, brochures**, and banner ads on and

Landing Page:

** Tracking links in print material or billboards is best done with a vanity URL. The strategy is to buy a domain with a catchy name, like and create a permanent (301) redirect to your tagged landing page. So if we’re putting the vanity URL in a brochure that’s distribute at a conference like South by Southwest (SXSW), we might redirect it to a page like this:


Campaign 2

Campaign Name: Leader Outreach

Target Channels: email, outreach via leaders’ site contact pages, brochures to colleges, LinkedIn ads, and a post on the Marketing, Advertising, and Communications Professors LinkedIn group.

Landing Page:

Strategy Doc

Embedded below is a Google Spreadsheet with a potential tagging strategy for the campaigns above.

You can view this spreadsheet in its entirety here. If you’re logged in to Google, you can also save a copy for yourself by choosing File > Make a copy.

Back to Top

Golden Rule Of Campaign Tagging

Let me ask you this: Would you paint your neighbor’s house? Probably not. Or would you reach over to a stranger’s table at a restaurant and just take a handful of his french fries? If so, I want to go out for burgers with you at the next conference I’ll be attending. But for most of us, the answer to that silly question is [hopefully] no.

But tagging links to someone else’s site isn’t much different. Why? Because they’re not looking for traffic from your site in their Campaigns reports; they’re looking for it in their All Referrals report (under Acquisition). Also, when you tag links to someone else’s site they don’t get as much info about your site, such as what page the traffic came from. (You need to use a custom report that uses the Full Referrer dimension to get this. It’s not in any of the standard reports. You can use this custom report as a template.)

Finding others’ campaigns in your campaign reports should be easy enough, if you use a strategy doc like the I shared in the previous section to keep track of all of your tagged links. Simply look for campaigns you don’t recognize. If you find some, you’ll need to either filter those out of your campaign reports or redefine them in your Default Channel Grouping (which was covered in the Fixing Default Channel Grouping section of the guide).

Back to Top

Social Tools Culprits

Some social tools, such as Buffer and SocialFlow, automatically tag links. I’m not talking about offering you link-tagging functionality like HootSuite and MailChimp that you can use to tag your links. We’re talking about tagging every link that’s shared using their tool on social media. This is suboptimal as it’s not traffic that was brokered by site owners. But the really bad news is that when they started automatically tagging all link shared with their tools they mis-tagged medium as the source instead of social.

For large publishers this mistake has caused considerable under-reporting in all of the reports listed in the Reports Impacted By Campaign Tags section of the guide.

I reached out to both tool providers and let them know about this error. To the Buffer team’s credit, they changed their tags to set utm_medium to social Jan 7 of this year. All of my tweets to the SocialFlow team went unanswered, and their tags are still set to utm_medium=socialflow, last I checked.

Here’s another example of what these genetically altered links look like:



Let me know if you find examples of other tools mis-tagging social links in the comments below.

Back to Top

Excel Fix

If you have mis-tagged campaigns, you can use a fairly simple nested IF statement to rename your tags in Excel. The IF formula might look something like this:

campaign tagging fix in Excel

I created the report using this custom report that pulls in just the medium and source dimensions. You can also download the Excel file here.

Back to Top

Worst Tagging Mistakes I See

Although most of these mistakes have been covered elsewhere, I’m going to compile them into one place.

  1. The worst campaign tagging mistake a site can make, hands down, is tagging internal links. Imagine a scenario like this (which is based on a true story): You put campaign tags on all of your navigation links, as well as your sidebar links. You set them to values like utm_medium=navigation and utm_source=topnav. Then let’s say someone comes to your site from an AdWords ad and clicked on a link to one of your category pages from the top navigation bar. That visitor is no longer from medium/source = cpc/google; s/he is from medium/source = navigation/topnav. Imagine that happening to more than a million visits in a month. This is exactly what happened to one client, and they had to declare data bankruptcy on their Google Analytics account and start over. You can read more about it in this post. You want to use events for internal links and campaign tagging for external links. You can learn more about event tracking from this resource from Google.
  2. Not making the medium “bucket” big enough — or tagging medium as sources like twitter or facebook.
  3. Mixing cases in campaign tags. The Google Spreadsheet I share to help people with campaign tagging forces all tags to lowercase to prevent this from happening. If you are using proper case and want to continue to do so, you just need to be careful to make sure you’re consistent.
  4. Missing links in boilerplate sections of your emails, such as the header and footer.
  5. Creating unique campaign names for each medium and source. You want your campaign names to span multiple mediums if you’re using more than one marketing channels for your campaigns.
  6. Making campaign names too cryptic. Sometimes developers device ways to create automated campaign names. This is not ideal. If no one knows what the campaign was for, it’s impossible to measure its effectiveness.
  7. Tagging editorial links. So let’s say you use guest blogging as a marketing strategy. I’ve seen sites add campaign tags in their link(s) that point back to their site. In my opinion, I think this is a mistake. These links should show up in your referral reports, not your campaign reports. As I mentioned earlier in the guide, you get more data from referrals than you do campaigns.
  8. Cramming too much into the campaign name. There’s no reason to include source or medium in the campaign name, e.g., facebook+ad+concert+mar+2014. In this example, facebook should go in the utm_source parameter, and ad should be taken out and utm_medium tagged as cpc or ppc.
  9. Making parameter values difficult to read in campaign reports. I see campaign names like marchmembernewsletter all the time. Remember that you can use the plus sign to generate spaces in campaign reports.
  10. Mis-tagging Google+ links. If you’re ever in doubt how you should tag a source, just pull up the All Referrals report to see how they show up there. For Google+ most visits show up as, though some show up as coming from
  11. Tagging links to someone else’s site. Remember: just tag links to your site.
  12. Not following a consistent naming convention for campaigns. For example, if you have a monthly newsletter and you want to capture the month and year in the campaign name, use the same format each time. I like to follow the format of yyyy-mm before the campaign name (e.g., 201403). This aids sorting in Google Analytics and Excel. Also, following a consistent format makes it easier to group campaigns for analysis.

Back to Top

Tagging Resources

My Auto-Tagging Google Doc

To aid you with your tagging efforts, you can use Google’s tagging tool or the Google Spreadsheet I’ve created.

Google’s Resource

And here is the link to Google’s resource on campaign tagging.

Wistia’s Cool Fresh URL Tool

Let’s face it. Tagged URLs are ugly. It’s the one thing I really don’t like about them. They also get shared by people like me cross-channel because it’s too much work to remove the parameters to share a clean URL. That’s why Wistia released a free script that cleans URLs after the browser has had a chance to grab the campaign data. I haven’t actually tested it, but you can learn more here.

Back to Top


If you have any questions, I want to know them. I may even use them to update this guide. You can leave your question in the comments or reach out to me on Twitter. Also, please report any tools you see mis-tagging links. If there are enough, it may warrant an open letter to those providers.

Learn More

You can learn more about campaign tagging in my Analtyics Audit Template, a self-guided, 147-page audit template that is regularly updated and will teach you how to do detailed analytics audits like a pro.


  1. says

    Hi Annie

    Maybe you could try to reach out to the Buffer guys again as my hints so far have been unsuccessful. They have lots of ping ponging of traffic between blog, main site and internal links on main site using utm_campaign and sometimes medium as well.
    I often feel their great open reports on how they are growing their business are slightly flawed due to bad data, and maybe different data would allow them to build a better hypothesis.
    I am sure they would gain a lot of benefit from MCF reports.

    I disagree on guest blogging tags.

    If you still do guest blogging it should be for the traffic and measuring the ROI accurately is important.

    Traffic from a guest post might come from the site, but it is just as likely to come from an RSS reader or email.
    As an example if you get a link from Search Engine Land’s “Search Cap” a ton of the traffic comes from email and other sources. Sure you see actually see the redirects from 3rd Door Media, but that isn’t the case with other RSS to Email solutions, or the redirects are very generic and can’t be attributed to a particular publication.
    Not being able to see 50% of your traffic attributed to a particular guest blog post is a bit like not attributing ad spend.

    It is even more important with the growing use of “native advertising” – guest posting could and maybe should be looked on as native advertising which you don’t have to pay for, but still costs you time.

    Another huge issue is not knowing if someone is a new signup compared to a login. Often you can only tell that after the login has happened because of people using multiple devices, by testing whether a previous login time is stored for the account holder.

  2. Yehoshua Coren says

    Annie – I love your megaposts. Keep rockin’ :)

    Here’s my preferred tag for Bing Ads –> turns GA into a matched search query performance marketing report.


      • Leigh says

        Annie, I’ve noticed in the last few tracking ulrs I’ve set, the traffic from those links was not showing up in analytics. I use the + sign in all campaign names. I normally build links manually (copy and paste from old tracking urls) so I decided to see what the official Google url builder does to the + sign, and yes, it converts it to %2. I set up a new tracking url the other day using the %2 instead of using a + sign, and it worked. So, I think something must have changed i.e. it appears that you now have to directly use the encoding and not the + sign. Maybe they’ve stopped converting the + sign for some reason, which is a bit of a pain.

        • Annie Cushing says

          + signs are always encoded in URLs as %20. But you don’t have to enter %20. That will happen automatically. I only use + signs and haven’t ever had issues with it.

          • Tim Van Buren says

            + signs are URL encoded as %2B

            Does analytics do some kind of error correction wherein they end up as a space in reports?

            Great article, by the way. I read it top to bottom. You made things much clearer, and corrected some misconceptions I got from other similar blog posts and spreadsheets.

            One thing I am puzzled about is the situation with Facebook ads. You can buy a cpc banner ad, a cpm ad, or promote a post. I am trying to puzzle out how I would tag those three different situations. What do you think?

          • Annie Cushing says

            It’s not error correction. Google just decodes the encoded URL.

            Re: Facebook ads, I would use the mediums Google provides whenever possible. But for promoted posts, I’d use ‘utm_medium=promoted+post’ and add ‘promoted post’ to the channel definition in the channel of your choosing. Some use Paid Search (although technically paid social isn’t search), Other Advertising, or a custom channel altogether, like Paid Social. It just all depends on how you want to slice and dice your data to get the most insight.

  3. Myke Larson says

    Thank you for lifting some of the fog that is tagging. Great examples and visualizations mixed with well written instruction and reasoning. Starting at the top again.

  4. stevenlopresti says

    What a great post – I thought I knew everything there was to know about campaign tagging, but obviously not. Thanks for sharing it!

  5. says

    Thank you for making this information available, Annie. It’s certainly one I’ve bookmarked plus saved to Evernote and will be sure to refer back to often.

  6. says

    Thank you for your generosity, Annie. I first discovered your work by watching your talk at MozCon. And I saw this article through Inbound.

    Now I’m sharing it as far and wide that I can!

  7. Iulia T says

    Really great article! However, i have a problem (i think?) in my custom reports. I get a lot of (not set)s and i don’t know whether i should be alarmed and think something’s wrong (we use some redirect urls that i read might affect how results show up in Analytics) or if i should be happy that SEO paid off. How can i tell?

  8. says

    Great work Annie. You really piqued my interest on that Buffer / SocialFlow comment. So I decided to do a mini experiment as I really don’t like the fact that they automatically shorten URLs. I created a simple URL with Google’s Campaign tagging tool. So far so good. Then I took that URL and popped it in a test Buffer Account. As expected the URL gets shortened. What I didn’t expect is that Buffer overwrote my Campaign name (utm_campaign=WebFuel%2BPromo) with theirs: “&utm_campaign=buffer”. So, in essence, Buffer is useless if you want to get (really) serious about tracking Campaigns properly. Not cool.

    • says

      I really wish they would stop doing that. I chock it up to a general lack of understanding about campaign tagging. I was jut really glad they changed the medium parameter to social.

      • says

        I agree Annie. That being said, this puts them a few steps behind their competitors. I’ll prod them a bit They have been very responsive in the past. I’ll report back via this thread.

  9. Benjamin Hoffman says

    For those doing paid advertising, I highly suggest look into tagging more than just the standard tags. There are so many options:

    Bing Query String creator:

    Google ValueTrack:

    Both of these solutions allow you to define and add so many parameters.

    Although many of the tags might not make it into your Google Analytics account, you can still collect the data on your sales funnel forms or lead gen forms.

    Also, for an awesome URL tag builder, take a look at this template from their gallery:

  10. Torcsington says

    Hi there Annie, thanks for a terrific article.

    One quick question – for source, I use ‘facebook’ and ‘twitter’; not ‘’ and ‘’ as suggested. From there, I’d usually go to the ‘Network Referrals’ report in the Social section of GA and apply a secondary dimension of ‘Campaign’ to see the proportion of referral from Campaigns as opposed to just organic social referral.

    Is there any particular downside to not appending ‘.com’ to the ends of the source?

    Many thanks!

    • says

      I personally like to model my sources after how Google Analytics records sources. Referrals include the TLDs in the sources and visits from search (paid and organic) don’t.

  11. Melissa Hawkins says

    Hi Annie, great article and thanks for the spreadsheet that you created! Is there a way that I could build an automatic link-shortening tool into the spreadsheet? I have seen it done before, but I’m not sure how to do it in myself. Thanks, Melissa

    • says

      Hi Melissa, it’s totally possible. I can’t do the formula right now. I’m out of town, but if you email me at annie(at) and remind me, I’ll add it to the workbook.

  12. Antoine says

    Many thanks @anniecushing:disqus . Just been using your excel tool for managing our Campaign ! + Custom GA dashboard is really appreciated !

    So if i understand correctly, you’ll create a different URL for each single post you made on social networks ? How do you distinguish between trafic from curating on social network to sharing your own content ?

    Thanks again !

    • says

      You’re welcome, Antoine! As for your question, traffic from social media that comes to your site organically (IOW, not as a result of a tagged link you’ve shared) is going to show up in your All Referrals report, not your Campaigns report. But you’ll see them all together (if you’ve tagged utm_medium as social) in your social reports because Google defines social as any visit that comes from the social medium OR from one of the ~400 sites Google has classified as a social network.

  13. says

    I’ve seen really good stuff from you in the past Annie, but this is one of the most comprehensive, yet simplest to understand pieces of work on any GA topic I’ve seen. Terrific work!

  14. Ayelet Golz says

    Annie – if I tag a blog post so I can track traffic that comes to that blog post from another blog post on the same site, is that okay? Would this fall under the “tagging editorial links” mistake above?

    • says

      Hi Ayelet,

      I know there’s quite a bit of confusion on this topic. But, for one, you don’t tag posts to see what traffic is coming to that post. You tag a link to a post you want to track. Big difference. But, even so, you don’t ever want to use campaign tagging on internal links. If you want to see the traffic from one blog post to another, you can use the Navigation Summary – a tab on the All Pages report.

      • Ayelet Golz says

        Sure, that makes sense. Thanks for pointing me in the right direction. Sometimes GA feels like a maze.

  15. says

    The best, clearest, most user-friendly explanation of UTM parameter tagging on the web, hands down. I shared this with all my clients and colleagues immediately. You said it so much better than I ever could. With the increased focus on attribution modeling and multi-channel funnels reporting to our clients at our agency, it’s more critical than ever that we get the team consistent. Thank you, thank you, thank you.

  16. AG says

    Thanks Annie, I do have a question based on your example. I see you have, for print, 3 different campaign content (princeton, cornell and stanford). The URL is the same.
    Correct me if I’m wrong but we would need three different vanity URLs on the Printed material in order to track that properly?

      • Garfield_Disliker says

        Annie, I have the same question as AG above… your answer confuses me a bit.

        So, for example, you have three brochures printed out, they respectively go to three colleges (princeton, cornell, stanford), and each of the brochures features the same vanity URL.

        I get you can track them separately with different campaign tagging parameters, but…

        If you don’t have three different vanity URLs in print, how are you redirecting the same URL to three different destination URLs (presumably the same landing page)? That seems challenging considering those would be direct/typed in URLs from a print source.

        You might not need three different vanity domains or anything, but if you’re trying to differentiate between each brochure/college it seems like you would definitely have to use a distinct URL in each brochure—,, etc.

  17. Dan Shure says

    Annie – this is GOLD, thank you! I have a question I hope to be writing a post about in the context of Instagram not getting enough credit. Would you campaign tag links from your Instagram profile? Because on a mobile device (iPhone specifically), when you go to open a profile link it asks “do you want to open this in Safari?” and then it shows up as DIRECT traffic, not a referral of any sort. Thoughts on this?

    To add a little more context – I have a medium size eCommerce client in the Diamond Ring space. They’ve accumulated 18k followers in the last 3 months – which has amounted to about 100 visits a day from the Instagram profile, yet its coming in as direct traffic – when I segment direct traffic for tablet/mobile – that’s where the spike in traffic shows up at the same time they started using Instagram.

  18. Dominic Hurst says

    A must read. People get campaign tracking so wrong. Big problem over misuse is the fact anyone can do it. I suggest organisations draw up a protocol and a book of words used to ensure consistency. People using them on internal web pages is a personal bugbear of mine.

    Thanks Annie!

    • says

      I recommend using data validation in the Google Doc to enforce accepted tagging protocols. But yeah, establishing a tagging framework and protocol from it is really important.

  19. Fred says

    Useful Post! I have a question: what will happen if you only use the campaign-tag for, let’s say, an facebook link? Will Analytics automatically recognise the source and medium?

      • Scott Bowen says

        I have a related question: If some person out there clicked on a clean, non-tagged link from my website on Facebook or Twitter, it would still be tracked in GA with the source and medium info, right?

        I’m new-ish to the GA game (especially campaign tracking), and this guide gave me a great foundation to start from– Thanks!

        • Annie Cushing says

          It will show up as medium = referral instead of medium = social. You want traffic that comes to your site from social channels to show up that way but track visits that result from your own social-sharing efforts to show up in your campaign reports b/c that traffic is the result of your efforts.

  20. Joe says

    Great article! A couple questions. When running an email campaign, does it make sense to link tag a stand alone video off a email? I tried doing this and the link doesn’t work. I’m wondering if it’s because the video isn’t a webpage and there is nothing to track beyond that point. Also, does it make sense to tag a PDF doc from our website on a email? There are links on the doc so in theory you could track traffic beyond the PDF doc. Thanks!

  21. says

    Hi Annie,
    Thanks so much for this masterpiece!

    I’d like to ask you a question:
    I’ve heard from some people that including tracking data on links posted on a FB fan page can hurt your FB reach (even if they are posted using a shortener like Have you ever heard of this theory and do you have any experience or data to prove/disprove it?

    Thanks again!

    • Annie Cushing says

      Hi Yair,

      I’ve asked around about this, and no one I know has run into this. I guess if you wanted to test it, you could alternate between tagged and untagged links on Facebook and see if there’s a difference. It’s not the most scientific study though since there are other factors that go into determining what posts do well reach-wise.

  22. Eddie says

    Thanks for the great article! I have a question: Should the Social : Network Referrals report include tagged links also? I have found it includes only some of them, which leads me to think, as you mentioned in this article, I am tagging my links incorrectly. Our company doesn’t use utm parameters; we use src for source, seg for medium and cmp for campaign. Also, we actually use medium for what utm uses for campaign and campaign for what utm uses for medium. My colleague who is more knowledgeable on the subject set this up for us, so I don’t know if what we are doing is wrong and affecting the Social : Network Referrals report. If you or someone else can shed light on this I would be most grateful.

      • Eddie says

        Should the Social : Network Referrals report include tagged links also? As I said, the report includes some but not all links.

        • Annie Cushing says

          Yes, they do include tagged links. Google Analytics doesn’t know what to look for if you’re using non-utm parameters and aren’t specifying your custom UTM keys.

          • Eddie says

            But I do believe we have specified our custom UTM keys. That’s why I’m confused as to why some of tagged links are showing while others aren’t.

          • Annie Cushing says

            Campaign traffic can be found in the Campaigns and All Traffic reports. It also gets included in some social reports, like Social Networks, if tagged correctly.

        • Annie Cushing says

          I can’t reply to your last comment for some reason, so I’ll reply here. I don’t see evidence of the custom tracking code on your homepage.

          • Eddie says

            Hi Annie,

            I just spoke to the colleague who set all this up. Apparently we don’t use custom tags. We have just renamed the UTM tags (i.e. we still use utm tags). So if you can think of any other reason why only some of my tagged links (all posts from our page include tags) show up in the referral report, it would be great to hear them :) Thanks!

        • Annie Cushing says

          I can tell from your example link that you are using custom parameters, so you need to either start using UTM parameters or add the code I showed you to your GATC.

          But campaign traffic won’t show up in referral reports anyway.

          • Eddie says

            OK thanks for your help! I will be passing this info on now! Does it not include any tagged links (campaign traffic)? Or just our site’s tagged links?

  23. says

    Hey Annie!

    Say we’re setting up tagging mainly for tracking organic social sharing of blog posts. Would you use a campaign like “blog” (to represent the overall blogging efforts) or would you tag with the individual post name? I am thinking the former but just curious if this purpose requires more than one campaign name. Thanks!

    • Annie Cushing says

      Hey, Dan!

      It’s so good to hear from you! Sorry for the horrifically late response! I didn’t realize I wasn’t receiving comment alerts. :/

      But I use “blog” unless it’s a really big post. So for this guide I used the campaign name “campaign+tagging+guide” because it was such a significant post. But for most I would use either “blog” or the blog category. It really just depends how granular you want to get with the reporting.

  24. says

    I am just barely realizing and utilizing the power of the UTM parameters and have been searching online for best practices. This article is “truly” the definitive guide and I learned a lot from it and implemented a lot of UTM’s in my marketing today.

    I do have a question though. We have been using Buffer for quite some time and I am curious if they fixed the problems that you discussed in this post. They now have an option to turn on/off the Google Analytics Campaign Tracking and when I look at the Analytics it seems to be doing a good job of breaking down Buffer as the campaign with Social as the medium and Twitter, Facebook, etc. as the Source.

    So my question is will I gain anything from adding my own UTM parameters for Buffer specifically, or does Buffer do what I need it to do now?

    • says

      After writing my comment, I realized that one benefit to doing it on my own is in the naming of the Campaign with something unique vs. Buffer. Would you agree?

    • Annie Cushing says

      Sorry for the horrifically late response! I didn’t realize I wasn’t receiving comment alerts. :/

      But I’m so glad this guide could help you! Anything you post on social media, you should tag. You shouldn’t use Buffer’s tagging. You’ll still get Buffer traffic, but that should be from others finding your content and using Buffer to share it.

  25. Kevin says

    Hi Annie, I wanted to say thank you for putting this post together. I learned more practical information about Google Analytics campaign tagging in 1 hour here than I learned in 6 hours of digging through Google’s documentation. Thanks mucho!

    • Annie Cushing says

      Sorry for the horrifically late response! I didn’t realize I wasn’t receiving comment alerts. :/

      But that’s really great to hear! So glad my guide could help!

  26. Nate says

    Hi Annie,

    Read your post on UTM tagging and found it incredibly helpful. As simple as it seems, for whatever reason Ive always had a hard time keeping consistent with UTM conventions across channels.

    Do you have a recommendation on how to approach UTMs when it comes to Facebook social posts vs Facebook paid or even a combo of the two when you are putting paid dollars towards promoting posts? Do you recommend putting all FB paid ads under the CPC or Paid Acq source or would you simply put all FB under the source of social?

    Thanks so much

    • Annie Cushing says

      Sorry for the horrifically late response! I didn’t realize I wasn’t receiving comment alerts. :/

      But non-paid social should always be tagged as social and paid should be tagged as paid. But double-check your default channel grouping settings to make sure they route to the bucket you want them in.

      • AHA says

        I’ve had questions about this too. As far as social goes, it seems like it would be more helpful to have the medium as “post,” “share,” and “paid.” “Post” would show traffic from posts by the brand to their social sites. “Share” would show shares of content through social media share bars, and “paid” would show social media ads.

        Then, list the social channel of that post, share, or ad in the source:,, etc.

        I’m not sure if GA accepts this, though. It seems like they really force you to use “social” in the medium.

        • Annie Cushing says

          You would just need to add these to your Social bucket in the Default Channel Grouping settings in the Admin section. (I show you how to do this in the guide.)

  27. says

    Hi Annie,

    Great write up, but the informaiton you have about SocialFlow’s UTM tagging is not 100% right.

    Users are able to set tracking tags for any platform (Google Analytics, Omniture, etc.) that are automatically appended to all links shared from that social account or content coming from any specific RSS feed. Users can also override these default tags when composing.

    We find that automatically appending tags is a great workflow solution and saves clients time.

    To reiterate though, these tags are defined by the client.

    If you would like to talk about this further or learn more about SocialFlow please let me know. I would be happy to jump on a call.



    • Annie Cushing says

      Sorry for the horrifically late response! I didn’t realize I wasn’t receiving comment alerts. :/

      But every link I’ve seen that’s been tagged with SocialFlow has been tagged incorrectly with SocialFlow as the medium, so perhaps you guys can provide more guidance.

      • says

        Hi Anne,

        I’m guilty of the same and didn’t see your reply until just now :)

        It’s actually intentional. Many of our clients are using GA with a more robust setup including custom defined channels so including SocialFlow in the utm_medium tag is how they prefer to have their traffic segmented.

        They want to track the traffic generated from social media content they are sharing through their page (and from SocialFlow) separate from content their employees or fans are sharing on those same social media platforms. They use a non-common setup to minimize the chance that someone else has setup the same tracking structure.

        I frequently share this guide as a resource, so many have followed your steps :)



        • Annie Cushing says

          It should never be intentional to tag medium as SocialFlow. If they tag this way, all of their social reports will under-report. Their tagged traffic will already show up separately from organic social traffic, so segmentation is a piece of cake. You can use this custom report to see how the traffic breaks down: If you click on “(not set)” you’ll drill down to the social networks that drove traffic to your site organically. I hope this helps.

  28. says

    Thank you for showing how to correct the default channel groupings. I was having a tough time collecting data from comparison shopping engines, but this new information should make it really helpful to segment that data now.

    • Annie Cushing says

      Sorry for the horrifically late response! I didn’t realize I wasn’t receiving comment alerts. :/

      But you’re very welcome! That’s a really cool feature that hasn’t gotten enough air time.

    • Annie Cushing says

      Sorry for the horrifically late response! I didn’t realize I wasn’t receiving comment alerts. :/

      I would tag that as display, but I would include something about the email in the optional content parameter.

  29. Michael Friedman says

    Annie, great post! For years I’ve worked with Omniture and have come up with a fairly rigorous and successful campaign naming convention that I use with one of my clients for their Google PPC efforts. As part of their campaign ID query string, their AdWords destination URLs include {keyword}, {matchtype} and {adposition}. I now have a new client who uses GA. Being less familiar with GA, I wondered if it’s possible to append those query parameters onto the string along with the standard utm ones you covered above? It should be noted that I want to capture the actual keyword the visitor typed that triggered my ad. So, if I bid on a term that is broad matched, I’d like to capture the entire term in the search box. Make sense? So, if it is possible to add these additional parameters to the destination urls, how would one do so…by separating each element with a “+” or “%20” or something else?

    • Annie Cushing says

      It is possible, but I’d take advantage of AdWords’ auto tagging capabilities. It will be less work for you.

  30. Laurent says

    Can I use tagging for email links (a href=””) or is it only applicable to url link?

    • Annie Cushing says

      Have you tried clicking on the link and looking for the visit using the real-time reports?

      A few unsolicited pieces of advice:

      – I’d use lowercase for everything.
      – I’d add “.com” to facebook.
      – I’d use + signs instead of underscores in the campaign name. These will translate into spaces into GA (and your reports), which are easier to read.

  31. says

    Hi Annie,
    Thanks for the really helpful guide! I’ve been scouring Google Analytics videos, articles, and trying to self-learn without much luck in finding answers. Basically, I’d been adding custom campaign tagging to each link we sent out in our email newsletters. I wanted to see how many folks landed on our giving page via each email campaign. Seemed simple…except I can’t for the life of me actually FIND this data. I go to Reporting –> Acquisitions –> All Campaigns, and nada. All I get are (not set) or (none) which is odd, since there must be at least ONE person who clicked via the custom tagged links (i.e. ME when I testd the links). How come no data shows? I don’t get it…it’s as if Google Analytics is telling me no one visited our page via the email campaigns but I know that’s wrong! Is there something I’m doing wrong? I used the URL builder and everything…how do I create a report that shows me the effectiveness of these campaigns!?

    A frustrated coordinator in need of expert advice,

    • Annie Cushing says

      Hi Christine, I’d search for “utm_” in your All Pages report. If you’re not including at least the utm_medium and utm_source parameters Google won’t be able to parse the campaign parameter values from your URLs. Even thought utm_campaign isn’t required, I highly recommend including it. Why go to all the trouble of campaign tagging and not name your campaigns?

  32. Jerome says

    I usually use Excellent Analytics but today I can’t connect to my Analytics account. The error message is “invalid password/usernam”.
    I tried to login to my analytics account and there is no problem.
    Do I need to add proxy ?
    Could you help me please ?

  33. Casey C says

    Hi Annie!

    Thank you for this wonderful guide! I’ve been looking through it all week and trying to figure out applications for my clients. I haven’t gotten into campaign tagging yet. If you do have a minute, I have two questions for you that popped up as I was thinking about this:

    1. Is there any kind of testing environment you’d recommend for trying campaign tags before implementation? I read your post “How To Trash Your Google Analytics Account With Campaign Tagging” which has me a little concerned that a simple mistake could irreparably wreck data.

    2. Are the cpc, display, and banner media for campaign tags more for online advertising outside of using Google Adwords? I can’t think of why someone would set up campaign tags for a Google Adwords campaign with the Adwords reporting already available in GA.

    Thanks again!,
    Casey C

    • Annie Cushing says

      Hi Casey!

      You’re very welcome! Glad it helped. :)

      1. It’s kind of tough to “test” your campaign tagging unless you have a subdomain that’s filtered out of your GA view (fka profile) that you can play with. But you’re not going to break anything w/ campaign tagging (unless, of course) you use it for links on your own site.

      2. Yes, they are. AdWords offers auto tagging, and you’d be pretty hard pressed to come up with a good reason not to take advantage of that.

  34. Josh says

    This is a very helpful guide! Quick question. If you ask an outside partner to send an email, do you recommend tagging the medium as “email” or “partner”?

    • Annie Cushing says

      Great question. I would actually use email so that it routes to the email bucket. But you could also use Partner. You would just need to make sure you create a bucket for Partner in the backend so that this traffic doesn’t get routed to the “Other” bucket in the Channels report.

  35. Clayton says

    Hi Annie,

    What a wonderful site! THANK YOU!

    I have 2 questions.

    1) Should I use .com at the of the source name for linkedin, twitter, and facebook? Are there cases where I should use .com and then not use .com? Will it make a difference?

    2) What is the difference in your URL spreadsheet between destination url and raw url?

    Thanks so much!

    • Annie Cushing says

      Thank you! Glad you like it!

      1) I always include the TLD b/c I want my tagged sources to blend in w/ untagged sources (ergo, follow the same format). And when you look at the Referrals report, the TLD (e.g., is included.

      2) I’m not sure what you mean here. You enter the destination URL, and it will add the parameters for you.

  36. Andy says

    Fantastic resource, thank you so much for sharing. We use a lot of email follow up sequences and I love the notion of tracking the performance of each email in turn.

    Would you suggest using content and term for that? For instance, if I had a 5-email sequence to welcome customers, might the third have the following setup:
    – Medium: email
    – Source: Infusionsoft
    – Campaign: New Customer Welcome
    – Content: Email 3
    – Term: Text Link (or Footer Link, Image Link)


  37. says

    Very nice! I love the way Google Analytics is able to provide me with all the neccessary stats of my page. I would like one day to have my own online store and be able to sell many things and have GA provide me with some very important information that I would need. I seen many interesting articles that have taught and guided me. Thank you for your article.

  38. says

    This guide was super useful. Thanks, Annie!

    Question: Say I send an email with a link tagged utm_medium=email. Then someone copies that link with the parameters and shares it on Facebook. When their friends follow that link, will Google Analytics classify their visit as medium “social” (since it came from Facebook) or “email” (since I tagged it utm_medium=email)?

    • says

      Ok, I’m pretty sure that it would show up as “email”. utm_medium will override the default mechanism Google Analytics uses to detect the medium. Please let me know if that’s wrong.

      I like the way you recommend using utm_medium, utm_source and utm_campaign for ease of use. But because of the above it seems like data is lost. If someone shares the link to a different medium, the medium will be misdetected. If someone posted my link with utm_medium=email&utm_source=mailchimp to Reddit and it blew up, Google Analytics would think all that extra traffic came from email rather than Reddit.

      So I’m actually leaning toward stuffing the original medium, source and campaign name all into utm_campaign and not using the other utm parameters. This way my originally-emailed link shared on Reddit would come through with medium “referral”, “” and campaign “email-mailchimp-newsletter-5” and all the data is preserved. The drawback is having to use regexes to filter through all that narrow utm_campaign data.

  39. says

    Great post Annie! It’s been super helpful. We are trying to set up our blog tagging but want to make sure it’s done correctly. Medium = Email, but we’re not sure what to set Source & Campaign to.

    Would Campaign be the specific blog post name, and source be “Blog”?

    • Annie Cushing says

      For email, source isn’t really relevant since the link doesn’t “live” on a site. Most sites use internal or the name of their email service (e.g., utm_source=mailchimp). But some use it as an extra field they can use for more granular tracking.

  40. Rodney Bautista says

    I am planning to track our offline Catalog Campaign in Google Analytics. The typical way I’ve seen this done is through using a vanity URL that then redirects to the main site with UTM parameters attached to the redirect.

    My questions is, if my site is and I use as my vanity URL, does that violate your rule of never tagging internal links? Should I use a completely different domain?

    • Annie Cushing says

      Not at all. That’s a perfect use because visitors won’t be clicking on links that live on your site that are tagged with UTM parameters. They’re coming from off the site, and that traffic would show up as direct without your tags. Pat yourself on the back for such a brilliant idea. :)

      • Rodney Bautista says

        Thanks for the clarification! If I’m using the same domain, wouldn’t these visitors still come up as a self-referral in Google Analytics, even with the UTM codes appended in the redirect? I’m afraid of screwing up my internal events or somehow double-counting. I’ve thought about using a completely different domain to assuage my concerns, but it would complicate branding and awareness for the site.

        Btw, this is an awesome blog and I am now a fan!

        • Annie Cushing says

          Ah! A year ago I would have said no way. But given the fact that Google Analytics now excludes self-referrals by default in Universal, I’d encourage you to stay away from using as the domain. Maybe use the name of the catalog or something. The reason for this is if you go to Admin > Property > Tracking Info > Referral Exclusion List and see your domain, all traffic from your domain (IOW, will be funneled into your direct traffic bucket.

          But, besides that little oddity, if you assign the medium, source, and campaign to a link, that’s what will show up in GA.

          Hope that makes sense!

  41. says


    What a wealth of knowledge in a single post…and you’re actually MAINTAINING the info – double awesome!

    I have a quick question about campaign tagging, and while I didn’t scour all of the comments here, I didn’t this in the post itself: how long does the cookie attribute the session activity to the campaign? Until it’s overwritten? Six months? Is this configurable?

    I’m using campaigns to track my email campaigns (typically two per week) to a fairly captive audience and I’m afraid my numbers are overstating the email impact by “taking credit” for purchases that would have happened anyway. I want this cookie expiration period to be relatively short (24-48 hours) to more tightly attribute purchase activity to the email, and not to just casual reordering.

    Many thanks for any help. Feel like I found a little gold mine in your site here.

  42. ThomasA says

    Hi Annie,
    i ran into a prblem and after days and days of research I wasn’t able to find the answer:
    What you neet to know:
    Report 1:
    – dimension: medium, metric: sessions
    – the medium “cpc” shows 4857 sessions

    Report 2:
    – dimension: defaukt channel grouping, metric: sessions
    – under “Branded Paid Search” i see 979 sessions
    – under “Generic Paid Search” i see 405 session
    – under “Paid Search” i see 7 sessions
    Total Paid Search Sessions: 1391

    For my understanding the medium cpc and the paid traffic from the default channel grouping should be at leas roughly identicsl. But ther’sa HUGE difference.

    Now I am aware how to change the Default Channel Grouping and make my own custom one, but HOW do I understand and change the medium. Btw the more correct cpc numbers are shown by the defautl channel grouping. The medium must be totally wrong.

    I don’t use campaign tracking for the cpc (long story). So all this grouping (channel and medium) is automatic.

    What do you think? where does this difference come from?

    • Annie Cushing says

      Is cpc capitalized in the Medium report? If so, Google doesn’t recognize it as being Paid Search. Also, the Paid/Generic search channels are AdWords swim only. So if you’re manually tagging anything utm_medium=cpc, that traffic won’t show up in these buckets.

  43. says

    Traffic1M included this Guide in their email today. I can’t thank you enough for creating this gem. It outdoes what Google put together by miles. Awesome explanation. I’m going to throw this up on Reddit :)

  44. Vic says

    Hi Annie,

    I have a client who is using their new domain name in an ad placed on a two different 3rd party websites, and they want to track performance.

    Usually, I’d just send the UTM parameters over to add to the URLs they want to track… but the problem is, this new domain is not currently live and 302 redirects to their existing domain, so as far as I understand, a custom parameter is going to be removed. Certainly appears that way when I test it :(

    The obvious solution is to use their current domain in the ad instead so I can just add the UTM parameters, but I don’t think they’ll go for that. The only other ways I can think of is asking their developer to do some mad rewrite rules that stop the parameter from being stripped out (not easy as the new domain is with their branding company at the mo so he doesn’t have access – plus I’m dubious as to whether it would even work across domains) or ask the branding agency to create 2 pages on the new domain, exclude these pages from the domain level redirect to the current domain, create corresponding pages on the current domain for these pages to redirect to, and then block the pages on the current domain using a noindex so that the only way of reaching them is via the ads. And after all that, I can monitor the number of visits to these pages in GA. (I hope this makes some sense) :/


    I’ve probably overlooked something really obvious that solves this without mad amounts of faffing about, so any help you can provide will be greatly appreciated! :)



    • Annie Cushing says

      I’ve had campaign parameters carry over w/ 301 redirects, but I’ve never tested 302 redirects. You might want to test 301s. Alternatively, you could just have the new domain redirect to a page on the old site that contains query parameters. You typically use this strategy with things like vanity URLs. It’a a bit of a last resort.

  45. Disha says

    Awesome post! If a client insists on using the Campaign term parameter (for non-paid campaigns), what are some of the best values that it could take? Thanks.

    • Annie Cushing says

      Thanks, Disha! I use the campaign parameter for things like banner size (e.g., utm_content=300×200) and position in an email (e.g., header, footer, text, etc.). But you can literally use it for anything.

  46. says

    Annie – really – this is the best guide about campaigns tagging I ever read. Seriously! Thank you sooo much.

    I’ve been using utm parameters since 2012 without really knowing what I was doing. I felt it was useful, but I couldn’t actually find any CLARIFICATION. Google Analytics Help itself doesn’t help much.

    I’m one of those who fu***d up their analytics with messy data… 😀 I printed your guide and sticked to the wall as my Analytics Bible!

    I’d like to ask you for one suggestion. How would you tag the URL used in a blog comment (see mine in this comment itself)? In particular, what would you use as Campaign and Medium?

    …ut more in general, when there’s no really a campaign running. For example, I’m a developer and always put a credit link in the footer of the customer’s website. I used to put the page’s permalink as utm_campaign.

    Or, as another example, a signature for a forum or e-mail. I’m still a bit confused about this…

    Thanks for this great article,

    • Annie Cushing says

      So glad it’s helped you. First of all, I don’t tag every link on the web. Campaign tagging is really just for that: actual marketing campaigns. For example, if you didn’t tag blog comments, you’d be able to see the full URL people came from. You don’t get that with campaign tagging – at least not without some serious engineering (like putting the referral in utm_source and page path in another campaign parameter, e.g., utm_content). But if you consider blog commenting a campaign, then go for it. You could tag utm_source as the site you’re leaving the comment on and the medium as comments.

      As far as my email signature goes, I tag my medium as email, but I could also create a bucket for all signatures that I call signature. Just remember that if you create a new medium, you need to create a channel for it, which I explain how to do in the guide. This is really important. Otherwise, these visits will show up in the dreaded “Other” channel.

  47. Rachel Jacob says


    As all have said, great guide.
    I downloaded your spreadsheet and noticed there are the columns labeled as “Destination URL” and “Raw URL.” What are the differences in these columns and which one should we use for tracking? I noticed for the “Raw URL” entries under the Example Campaign tab, that utm_medium begins with a question mark (?), where as in the Destination URL entries it is preceded with an ampersand (&).

      • Rachel Jacob says


        Originally I did try hovering over the headings for comments (for both the original copy and a downloaded copy) and neither are working. I thought perhaps it was a browser issue and opened the file in both internet explorer and chrome, same issue.

        • Annie Cushing says

          Wow, I didn’t know Google took away the ability to see comments in a file you don’t own. This is new and really hinders the effectiveness of comments. Sigh.

          I added the instructions in to the cells above each of the columns. It looks a wreck now, but at least it’s functional.

          • Rachel Jacob says

            No worries, nice to know I wasn’t going crazy! Thank you for being so on top of your comments section, it really helps those who are newbies to google analytics to be able to quickly converse with someone who can explain things better than the analytics help section!

          • Rachel Jacob says

            Also it doesn’t look that bad! After downloading a copy (either in google docs or excel) users can copy and paste the text and insert them as comments. Takes only a few minutes. :)

  48. Alex Lee says

    Great post. I am just wondering how do I view the URLs in the report? Let’s say I have a very successful campaign and most of them are from / social, how can I break this information down into the individual links I’ve shared? This is assuming I am sharing different URLs.

    • Annie Cushing says

      I created an animated gif with the steps you’d take to find the landing pages for a particular campaign: But you can change the primary dimension to Landing Page for all of the campaign reports in GA.

  49. Julia Oleskey says

    Thanks for the post. I’m trying to track individual print campaign success at driving traffic to a website that I don’t own. Is it possible to use google analytics for this since I don’t own the website, or could I list different URLs to the same website URL to track our various efforts? Thank you!

    • Annie Cushing says

      Yeah, using bitly links would be the best strategy. Since you don’t have access to their data and you can’t even monitor clicks, there’s no other way to track clicks.

      Tip: Adding a + after the bitly URL will open the analytics on any bitly URL.

    • Annie Cushing says

      That parameter is there for the taking. I tend to use the content parameter before the term parameter though b/c it could be confusing for people downstream to see data that isn’t a term/keyword. But it’s a matter of preference.

  50. Shlomi says

    Hi there!

    I tag links between 2 websites I manage.

    The referral path or full refrral are missing in my reports, and usually show as (not set), while link that aren’t tags show the referral. Is there a known work around here?

    I came across this paragraph, but didn’t help me so far:
    “Also, when you tag links to someone else’s site they don’t get as much info about your site, such as what page the traffic came from. (You need to use a custom report that uses the Full Referrer dimension to get this. It’s not in any of the standard reports. You can use this custom report as a template.)”

    Thanks ahead :)

    • Annie Cushing says

      You don’t get full referrer with tagged links. It makes sense if you think about it. Full referrer is just source + referral path stitched together. With campaign tagging, you’re overwriting the source. This is why I don’t recommend tagging links on static URLs, like blog posts on a sister/partner site. It’s better to treat it as a referral and maybe create a custom channel of Partner with your partner sites to more carefully track traffic from those sites. You can learn all about creating custom channels with my guide: Hope this helps!

  51. Joe Librizzi says

    Annie, this post is amazing! I’ve been reading a ton on campaign tagging recently in an effort to improve my tagging structure and this is easily one of the best pieces I’ve found.

    I wonder if you have any advice for tagging affiliate campaigns. My gut is telling me to go with
    utm_medium=affiliate&utm_source={affiliate name/id}&utm_campaign=free+trial&utm_content={ad unit name/id}

    but I’ve seen others suggest that source should be the affiliate network (e.g. commission+junction) and either campaign or content should define the affiliate name.

    Do you agree the identifying the affiliate network is more valuable than some other data point? Do you have a preferred syntax for affiliates?

    • Annie Cushing says

      Hi Joe!

      I think the only reason people use the affiliate network is so they can upload the links to the network for all to use. I think it’s much better to use the affiliate name (if that’s possible with your network). Or if you use query parameters, you can grab the affiliate name/ID from a parameter using Google Tag Manager. Or you could create a custom channel for Affiliate and manually add your affiliates to it in GA. I demonstrate how to create channels in this post:

  52. says

    Great post Annie. I need to start incorporating tagging into more of our client marketing campaigns for more efficient data within the analytic accounts. Your post will help us accomplish this. Thanks!.

  53. says

    Hey Annie, It looks like an update to Google Docs broke the destination URL formula in the Campaign Tagging Tool . Now the first UTM parameter starts with an ampersand (&) instead of a question mark (?) which breaks the URL. I noticed this today in my clone of your awesome spreadsheet. Can you review your spreadsheet and fill us in on the solution? Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *