Category Archives: Analytics

What UTM Tracking Code Are & How To Use Them

How to use UTM codes to track online sales


UTM tracking codes were provided by the Urchin Web Analytics platform, which Google purchased and turned into Google Analytics. UTM stand for Urchin Tracking Module. This module allows marketers to add some parameters and values to the end of a URL so that sales and leads from different sources can be uniquely seen within Analytics, as shown in the graphic above.

Google Analytics organizes traffic and sales data initially into “sources” and “mediums”. Google will also track “campaigns”, ad “content”, and keyword “terms”.

The reason why UTM codes were made available is because though Google automatically tracks data from its own properties (Google AdWords, Analytics, Merchant, etc.), data from “external” sources, like Email, MSN/Bing, banner advertising on other websites, AdRoll, Facebook, etc. do not track automatically. With these non-Google properties, you need to use those UTM tracking codes to tell Google how you want it to organize the data.

There are 5 types of UTM codes:

  1. utm_source – this is where your link traffic is coming from, in a general sense. Values here could be “Google”, “Bing”, “Email”, “Social”, “Affiliate”, etc. This parameter and its value are required.
  2. utm_medium – this relates to how the link is referred or delivered. Possible values here might be: “cpc”, “sponsored-post”, “728×90-banner”, “data-feed”, “Facebook-Ad”, etc. This parameter and its value are required.
  3. utm_campaign – this relates to time, day, season or what have you. This could be “Spring-2014” or “March-20-2014” or “Mothers-Day-Promo” or “15%-Off-Sale-April”. Your marketing efforts will generally all fall within a small set of source/medium classifications, but your campaigns should always be a unique name so that you can differentiate them in Analytics. This parameter and its value are not required by Google, but its use is heavily recommended, or you won’t able able to see how individual marketing efforts perform.
  4. utm_content – this parameter is often used to distinguish A/B testing of ads, landing pages, or other comparative sets of marketing. I have also seen it used to store a product SKU or item number. This parameter and its value are not required.
  5. utm_term – this parameter stores the keyword or phrase. You often see this used in pay-per-click programs like Bing.

So now that you know what UTM tracking codes are – how do you use them?

These parameters and their values get attached to the end of a URL in one of 2 ways:

  • If your URL is a search engine friendly (SEF) or “plain” URL, you begin with a ? and then add the parameter=value pairs with an & in between the sets.
  • If your URL is “dynamic” and you see things like a ? or & already in the URL, then you start with the & and add the parameter=value pairs with the & in-between.

The “?” character is a programming signal that tells Google “Hey!, We’ve got some data coming through that you need to deal with”. You need to be careful NOT to put 2 ?’s in the URL or it will break.

The “&” character is a programming signal that tells Google that there are different sets of parameters and values.

Here are what each of these URL’s looks like as an example:

The SEF or “plain” URL:

The “plain” URL looks like this:
or this….

Adding those UTM codes makes it look like this:

or this…..

The “dynamic URL”:

When you have a URL that already has a ? and some parameter=value sets in it, this is what your UTM tracking URL will look like:

Using UTM tracking codes is pretty easy once you understand what they are, what the symbols mean, and how to use the individual codes that Google provides.

Google also provides a handy little tool called the UTM Link Builder that will produce your URLs for you if you supply the “values”.

Some helpful tips and important reminders in using UTM codes are:

  1. Keep your “source” and “medium” values consistent – otherwise you’ll be hunting and pecking all over analytics for your data. For example, Don’t use “utm_medium=Newsletter”, and then use “utm_medium=News” and “utm_medium=Consumer-News”. Think about the different types of marketing you have and try to create stable source/medium “buckets” for your efforts.
  2. Always use unique utm_campaign values, otherwise your sales data will be lumped together and you won’t be able to tell what specific campaign produced what sales.
  3. NEVER use a URL with more than 1 ? in the URL, or you’ll get a nice 404 error message.
  4. Make sure you code every link in your marketing effort, such as in email. Remember to do hyperlinked logo images, social icons, etc. Every link should get coded. Within a particular email, the utm_source, utm_medium, and utm_campaign values can be the same. If you are using utm_content for part numbers or product names, then those would need to change per link.
  5. With Google AdWords, if you have your preference for Auto-Tagging set to “yes”, do NOT use UTM tracking codes. If you want to manually tag your AdWords ads and keyword destination URLs with UTM codes, make sure that auto-tagging is set to “no”. You cannot do both at the same time.
  6. DO make sure to use UTM tracking code with all your external, non-google, marketing efforts to track sales and leads as best you can. The moreĀ  data you have, the better the decisions you can make on how your marketing efforts are performing.
  7. Not sure you did it correctly? Copy/paste your whole http://… link into a browser window and see if the page loads. You should also see all your new UTM parameters and values in the URL, near the end. If you get a page that works – congrats – you did it!

