4 Steps to Better Campaign Data in Google Analytics


A Cure for Campaign Tag Soup

It’s so easy to tag your campaigns for Google Analytics that you can quickly fill your reports with a mishmash Soup bowl with Scrabble tilesof labels and end up with campaign tag soup! But what’s the best way to get organized? Even if you know what medium and source mean, it’s not always obvious how you should fit campaign info into those slots. And what about the extra slots we get for campaign tags like campaign and content and term?

Take these 4 steps to develop a coherent campaign tagging plan and start improving your data today:

1. Build On the Default Labels

Google Analytics already fills your Traffic Reports with values (labels) for medium and source. Any new labels you create for your campaign data will fill the same reports, so think about what you want to see together in the list of mediums or sources. Making old and new labels look like part of the same family is a good way to get organized.

Medium has four default labels: referral, organic, cpc for paid search, and (none) for direct traffic. Think of these as the big buckets of traffic, the highest level marketing channels. Create new channels at the same high level and don’t get too specific. For example:

banner (or display)

theater audience wearing 3D glasses

Source has three types of labels by default: website names for referrals, search engines, and (direct). Think of these as your target audiences – the users of specific websites or search engines, or people who already knew you and came directly. Describe who’s viewing your campaign content with source labels like:

partner.com = the website where you put your banner ad
industry-today = the name of a publication where you advertise
postcard-list = the name of the mailing list

Remember the default labels also make lots of tagging unnecessary. Turn auto-tagging on in AdWords and you automatically get medium=cpc and source=google along with all the other AdWords dimensions including your campaign names. You have to tag other paid search campaigns, but you don’t have to tag things like links from affiliate sites. They’re already in the Referrals report with medium=referral and source=your-affiliate-site-name.

2. Make Labels Answer Questions

Creating labels for campaign and content and term is easier if you think of them as answers to questions, following the same lines as medium and source.

  • Medium = What broad marketing channels are you using?
  • Source = Who is viewing your content or delivering the viewers?
  • Campaign = Why are you targeting these sources and (optional) when?
  • Content = Which marketing effort performs better?
  • Term = Which keywords perform better?

green highway sign for Purpose

Campaign labels pull all the other labels together, identifying all the different mediums and sources you used for a particular purpose. Think about why you are targeting these audiences. It could be a product launch, a fundraising event, or an ongoing promotion. You might want to indicate the date or time of year here as well, since campaigns usually occur over some limited period of time.


Content labels help you compare how well different links perform within the same source, medium, or campaign. Which type of link persuades more people to click? Top or bottom of email? Different target text, maybe using different offers to see which is more attractive (free shipping or 20 percent off)? Text link or photo link? Or even a QR code!

Term looks like an extra slot for email or banner info, but should be used only for your paid search keywords. Whatever you tag with utm_term will end up in your Keywords reports! So let AdWords auto-tagging automatically capture your keywords, and work with any other paid search vendors to fill in utm_term with actual keywords as well.

3. Don’t Mix and Match

Consistency is everything. If you’re going to use email as a medium, don’t also use it as a source. Don’t put dates or seasonal info in any slot that seems convenient, pick one (like the campaign slot) and stick to it. When you need more granularity, consider adding it in the same slot like this example for sources:


This still describes my target audience, so I think it makes sense to include it in the source label rather than bump it into the content label simply because that slot happens to be available. And being consistent has other benefits.

Using the same label across tags in the same slot also allows you to roll up data more easily. In the above example, I can search All Traffic sources for newsletter and see how the newsletter did overall as well as compare data for the two groups who received it. You can also compare performance across campaigns that had the same purpose but ran at different times, if you can search your Campaigns report for the label they have in common.

4. Document and Share

For best results, record everything in a campaign worksheet. Not only will it help you remember how you tagged prior campaigns to keep descriptions consistent, it’s absolutely essential as a guide for spelling and punctuation when more than one person is creating tags. Keep the worksheet in a shared space like Google Docs.

Another good thing about using a spreadsheet is that a formula can pull all your labels together into a campaign-tagged URL. Just make sure that utm_source comes first.

What’s your approach to campaign tagging? Have you developed a system that works for you? Please share in the comments.

