Welcome to Digital Alex, where you'll get Actionable Advice for Better Internet Marketing. If you're new, explore my archives and subscribe to my RSS feed.
“We spent $25,000 on a blue widgets campaign, what was the return?” It’s a seemingly simple question, but if you don’t sort out your marketing campaign tracking properly, you may never get the answer.
What I’m talking about is campaign tagging – the ability of your web analytics program to associate activity (and revenue) with different sources of visitors and marketing campaigns.
In this post, I’m focusing only on campaign tagging with Google Analytics. I’ve seen marketing campaign tracking butchered so many times that I wanted to set the record straight once and for all.
There are 3 areas that matter for campaign tagging with Google Analytics (or Urchin):
- Parameters
- Parameter values
- Destination URLs
#1 – Campaign Tracking Parameters for Google Analytics
Parameter is a geeky word for a part of the URL after the question mark (?) or ampersand (&). Take this example:
http://www.alexlcohen.com/?utm_medium=example
If you have multiple parameters, any ones past the first are separated by “&”:
www.alexlcohen.com/?utm_medium=example&utm_source=second-url
In that URL, utm_source is the parameter. Google Analytics recognizes 5 specific parameters for measuring campaigns:
- utm_medium
- utm_source
- utm_campaign
- utm_content
- utm_term
Parameters exist for marketing campaign tracking. Each Google Analytics parameter has a different purpose and requires different values (more on that later).
utm_medium is used to designate the channel of this particular marketing. This includes large sources of visitors like:
- Paid search
- Affiliate
- Offline Ads
utm_source should differentiate sources of traffic within a given channel. If you have an affiliate program, you could separate out traffic from Linkshare from Commission Junction. In paid search, you’d want to distinguish Google, Yahoo and MSN.
utm_campaign is unique among the parameters. It’s the only parameter that can be common among different sources and mediums.
For example, let’s say you sell Earth friendly products and you have a marketing campaign promoting canvas totes for Earth Day on April 22nd. You could be promoting this in a variety of channels–email, paid search, and affiliate banners.
You can see all of the activity for that campaign, regardless of channel, rolled up into one report. Just give the utm_campaign parameter the same value (discussed below), such as “earth-day-totes-042208″, for each tactic in your marketing campaign. You’ll be able to get the standard metrics in the Campaigns report: visits, page views, bounce rate, conversion, etc (Go to Traffic Sources, then Campaigns).
utm_content is meant to help you provide a bit more information about the creative/messaging that sent a visitor to your site. There are any number of ways to use it:
- Display – Banner size and message (e.g. 160×800-free-shipping)
- Paid search – Ad variation.
- Email – You could distinguish among the different locations of links, e.g. right-nav-link, offer-link.
utm_term is used only for non-AdWords paid search. Google automatically recognizes AdWords campaigns (if you want to get cost data in, you have to link it within AdWords under the report tab in the AdWords interface).
If you’ve tagged destination URLs for paid search with the other parameters, you then need to add the utm term parameter as well. Otherwise, when you look at your paid search keywords report, it will show up as (not set).
For specific instructions about paid search tagging, check out my previous posts:
Now that you understand the parameters, let’s talk about the values you assign to them.
#2 – Campaign Parameter Values for Google Analytics
Parameters signal to Google Analytics that you’re about to define something about a marketing campaign. The value is what actual shows up in your reports.
Campaign tracking works in a parameter=value pairs.
All parameters should be all lower case where possible. If you have multiple words in the value, separate them with a dash, such as “banner-ads”.
You’re free to use any value you want, but there are certain standards you should follow depending upon the parameter.
utm_medium – The one hard and fast rule here is that you must tag all non-AdWords paid search campaigns as cpc. Sure, Google Analytics understand that campaigns labeled as ppc are paid search, but then you get the data on separate rows.
Here are a few other values that you could use for other channels. It’s important that you develop company standards for these values and document them. If you don’t, people won’t understand or act on the data.
Affiliate – affiliate
Comparison Shopping Engine – cse
Email – email
Local Search – local
Offline media that drives online click-through – offline
Paid Inclusion Bulk – paid-inclusion
Pay Per Click Search – cpc
utm_source – You can use any value here. Again, these are meant to be specific sources within a given channel. A good tag is decipherable by anyone and scalable to a variety of channels.
I recommend you use “ysm” for Yahoo paid search, because Google reports organic Yahoo clicks as “yahoo”. For MSN, you can just use the capitalized version or “msn-ppc”, since Google uses the lowercase “msn” for organic clicks from that engine.
utm_campaign – Your campaign value should contain some form of the date. It helps you keep track of marketing campaigns and adds important context for analysis.
utm_content -If your content is text based, use values that account for the differences in type of content, messaging and location of the text. If it’s display (banner) ads, you’ll want to include the size of the banner.
utm_term – For specific instructions, check out my previous posts:
Okay, now you’ve got all of the components and you just have to put them together into a…
#3 – Destination URL for Google Analytics
The destination URL is the link you use for your marketing campaign. It’s made up of three parts:
- Base URL
- Parameters
- Values
If I was running banner ads for Digital Alex, the base URL would be www.alexlcohen.com. The campaign tracking parameters might be something like:
- utm_medium=banner-ads
- utm_source=facebook
- utm_campaign=subscriber-drive-03052008
- utm_content=120-600-strategy
I would then combine them together into the destination URL:
www.alexlcohen.com/?utm_medium=banner-ads&utm_source=facebook&utm_campaign=subscriber-drive-03052008-utm_content=120-600-strategy
And that’s it! No you’re on your way to better marketing campaign tracking.
Here are some other good resources for Google Analytics campaign tracking:
- Destination URL builder – By Google Analytics
- How do I tag my links? – By Google Analytics
- Campaign tracking series by Justin Cutroni
For a bit more on my background, check out my internet marketing resume.
{ 3 trackbacks }
{ 46 comments… read them below or add one }
Hi Alex,
thanks for this nice post.
what do u mean by “Paid Inclusion Bulk – paid-inclusion” and “Local search” as medium?
Mehdi
Hey Mehdi,
Thanks for reading! Paid Inclusion is specific to Yahoo–you can pay to guarantee your inclusion in their search results (though, not guarantee a ranking).
Local search would be any advertising you’d be doing targeted specifically through location specific efforts. Maybe your doing something with Citysearch, for example.
These are just examples. Think through the channels that you use that make sense for you.
Cheers,
-Alex
Thanks for the well detailed post, much appreciated!
Hey Wil,
Thanks for the comment. I’m glad you found it useful. If you come up with any good GA tips, feel free to add to the conversation :-)
Cheers,
-Alex
Thanks for the info. Will GA recognize these parameters automatically?
Also if my site uses extra parameters will this still work?
Eg http://www.mysite.com/index.aspx?lang=en&utm_source=flashbanner&&utm_campaign=subscriber-drive-03052008-utm_content=120-600-strategy
Notice I’m using a lang=en parameter.
Thanks,
Yannis
Hey Yannis,
My understanding is that Google Analytics will strip out the parameters it understands (utm…) and leave the ones it doesn’t. That is to say, you’ll have a bunch of pages that are essentially the same in your top content report, except that they have your unique parameters attached to them.
If you want to exclude them, check out this help article:
http://www.google.com/support/analytics/bin/answer.py?hl=en-in&answer=55499
You should know that Google automatically gathers data about which language a user is using.
I don’t think there is a way to get Google Analytics to recognize your custom parameters. However, I could be wrong :-)
-Alex
I keep seeing how to build the URL, but where does one view the results in Google Analytics?
Hi James,
It depends on what data you’re looking for. Most of the information you want is in the “Traffic Sources” section.
-Alex
Hi,
I am a beginner in the field so sorry if I ask a stupid question.
Can I use the parameters to somehow track a specific member logged in on my site ?
If so, will I be able to create full reports of activity by members ?
Thanks.
Hi Fab,
I don’t think you can use the parameters to tracked the sessions of users who’ve logged in. There may be another way to do this, but I don’t know how.
Try Analytics Talk by Justin Cutroni. He’s the real expert.
Sorry,
-Alex
Thanks for the great post. One thing I am struggling with is tagging internal links so that I can properly identify the source.
For example:
If I have four text links and two image buttons on my homepage that all point to a signup page (for instance), how could I tag each one so that I can accurately track how well each individual link performed in sending visitors to the that landing signup page?
My understanding is that GA treats all links that point to the same destination as one link (e.g. when I do a site overlay it shows the percentages the same for each group of links that point to the same destination).
So, with that said, it seems that I could use parameters in each link to help differentiate (using the utm_source parameter) so I could tell how each are performing? (e.g. utm_source=topnavigation, etc)
Is this the right/best way to accomplish this? I know I can use a click heat map as well to get a general idea, but I wouldn’t be able to track back to which link is converting the best.
Thanks!
Great article. After a user clicks on an advert which comes to my site, google analytics works fine but the browser finishes showing the google analytics string and I want just the base URL with all google analytics UTM variables removed. How do I do this as I can’t figure it out or find any resources and I’ve seen it happen on all other sites — just like this page itself.
I noticed that when viewing Google Analytics Content reports, some of the URLs that have an ampersand (“&”) in them show the ampersand, while others show “%26″, I end up with two sets of data for every URL I’m tracking, which is kind of annoying. Anyone know how to keep that from happening, so I just get one URL with just the ampersand in it?
Thanks.
Hi Nick,
Can you share the URLs that you tagged? If you’re tagging properly with the Google Analytics parameters, you shouldn’t see anything.
Thanks,
-Alex
Hi there..
I am brand new to analytics, so this question may seem a little ‘out there’.
But, I have three campaigns that I want to monitor for a customer. I clearly understand how to create a special tagging URL and what the parameters are.
The next step seems intuitive but I just want to be sure so I don’t embarass myself with a third party. Do you then send this new revised URL to website that is running your banner, and ask them to use this new and revised code?
Thanks… Just want to be sure before I ventured out there.
Heather
Indeed Heather, you have to ask them to adapt the url.
Yes, you have to make sure the URL is associated with the link.
In paid search, you’d just set this up when you write your text ad in AdWords with the a tool like ClickEquations.
If you’re not placing the banner buys directly, you need to have the publisher or your media buyer assign the right URL that you’ve specified to the appropriate site and creative.
yes, definitely Neales
Great post, you even covered the difference between cpc and ppc. One more tip I’d like to add, and perhaps this would be better for your adCenter post, is that you now must set to destination URL for each ad to {param1} to force the ads to use the destination URL applied to each keyword.
Of course, Campaignsync does all of this for you. Simply upload a CSV file from Microsoft adCenter or Yahoo Search Marketing, enter your destination URL and in a few clicks you’re done! It’s fast, free and easy so give it a try and let us know what you think!
Hi,
How can I verify that the campaign-tracking code is correctly installed?
I have it on a site, but I don’t see any data in Google Analytics and I know that people have clicked on that link (who are not excluded by the GA cookie).
Thanks,
Josh
Hi Josh,
Campaign tracking code isn’t “installed” so much as implemented, meaning you append the parameters after the regular URL.
If your parameters have been successfully applied, the data will appear in the Traffic Sources, All Traffic Sources report.
-Alex
I understand the usage, but do not know about how to add code to my site. I have a domain abc.com, i order more than one domain 123.com and i want that when someones type 123.com on url bar , it will appear as: abc.com/?utm_source=123.com&utm_medium=referral
How can I do? Please help me!
You need to setup a redirect (301 or 302, depending on what you want indexed) and point the redirect to the new URL with the destination URL parameters attached.
Thanks for taking the time to write a great, clear article. I wish everyone took the time to do as good a job as you did. Thanks again!
You’re welcome, thanks for reading my campaign tagging guide!
Do you happen to know how to stop google from putting those parameters on my links.
I notice it adds those parameters to any links from my feed. Like if I comment on a commentluv enabled blog it will look something like this.
damonday.com/3015/consumers-in-debt-are-easier-to-scam/?utm_source=rss&utm_medium=rss&utm_campaign=consumers-in-debt-are-easier-to-scam
I really hate that and I have read it can even screw up some rankings because perhaps duplicate content.
I have tried everything short of completely removing analytics. I have deactivated the plugin in wordpress, but I still have the normal google analytics code in my blog header. I have also unchecked the click tracking in feed burner.
I have another blog that does not have this problem, and I have the google analytics code installed and it is working fine.
Any help is appreciated, this has bothered me for months and I can’t solve the problem. Thanks.
Hi Damon,
Those parameters are automatically appended by Google. There’s nothing you can do about it, unfortunately.
-Alex
This is great Alex. I’d been trying to figure out how to do this lately, as I just set up Google Analytics on a new site of mine. I never really was into tracking my sites and their traffic and such, but I definitely realized I was making a big mistake. This is definitely going to help me. Thanks again!
Hi Alex,
I’m wondering how I can track which referrals my ad is appearing on? Lets say I’m spending $25,000 and I have the same ad appearing on over 100 sites through a media buyer so I’ve given the buyer 1 tracking link that would look like this:
http://www.mysite.com/?utm_source=mybigad&utm_medium=banner&utm_campaign=mybannercampaign
I’m wondering if its possible to track which sites this ad has appeared on? I’m thinking this would help me later with the media buyer decide which sites perform well and which don’t. Currently I see in GA that I can only filter to the campaign, but not find the referral.
Thanks in advance!
Thanks for the great article Alex.
Like Damon, I struggled to understand why in my GA -> Site Content -> Landing Pages there was a ‘/?tag=keyword’ query. Now I have a better understanding.
Question, if the traffic associated with that keyword were to decrease would it be “pushed down” in my analytics as well?
Hi,
How to use in the place of utm perameters ,i want to retrive data from ‘tag’ using Campaign tracking url.
tell me,it is possible OR not.
Thanks
Hi sir,
I want use In place of utm parameter values source,mediam my own values source=nfctag,mediam=somthing ,its correct or wrong?
Tell me sir pls……….
I know it’s a bit old post but does the utm_term still works? Not sure what is going on, but can’t get the values displayed anywhere
Are the updates real time yet on analytics?
Its such as you learn my mind! You appear to know a lot about this, such as you wrote the e-book in it or something. I think that you simply could do with some p.c. to force the message house a little bit, however other than that, this is great blog. A great read. I will definitely be back.
Pretty nice post. I just stumbled upon your weblog and wished to say that I’ve really loved browsing your weblog posts. After all I’ll be subscribing on your rss feed and I am hoping you write again soon!
Thanks for the information.
Might need to read more on my own to fully understand all the information being provided.
Thanks anyways!
Finest Airline Permitted Pet Carriers
In the event you approach on flying quickly, and you’re going to bring your very little pal in addition to you including your canine, and even your cat, you will more than likely should obtain a provider that is FAA accredited. If it’s
not, you might be turned absent in the doorway, and
you won’t be able to deliver very little Fido along.
Here is whatever you need to seem out for when you are seeking for that ideal airline permitted pet carrier…
Ensure that it can be FAA accredited: The first point you must verify out is always to ensure that the provider is FAA authorized. This fashion, you’ll know
for any reality that you just can bring it on board.
Once you acquire it in retailer, and even online, it need to tell you
right about the box if it really is qualified.
Receive the ideal size: Know the way major, and the way substantially your pet weighs.
You don’t desire to purchase a provider which is way too modest. Rather, you will need to make positive which you get one that allows your pet to get relatively cozy in their carrier, even though currently being carried close to.
Search at reviews: Some carriers look wonderful, but whatever you figure out later is the fact that they’re cheaply made, or they simply will not manage nicely.
You may desire to head to a place like Amazon, or do a fast Google search to find out what others think of it.
One thing is obviously, and when you plan on flying using your pet, just be sure you have
a provider. By executing so, your pet will fly effortlessly, and it will be a good deal simpler to carry your pet
about.
Very good article with good information, thank you
thank you alex, a great insight to the google analytics which we will be implementing on our own site. Campaign tagging certainly looks like it will assist with saving our ppc expenditure.
In order for us to really get the sufficient amount of nutrients we should accompany healthy food and lifestyle with health supplements.
Most likely, other members experience the same health issue especially if it is
learned to be contagious. Beans can be cooked in many ways and eaten with many different foods.
It helps to keep the digestive tract healthy by acting as
“food” for friendly, probiotic bacteria. This diet advises you to
eat only bananas and water for breakfast followed by the foods of
your choice for the rest of the day. Overripe Bananas If you think
there is nothing you can do with overripe bananas, think again.
Hello to every body, it’s my first pay a quick visit of this website; this web site contains remarkable and really good material in favor of readers.
This! While I agree that being a persuasive speaker is great, but at some point you have to perform.
Hello, i believe that i noticed you visited my web site thus i came
to go back the want?.I’m trying to in finding issues to enhance my website!I assume its adequate to use a few of your concepts!!
What’s up, I log on to your blog daily. Your story-telling style is witty, keep it up!