Any questions? Send us an email. This stuff always looks more intimidating than it really is. We are happy to help you.

Branded versus Non-Branded (or Product Driven) AdWords Campaigns

I was sitting here doing reports for my clients and with one of them we decided to do a little experiment this past month. When I set up an AdWords or AdCenter account, one of the campaigns I create is a “Branded” campaign. As you might expect, this campaign contains an Adgroup that focuses exclusively on the company’s name, variations of the company name, and the URL.

There is a lot of controversy in the PPC space about bidding on your own brand/company name. The sound argument is that if a person types in your URL or your company name into Google’s (or some other search engine’s) search box, that your company will, 99.9% of the time, come up in the first 1-3 organic listings, and that you are wasting money by having someone click on a paid ad, because if the ad weren’t there, they’d have clicked on the free organic listing instead.

In some cases, this is true. In some, it is not. I have read many articles and studies that argue one way or another pretty convincingly. In the end, the proof is in the numbers in Analytics. I wanted to share some results here with you and hope that these observations will be helpful.

In January 2012, I ran Company X’s Branded and Product-driven campaigns. When I calculated ROI on both, I noticed that the Branded campaign, though very profitable, had cost the client almost $250 in clicks when they were getting nearly double the revenue at no cost for “branded” organic search queries. This caused me to raise an eyebrow and I recommended to the company that we put the branded campaign on pause in February to see what would happen.

A lot of internet marketers will use the “Branded” campaign to overcompensate for poorer performance on the product side. Branded terms convert at a much, much higher rate at a much, much lower cost than product-driven terms, and so the two of them together can produce a fairly healthy CTR and ROI, but the Branded is clearly providing life support to the Product side. While I generally do advocate running a branded campaign to increase sales and profitability, I never condone that strategy to “cover up and hide” a poorly run product campaign.

In February 2012, we turned off the Branded campaign. I just ran the numbers. A few of the other clients I work with have a fairly well established “brand” in the marketplace – so I looked at their branded campaigns and calculcated the percent of traffic and sales they provide compared to total paid site traffic and revenue. For the average of the 3 companies I looked at the Branded AdWords campaign accounted for about 28% of total AdWords traffic to the site and represented about 65% of total revenue generated by AdWords. The hypothesis, then, is that if we turn off the paid ads for branded terms, searches for those terms instead will result in an increase in visits and revenue for branded organic search click-throughs equal to the decrease created by shutting the branded campaign off.

So, for branded organic terms in February, I was looking for an increase of near 28% in visits and a similar increase in organic revenue over the previous month.

The numbers yielded at 26% increase in branded organic traffic, the number of branded organic transactions increased by 101% and the revenue of branded organic terms increased 102%. Now, the latter two metrics are also compounded by an increase in seasonal visitation and revenue generation on the site. This was fascinating to me.

Now, keep in mind that this scenario is not true across the board. I have quite a few other clients where the Branded campaign produces great revenue at very low cost while their product campaigns operate profitably as well.

Every company I work with produces a catalog with their name on it, sends out emails with their name on it, sends postcards or other direct mail pieces with their name on it, might pay for radio or tv spots to advertise their company, and almost all of them buy ad space in magazines to highlight their company and brand. The statement that paying for advertising to give visibility to the company and brand name is a waste of money is ridiculous and unfounded. Companies do it every day. In every case, running a branded campaign outperforms product campaigns 3::1, 4::1 or even 5::1. It is ALWAYS very profitable. But, just because it is profitable it doesn’t mean it a good thing to do in certain circumstances. Circumstances such as, in this presentation, where we found that indeed, due to low competition, most of those branded sales converted organically. In this case, why would you pay for something that you would get for free otherwise?

So I though about what makes this one client so unique in this from all others that I work with. And the answer, I beieve, lies in the fact that within the U.S., they serve a fairly niche market and they do not have many other competitors in the U.S. for what they sell. When you search for their products or name, they nearly dominate all the search results. So it makes sense that if you remove the branded paid ads, and are left with free organic listings, and there is relatively little to no competition “above the fold”, the majority of those paid sales (85% in this case) converted to organic sales instead for that company. If there were other competitors in the visual results space, the loss to gain would not nearly be so high at it was in this case.