Dorcas Alexander is a Manager for the Analytics & Insight department. Her path to LunaMetrics followed stints in ad agency creative, math, and computer science. Dorcas has a master's degree in language and information technologies from Carnegie Mellon University, where she helped build precursors to a Universal Translator. One of the top-rated tournament Scrabble players in Pennsylvania, Dorcas has an insatiable drive to compete and win.

  • Kamal

    There are principles I used for my google analytics campaign url builder at webstrategy360.com/GACUB

  • Great hints. I have a lot of campaigns and any suggestions to help streamline them is appreciated πŸ™‚

  • Richard Hiers

    Why do you say that source has to come first in the tagged URL? I’ve not seen that specified before, and examples on the web have it in various positions.

    • Dorcas Alexander

      Good question, Richard. You don’t have to, but you should put source first because GA won’t recognize the rest of the utm campaign parameters if source is not included. There’s always the possibility that a really long shared link will be partially cut off, for example, if it ends up on two or more lines of text instead of one. See my colleague Jonathan’s post about required campaign tags from a couple years ago, which talks about how campaign tracking fails when utm_source is not included. I re-tested this last week and it’s still true.

  • Richard Hiers

    Makes sense. Thanks.

  • Halee

    Is there a character limit for each of these utm parameters? I can’t find that info anywhere in Google Analytics Help…

    • Dorcas Alexander

      Hi Halee, You’re limited only by the overall length of the tracking data sent to GA (the utm.gif request, which contains a variety of data along with campaign parameters). And you’d have to work pretty hard to reach this limit (8192 bytes, roughly equivalent to 8192 English characters) since a typical utm.gif request is between 600-800 characters long. However, it’s a good idea to create shorter campaign tags for a couple reasons. Not only will they be easier to read in your GA reports, but they’ll also create shorter URLs, which are easier to copy/paste. This reduces the chance of errors due to part of the URL being inadvertently cut off. Hope that helps!

  • Good stuff here. I have been tracking my links with all 5 of these tags. I could use some insight, however, into the best way to extract that info from G. Analytics. Within Traffic Sources>Sources>Campaigns I get 3 out of my 5 tags. Where will analytics show me utm_source and utm_term? Thanks.

    • Dorcas Alexander

      Hi Jordan,

      Change the Primary Dimension or add a Secondary dimension:

      utm_content = “Ad Content”

      utm_term = “Keyword”

      You can simply start typing Content or Keyword in the dropdown menu under Other for Primary Dimension or under Secondary dimension, and then choose Ad Content or Keyword from either heading, Traffic Sources or AdWords (they are the same dimensions no matter which heading they appear under).

  • Jerry

    Definitely great tips here! One thing I’ve never been able to figure out with tags: Do campaign tags get overridden by web mail platforms’ own referrals? For instance, we tag all the links to our site in our campaign emails, but I have noticed several “mail.yahoo.com” referrals to the pages we link to in the emails. Thanks for any insight you can provide!

    • Dorcas Alexander

      Hi Jerry, Using campaign tags on all your email links should reduce (and nearly eliminate) referrals from web mail servers such as mail.yahoo.com. The primary reason some of those might continue to appear even after you’ve tagged every link is due to GA’s handling of direct traffic. For example, if a visitor comes to your site via an email link, and then in a subsequent visit comes back directly, the subsequent visit counts as a visit from the the email link (assuming the visitor did not delete their cookies in the meantime). GA “remembers” (via cookies) the previous visit and gives that source the “credit” for the current visit, rather than erasing that source and calling it “direct traffic”. For this reason, visitors who originally came from mail.yahoo.com before you started tagging all your links, and who have always come back directly to your site, will continue to appear as visitors from mail.yahoo.com until they come back some other way. After they return to your site via an organic search, or a tagged email link, or other referral (any way that’s not “direct traffic”), then GA will remember the new source and mail.yahoo.com will never appear again as a source for that visitor.

  • Excellent article and answers! Thank you, this clarifies several things very well.

  • In regards to “term”, using the URL builder, what happens if you leave it blank? What happens if you input {keyword}? Will it still show all of the keywords in GA?

    • Dorcas Alexander

      Hi Charles, If you leave “term” blank, then there won’t be a keyword associated with that visit. But that’s okay, because you don’t want to insert a keyword unless the visit results from your visitor actually searching for some term. Campaign tags used for email, display ads, social media links, etc. should not have a term inserted in the URL. For campaign URLs that result from searches, you should not use the URL builder but instead work with your paid search provider. They will programmatically insert the actual search term into the utm_term parameter. This may involve them using {keyword} or some other markup their search engine can interpret and turn into utm_term=realkeyword in the URL. You do not have to do this for AdWords keywords when you use auto-tagging, because the utm parameters are all encoded in the gclid parameter.

  • When running a display/banner campaign outside of Google, using a 3rd party platform, how would you tag the medium so that it shows up under “DISPLAY” in the GA multi channel report. Would you tag it “display” or “banner” ?? Thanks!

    • Dorcas Alexander

      To see how the current display channel is defined in the multi channel reports, go to the Top Conversion Paths report and look for the dropdown menu under “Channel Groupings”. Choose “Copy Basic Channel Groupings template…” and click Edit next to the display channel which should be the first one listed. You’ll see that it’s looking for Ad Distribution Network = Content and Medium = display or cpm. Click the “X” at the far right of the first condition (Ad Distribution Network) to remove it. Scroll down and click the second “Remove” tab to get rid of the next set of conditions (related to Ad Format = Text). Click “Save and Apply”. Now you can tag your non-Google display campaigns with medium=display and it will show up in the display channel, every time you select this copy of the basic template from the dropdown menu. (You can rename the copy.) If you prefer to leave the display channel as it is currently, you could edit a copy of the basic template and just add a new display channel named “other display” that is defined as Medium = display and excludes Ad Distribution = Content. Hope that helps!

  • Hi Dorcas. I did notice an autotag excel template few months ago somewhere on your site but did not reference it. Could direct me to it please?


  • Stephen G.

    Thanks for a very useful post! One thing I can’t find in GA is the campaign referral URLs. If someone clicks on a banner ad or Facebook link with campaign parameters, I’d like to know what site/page they came from. Does GA not store that? I can get that from SiteCatalyst with some configuration.

    • Dorcas Alexander

      GA stores this data but doesn’t surface it in the standard reports. You can access it with a custom advanced filter that reads the “Referral” field and writes that value into a field like User Defined. Note that “Referral” is the field you want, which captures the HTTP Referrer for a visit from any medium. Do not use “Campaign Referral Path” because that field is only present when the medium=referral. After the filter starts rewriting this data, you can view the referrer data under Audience > Custom > User Defined. If you don’t want to overwrite User Defined, consider overwriting another field you may never look at, such as Screen Colors (under Technology > Browser & OS > Screen Colors). You can also create custom reports if the User Defined report doesn’t combine all the elements you need.

  • Tricia

    We currently do not have a campaign worksheet but would like to create one. How can we export this data into excel from Google Analytics? Ideally, I’d love a list but also know which ones have generated any visitors in the last 12 months.

    • Dorcas Alexander

      The export menu is at the top of every report. You can export to TSV for Excel or directly into Excel, among other options.

  • Ashley

    Hi, is there any way to set up a custom parameter in addition to campaign, source, medium, etc? My company already has a standard parameter that we use for campaign tracking and I would like it to show up in the Campaigns report in GA as well.

    For example, a tracking URL that we would use at my company would be: http://www.mysite.com/test?o=spring. (The “o” standing for “Origin”.) For standard GA tracking, that same URL would be: http://www.mysite.com/test?utm_campaign=spring. Is there any way to add the “o” as a campaign tracking parameter in our GA account so that we can see these hits in the Campaigns report without having to change our URL structure?

    I hope that makes sense… And if there’s a better way to set this up, please let me know. Thanks!

  • Ashley

    I found it! It’s so simple, I’m embarrassed to admit it. πŸ™‚ It turns out it’s an account setting under the Tracking Info tab. Turn on “Custom campaign tags” and fields will appear where you can override the utm_xxx parameter with a tag of your choice.

    • Dorcas Alexander

      Hi Ashley, Yes, that will work. Be advised that you can’t use both utm_campaign=xyz AND o=XYZ now that you’ve told GA to look for the parameter “o” for all your campaign names. All your campaign-tagged URLs must have o=XYZ in them or else GA will not record campaign name info.

  • I noticed that it’s quite uncommon to use Google’s URL builder to track campaigns. I always asked why, considering how much easy is to set up a campaign in this way. I have never received any reply back.

    • Dorcas Alexander

      Hi Little Dave, I think everyone has their own reason for using or not using Google’s URL builder. If you need to quickly create one URL, or if you are a beginner and still learning the syntax, then the URL builder works great for you. But if you have lots of different URLs to create at one time, then using a spreadsheet for campaigns might work better. Thanks for reading!

  • Thanks for the such a awesome an valuable information which helped me in Google campaign.

  • Hi!
    Thank you for such an informative post.

    I have a bit of a problem. I think I used the url generator to create a good link, however, when I go to Acquisition/Campaigns in GA, i don’t see anything… isn’t this were the name of my campaign was supposed to be?

    That area is just empty.

    However, I found some reports under All Traffic/Channels/Other

    Thanks again!

    • Dorcas Alexander

      Hi Nick, Yes, you should see values of utm_campaign in the Acquisition/Campaigns report in GA, during the date range when some of your website users clicked links decorated with utm_campaign tags. If you found some of the values from the utm_source and utm_medium tags that you put with the utm_campaign tags, then you know the links worked as expected. They might not be in the top 10 rows in the Campaigns report, and you might have to search for them, but you can also see campaign data in the Channels report as well as the Source/Medium report in the Acquisition section. In both of those reports you can make the first column of the table show Campaigns. Next to “Primary Dimension” at the top of the table, click the word “Other” (it has a tiny down-arrow icon) and choose Campaign as your new primary dimension. Then search the table for the campaign you want.

      • Hi! Thanks a lot for your reply!

        It’s been very helpful as you’ve managed to cross out some of my doubts and thanks to that I managed to narrow down to the real problem. This might be helpful for everybody else as well:

        The reason why my Campaign names weren’t recorded was because I placed a link in the twitter profile url field. Twitter seems to have cut my url and made it shorter so it saved the source, medium and term fields (along with a part of the content), however it simply cut off everything else in the url.

  • Varun

    Hello! Thanks for such an insightful post! I have a question.. lets say I am sending an email campaign, with 1 image and a bunch of text in the email. If I hyperlink the image to a tagged URL which I have built using Google’s URL builder (and I have Google Analytics running on my website), then if a recipient of my email campaign clicks on the image in the email and arrives at my site, will the users’ behaviour on my site be tracked (pageviews etc) and more importantly, will the source of that user/traffic be attributed to the utm_source, utm_medium and utm_campaign which are defined in the tagged URL which was created earlier?

    • Dorcas Alexander

      Hi Varun, Yes, your understanding is correct. The user who clicks the image linked to a campaign-tagged URL will be tracked in your Google Analytics reports according to the source, medium, and campaign in the URL. The only exception would be if your site’s servers do not allow the utm query parameters. If you are not sure about this, it is easy to test. Type any page URL of your site into the browser and add ?utm_source=x to the end of that URL, and press the enter key. If the page is served normally and the URL still appears with the utm parameter in it, all is well. If the URL is returned without the utm parameter, you need to get your IT team to whitelist all of the utm parameters – otherwise Google Analytics will never see them.

  • Daniel Hamelberg

    Very insightful indeed! The questions thingie is a nice way to remember the concept of each tag. Would you mind it if I share that manual UTM tagging isn’t necessary anymore? I’d be glad to explain in further detail if you think that your readers would be interested (considering that you published this article in 2011)

  • Daniel Hamelberg

    Thanks Dorcas, I’m happy to share this with you and your readers. In my previous comment I was talking about a new Chrome Extension called autotagging Google URL Builder. It works differently from the usual URL builders because it sets the UTM tags according to the website in your current tab. I like how it creates tracking URLs at the press of a button and detects the necessary UTM tags for you. The UTM medium and source tags are based on the website you have open in your browser and you have the option to change the campaign name but by default it sets it to the html title of the website you’re on. I’ve lost so much time messing around with tags and I hear lots of people telling me the same thing so I thought i’d share this with you and your readers. This is it Apps.Whysr.com/AutotaggingGoogleURLBuilder

  • Taglynx

    Creating campaign tracking links is giving you a big headache? Forget using spreadsheets and spend less time tagging. Take a look at Taglynx:


  • Fatemeh Fakhraie

    I’ve tagged my campaign URLs, but I’m noticing weird stuff in my report. For instance, when I check the Campaigns report, I see analytics from campaigns that ended months ago: I’m seeing display visits for a display ads that were taken down months ago, and PPC clicks from PPC campaigns that have ended. Any idea why I’d be getting this?

    • Dorcas Alexander

      Hi Fatemeh, You’ll see this because GA uses “last non-direct click” attribution. This means if one of your users comes to your site via a campaign, then comes back directly every time after that, they’ll continue to be attributed to the campaign. The campaign will be stored in their GA cookie and keep appearing in GA every time they visit your site in the same browser on the same device, until it one of the following happens: (1) the user comes back via a new campaign or other non-direct channel (organic, referral, email, etc.), or (2) the user goes 6 months without visiting your site, so the cookie expires or (3) the cookie is deleted. You can change the campaign cookie expiration date in the GA Admin panel (Property Settings: Tracking Info: Session Settings), but you should only do this if you want to see fewer sessions attributed to campaigns and more sessions attributed to “direct” (i.e. no channel info).

      • Fatemeh Fakhraie

        THAT IS SO HELPFUL, DORCAS!!! Thank you so incredibly much. Going to try it now!

  • Meghan Macpherson

    Hi Dorcas, I would like to know how I can view both source/medium and campaign at the same time using Google Anlytics. Is that possible?

    • Dorcas Alexander

      Hi Meghan, Yes, there are several ways. The two easiest are: (1) go to the Source/Medium report under Acquisition > All Traffic and add a secondary dimension of Campaign, or (2) go to the All Campaigns report under Acquisition > Campaigns and add a secondary dimension of Source/Medium.

Contact Us.

Follow Us




We'll get back to you
in ONE business day.
Our Locations
THE FOUNDRY [map] LunaMetrics

24 S. 18th Street
Suite 100

Pittsburgh, PA 15203


4115 N. Ravenswood
Suite 101
Chicago, IL 60613


2100 Manchester Rd.
Building C, Suite 1750
Wheaton, IL 60187