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 also wrote a post that serves as practical walkthrough demonstrating how to customize channels with more details on why the default channels are woefully inadequate for most sites and need to be customized.
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.
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 https://annielytics.com/blog/excel-tips/ might look like https://annielytics.com/blog/excel-tips/?utm_medium=social&utm_source=facebook.com&utm_campaign=functionfriday.
** 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.
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:
- Campaign tagging consolidates all campaign data in a set of campaign reports (found under Acquisition > Campaigns).
- 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.)
- 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.
- 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.
Cast Of Characters
MVP Parameters
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?
Medium
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
- feed
- banner
- cpc
- display
- affiliate
- ebook
- tv
- 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.
Source
The source is simply where the link lives. For the best guide, let’s look at how Google Analytics lists sources.
Note: t.co 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 t.co. You can learn more from the Twitter site.
Before Twitter started using t.co, 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 twitter.com. Did you publish it on Facebook? Then set it to facebook.com. Did you broker a banner on my site (suspending reality for a moment)? Then set it to annielytics.com. 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.
Content
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).
Term
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.
?utm_source=bing&utm_medium=cpc&utm_campaign=[“manually”-added-campaign-name]&utm_term={keyword}&utm_content={QueryString}
It pays to have smart friends! Thanks, Yehoshua!
You could repurpose this parameter for other marketing campaigns, but I don’t recommend it.
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.
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.
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.)
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.
**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.
Google’s Classification Rules
If you want to see the rules Google uses to classify visits, there’s a backdoor in. Follow these steps:
- Go to Conversions > Multi-Channel Funnels > Assisted Conversions.
- 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.
- In the Channel Grouping Settings dialog, click on any of the pencil icons to edit a definition.
- To check out Google’s definition of Social Network, click the pencil icon. Here’s what you’ll see:
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.
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.
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.)
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 and if you still need more help, consider checking with business expert Andy Defrancesco.
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 SocialMediaExaminer.com and SocialMediaToday.com
Landing Page: http://www.cooltool.com/free-trial/
** 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 coolesttoolever.com 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: http://www.cooltool.com/free-trial/?utm_medium=print&utm_source=conference+brochure&utm_campaign=free+
trial&utm_content=sxsw.
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: http://www.cooltool.com/leaders/
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.
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).
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:
http://jezebel.com/jailed-craigslist-killer-claims-responsibility-for-at-l-1523890277?utm_campaign=socialflow_jezebel_facebook&utm_source=jezebel_facebook&
utm_medium=socialflow
Let me know if you find examples of other tools mis-tagging social links in the comments below.
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:
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.
Worst Tagging Mistakes I See
Although most of these mistakes have been covered elsewhere, I’m going to compile them into one place.
- 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.
- Not making the medium “bucket” big enough — or tagging medium as sources like twitter or facebook.
- 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.
- Missing links in boilerplate sections of your emails, such as the header and footer.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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 plus.url.google.com, though some show up as coming from plus.google.com.
- Tagging links to someone else’s site. Remember: just tag links to your site.
- 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.
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.
Questions?
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 for $295.
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) :/
*cries*
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! 🙂
Ta,
Vic
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.
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.
Sebastian Scaramuzza 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,
Goodbye
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.
Rachel Jacob says
Annie,
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 (&).
Annie Cushing says
I have comments in each of the headers in the original Google Doc (https://docs.google.com/spreadsheet/ccc?key=0AlgVNSddFpwxdEV1R3NtTFNQdDFvZExIbmFVZjZhdVE&usp=drive_web#gid=0). You should check them out. They walk you through how to use the document. Once you understand it, you can use those same steps in your downloaded copy.
Rachel Jacob says
Annie,
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. 🙂
Annie Cushing says
Happy to help!
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 facebook.com / 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: http://goo.gl/Z9eFIk. But you can change the primary dimension to Landing Page for all of the campaign reports in GA.
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 bit.ly 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.
Philippe says
Hi and thank you for the work !
What about using terms for ad set targeting with facebook ads ?
Cheers
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.
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: https://annielytics.com/guides/definitive-guide-to-channel-groupings-google-analytics/. Hope this helps!
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: https://annielytics.com/guides/definitive-guide-to-channel-groupings-google-analytics/.
Jeffrey DeArmond 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!.
Annie Cushing says
Awesome, Jeffrey! I’m doing a really comprehensive webinar with Moz this Tue (1:30 – 3pm EST) that will cover campaign tagging and channel groupings. If you have both down and understand how each impacts the other, you will kill campaign tracking! Here’s a link to sign up: https://attendee.gotowebinar.com/register/5715850050493825026. And I wrote this public Facebook post to give an overview of what I’ll be covering: https://www.facebook.com/irishannie/posts/10153772296826880.
Sam Mazaheri 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!
Annie Cushing says
Thanks for the head’s up! Oddly enough, the tilde character in my formula was a casualty of the upgrade. Silly Google ….
But it’s all fixed now. 🙂
Sam Mazaheri says
Perfecto! Adding that ~ fixed it. Thanks!
Annie Cushing says
Yeah, it was in there before, or the formula wouldn’t have ever worked. It’s weird that it was lost in the last update.
Laure Sabatier says
Hello Annie,
Thank you very much for sharing this excel spreadsheet. I would have never been able to create such a complex formula. And it’s very generous to share this amazing work.
The formula IF(ISNUMBER(SEARCH(“~?”,B12)),”&”,”?”) applied a “?” at any instance. Some of my URL already have a “?”, some don’t… (for instance http://noca.convio.net/site/Ecard?ecard_id=1101&s_locale=fr_CA and http://ovariancanada.org/events-support).
I’m writing you this comment just as an FYI because I found that replacing this bit of formula by IF(ISERR(SEARCH(“~?”, B4)), “?”, “&”) is working better (for me at least).
Best,
Annie Cushing says
Very cool! I’ll have to try it out. Thanks!
Paul says
Hello Annie,
Thank you for the very helpful article! I have bookmarked it 🙂
I found this post while researching why Buffer was changing my UTM tags. I wish to tag social media posts that drive traffic to my website so that I can identify which posts generate the best traffic & conversions. However rather than seeing the campaign title I am seeing:
Campaign: Buffer
Source: Twitter.com
Medium: Social
Is there a good alternative to Buffer that will avoid this problem, e.g. Hootsuite? Or is there another more simple workaround whereby I can still use Buffer?
Thanks!
Paul
Annie Cushing says
So that traffic coming from Buffer is from visitors to your site using [most likely] the Buffer Chrome extension to share your content. So even if you switched to Hootsuite, it’s not going to impact that. You use campaign tags that make sense to you to track your shares. Everything else that come in as social (whether it was shared via Buffer, Hootsuite, some other tool, or your social buttons) should count as your more “organic” social traffic, i.e., social traffic that wasn’t the direct result of one of your social shares. Hope that makes sense!
Paul says
Thank you for your kind reply. A clearer example of my problem is:
Each month I post 10 tweets on my Twitter feed directing my followers to 2 different campaigns on my website.
I set up links in the tweets with 2 different UTM tags, one for each campaign:
Campaign: Free-Lauda-Poster
Source: Twitter.com
Medium: Social
Campaign: Half-Price-Membership
Source: Twitter.com
Medium: Social
Problem is: if I use Buffer to schedule the tweets, they are reported without the campaign UTM in Google Analytics and are all grouped as:
Campaign: Buffer
Source: Twitter.com
Medium: Social
I have tried using Hootsuite and it tags my campaigns exactly as per my UTM tags so this resolves the problem. Just wondered if there was a workaround so I can still use Buffer but tag my campaigns as I wish. 🙂 Thanks!
Annie Cushing says
Oh yeah, I know what you’re talking about now! This is precisely why I don’t use Buffer to schedule social shares for my own site. I use TweetDeck. But I will reach out to the Buffer team and revisit this issue. Perhaps they could write a rule that looks for campaign parameters in the URL and doesn’t overwrite them if they’re present. A girl can dream …
But if you don’t hear back from me (and I will let you know if they amend their tagging policy ) don’t use them for scheduling. Sorry. Wish I had better news for you!
Paul says
Thank you for your kind help and good to hear i’m not the only one with this issue. I think I will switch to Hootsuite in this case.
I have another question if you would be kind enough to help. In the Google Analytics campaign reporting for my UTM tags, duplicate campaign names are appearing for the same UTM link.
For example:
Destination URL: http://www.solving-utm-tag-problems.com
Campaign: half-price-membership
Source: Twitter.com
Medium: Social
In the Google Analytics reporting, the campaign name “half-price-membership” should appear, however, I am getting traffic coming to 3 separate results:
half-price-membership
half-price-membership/
half-price-membership?mob=0
I suspect the cause of this is that visitors clicking the same UTM link are arriving at different URLs for the same landing page because of the way the website is set up. Do you think I am correct? If so, is there a simple work around so that only one campaign name is reported in Google Analytics?
Thank you again for your awesome help!
Annie Cushing says
Hi Paul!
Happy to help! Could you include a screenshot of the report, so I can see what you mean by results? I can’t tell if these “results” are campaign names or landing pages:
half-price-membership
half-price-membership/
half-price-membership?mob=0
If you don’t feel comfortable posting here, you can email me at annie(at)annielytics(dot)com!
Shaun Burgess says
Hi Annie
I am working on a GA naming convention schema for the Cancer Council and working with the social team (who use Hootsuite in which we will set up some automated appends they can use).
My question is for a source of “facebook” do you typically see use of mediums such as “social” and “cpc” to denote an organic post link versus a paid (boosted etc..) post or ad? We will be adding other Campaign and and Content parameters to both organic posts and paid ads on facebook but I am unsure whether people in the main refer to the organic post as “social” and paid for example “cpc” (even though the paid models are more varied/complex)
I am thinking this would be similar in concept to google engine traffic being denoted in the Medium as “organic” or paid as “cpc”.
I hope that kind of made sense?
Regards
Shaun
Annie Cushing says
Hi Shaun,
Setting medium to cpc causes it to route to Paid Search (which is why I don’t like using for paid social). If you’re running campaigns such as AdWords, you’ll have paid social showing up in the same bucket.
Personally, I would prefer to have paid social in its own channel. I recommend using a custom medium like paid+social (which will show up as ‘paid social’ in reports). Then you would create a custom channel of Paid Social using the definition medium regex matches ‘paid social’ (sans quotes). This way you can compare your organic social to your paid social and your paid search traffic.
You can learn how to create custom channels here: https://annielytics.com/guides/definitive-guide-to-channel-groupings-google-analytics/.
Hope this helps!
Sal says
HI there, Great article, thank you! Could you help me with something – I set up a recent facebook paid post with this link: http://www.website.com//jackets/?utm_source=facebook&utm_medium=cpc&utm_campaign=JacketsMobile but its fallen into the ‘Other’ Channel instead of Social – why is this please? whats wrong with the link that I’ve built? Thanks
Annie Cushing says
Hey Sal!
Setting medium to cpc causes it to route to Paid Search (which is why I don’t like using for paid social). But it shouldn’t be going into your (Other) bucket. You can see how different channels are defined here: https://support.google.com/analytics/answer/3297892?hl=en.
Bob Grey says
Great article!! I have a problem though where my custom campaign report is showing traffic to urls that I haven’t appended the utm codes??
Eg. the landing page is:
http://site.com/articlepage.html?utm_source=google&utm_medium=cpc&utm_term=free%20widget&utm_campaign=widget
However when I run my source/medium report by landing page, I get a lot more landing pages than what I’m actually promoting.
For example, GA tells me i promoted the homepage, which i actually didn’t. Also a bunch of category pages are reported as landing pages as well. I don’t promote home pages or category pages only article pages.
Why does GA tell me I have promoted a page when I haven’t?
Annie Cushing says
You may be sending PPC traffic to pages that are redirecting to these pages. Sometimes the utm parameters get passed in the redirect. I’d run all of your landing pages through a crawler like Screaming Frog to make sure they’re all resolving to a 200 status code.
Chris McCreery says
Hey Annie, also noticed another email tool that doesn’t have it quite right. Constant Contact likes to use utm_medium=socialshare for their social sharing links with in emails. 🙁
Annie Cushing says
Good to know! So frustrating.
Pedro says
Thank you for this amazing resource!
I use campaign tagging, but have a bizarre issue with it, in that it still comes through as direct sometimes in GA. Sometimes clicking on a link to the site from Facebook without the tag comes through as direct and sometimes a link comes through as Facebook. I thought the campaign tagging would fix this, but it doesn’t. The campaign tags aren’t being stripped, they’re visible in the URL, and do work sometimes.
For example, I open the link from Facebook (desktop) in different browsers and then check it in GA real-time. In one browser it might come through with the correct tracking in the right bucket, but in other browsers it sometimes does and sometimes doesn’t. (it doesn’t seem to be the same for any browser all the time).
Any help or resource you can point to would be much appreciated.
Thank you again!
Annie Cushing says
Hi Pedro,
I’d have to be able to test it myself to figure out why this would be happening. There are a number of different possibilities, but most of them center around user error.
Debbie Kay says
Hurray for mentioning Wistia Fresh URLs as well – saw it on Eager.io and use it as a plugin but this is the first time I’m seeing anyone endorse it!
Annie Cushing says
Yeah, it was so cool of them to create that for the marketing community!
green filter Germany says
Your blog is very nice and I like it your blog keep sharing with your new article….