I still maintain the position that running a “Branded” PPC campaign is a worthy investment for a company. But it is always smart to test whether its worth paying for those clicks over the long run.

Just as with anything else though, you can never assume that something is either one way or another. PPC is not so black and white and looking at the actual data is always the way to go. Let the data help guide your marketing decisions. Don’t just jump on a bandwagon of blind belief.

Tracking Bing PPC Conversions in Google Analytics

I recently had a head-scratching experience with a client of mine on why Google AdWords PPC conversion data was being recorded with e-commerce tracking in Analytics, but Bing PPC transactions were not.

I spent a goodly amount of time Googling for the answer and after about an hour of searching, I finally found a post by “Whims” in the Google Support Forums that explained the often overlooked setting in Analytics that needs to be enabled in order for PPC tracking to work from search engines that are not Google.

The information provided by “Whims” can be found here.

Specifically, Whims says:
“In the google analytics interface, find the correct GA profile and click “edit” to the right of the applicable profile. When the page opens for the profile settings, on the top right click the link that says “check status” next to where it says Receiving Data.. and on the next page that says Tracking Code.. just below where it says Instructions for Adding Tracking, click on the Advanced tab and make sure to tick the option “I want to track online ad campaigns from other providers”.

But this is not all that is required.

Within your Bing PPC campaigns, you need to make sure that each of your Ad’s “destination URL”s have utm tracking parameters appended. You do not need to do this with Google AdWords destination URL’s because Google Analytics and Google AdWords are connected at deep levels and those parameters are automatically inferred from your AdWords campaign data. But with Bing PPC, you need to pass the parameters so that you get proper source/medium data for your Bing PPC campaigns specifically.

The parameters you pass are:
1. utm_source (e.g. utm_source=Bing)
2. utm_medium (e.g. utm_medium=PPC)
3. utm_campaign (AUTO)
4. utm_term (AUTO)
5. utm_content (AUTO)

The campaign, term, and content parameters can be automatically provided by Bing and passed to your Analytics.

So a URL for an Ad in Bing would look like this:{keyword}&utm_content={AdID}&utm_campaign={OrderItemID}

A great summary (older now, because Yahoo! & Bing have merged platforms) can be found here:

So in summary, you need to actually do 3 things to track Bing PPC conversion in Analytics:

1. Add UTM parameters to your Bing PPC destination URL’s as described above.

2. You must enable the “I want to track online ad campaigns from other providers” on the Advanced Tab of the “Check Status” settings link in Analytics. This is turned off by default.

3. Ensure that you enable E-commerce tracking within Analytics. When you first log into Analytics, click the “Edit” button that exists to the right of the Analytics account summary screen. In the first section “Main Website Profile Information”, you’ll see a line called “E-commerce Website:”. By default, it says “No”. Click the “Edit” link in the gray bar all the way to the right (same bar that the Main Website Profile Information header is in) and set that E-commerce Website option to “Yes” and save the settings.

Adding a Subdomain to Google Analytics for Tracking

Look at that – a real first post! As I was finishing configuring this new internet marketing blog, I realized that I set up a sub-domain: for it and that I want to make sure that the Google Analytics’ asynchronous code that I have on the pages tracks the sub-domain for reporting within Analytics. I then realized that this would make a great first post – and true to my word – it’s a sort of tutorial. I hope you find this helpful.

I have Google Analytics asynchronous code on my pages, and “out of the box” it looks like this:

<script type=”text/javascript”>
var _gaq = _gaq || [];
_gaq.push([‘_setAccount’, ‘UA-10861556-1’]);

(function() {
var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true;
ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ : ‘http://www’) + ‘’;
var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s);

This code tracks traffic for Now I want to make sure that it tracks as well.

I need to add 3 more “_gaq.push(); statements to make it work:

_gaq.push([‘_setDomainName’, ‘’]);
_gaq.push([‘_setAllowLinker’, true]);
_gaq.push([‘_setAllowHash’, false]);

So the end piece of code looks like this:

<script type=”text/javascript”>
var _gaq = _gaq || [];
_gaq.push([‘_setAccount’, ‘UA-10861556-1’]);
_gaq.push([‘_setDomainName’, ‘’]);
_gaq.push([‘_setAllowLinker’, true]);
_gaq.push([‘_setAllowHash’, false]);

(function() {
var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true;
ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ : ‘http://www’) + ‘’;
var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s);

Dealing with tracking a sub-domain of your domain name with Google Analytics is fairly simple. Tracking cross domains (domain names not related to the base web site) or sub-directories on different domain names can get trickier. Luckily, Google has an excellent “how to” document for this.