New Google Analytics Goals

October 20, 2009 by Justin

We all know that it’s critical to measure conversions, or goals, for our website. But for a long time Google Analytics limited the number of conversions, and types of conversions, you could track with Google Analytics. All that changes today (October 20, 2009).

You can now create up to 20 goals per profile in Google Analytics. I can literally hear the applause at eMetrics :)

In addition to expanding the number of goals Google has expanded the types of goals to include ‘threshold’ goals for pageviews per visit and time on site.

I think we all know the importance of tracking goals, so I’m not going to get too deep into why you should use goals. If you’re not using goals you should start NOW!

Let’s talk about this new feature.

Goal Sets

Goals are now organized into four sets. Each set of goals can contain up to five different goals.

Google Analytics Goal Sets

Sets have been introduced as a way to accommodate all the new data in GA. In the report tabs, rather than one goal tab there can be up to four goal tabs in a GA reports.

New Google Analytics Goal sets in a report

When creating a goal you can place it in any set as long as there is room. Once you place a goal in a set it’s best to NOT MOVE IT. Google Analytics sees this as a NEW goal and does not move the previously captured conversions to the new goal.

TIP: I like to organize goals by business function i.e. put goals that are related together. For example, if you’re a content site, you might create goals for spending a certain amount of time on site (1 minute, 2 minutes, etc.). I would group these goals in a set all related to time.

Goal Types

In the old days a goal was a pageview that represented the completion of some high value process, like a thank you page. Now goals can be based on actions that have nothing to do with viewing a page. Conversions can be based on how much time a visitor spends on the site or how many pages the visitor views.

Time Based Goals

Time based conversions are triggered after a visitor has spent a certain amount of time on the site. To configure a time based goal enter the hours, minutes and seconds that a visitor must spend on the site before a conversion is counted. Once the visitor reaches that amount of time on the site then a conversion is triggered.

Creating time based goals in Google Analytics.

What’s interesting here is that you can create a time based goal if a visit does NOT reach a certain amount of time. If you choose ‘Less Than’ Google Analytics will trigger a goal if a visit does NOT reach a certain length.

Less Than Goals in Google Analytics

Why on earth would you measure this? I like to think of ‘Less Than’ goals as ‘Failure’ metrics. We often define success metrics, like Conversion Rate, but rarely define metrics to measure our failures!

Using failure based metrics really packs a punch when you’re talking to co workers or clients. For example, when you configure a failure goal you can easily measure and say, “Did you know that 97% of our traffic does not spend at least 2 minutes on our site? We suck!”

Abandonment rate is another well know failure metrics.

Time on site can be configured as a Goal in GA

Time based goals can also be very useful if you’re trying to MINIMIZE the amount of time people spend on your site. For example, if you have a support section on your site you may want to understand what percentage of traffic spends a certain amount of time on your site. Long term you can try to reduce the number of visits that are too long.

How about setting up a goal set for various time intervals and then try to move visitors from one “goal” bucket to the next. 10 minutes, to 7 minutes, to 5 mintues… You guys are bright, you get the idea :)

Remember, time based goals can be affected by creating virtual pageviews and events. Both of these activities send data to Google Analytics and can change how visit length is calculated.

Pageview Based Goals

Another new goal type is pageviews per visit. Like time on site goals this this type of conversion is triggered when a visit exceeds a certain number of pages. I can literally hear all the advertisers clapping out there!

Pageviews goals are set up in the same manner as time based conversions. Just specify a condition (greater than or less than) and the number of pageviews in a visit.

Pageviews per Visit Goals in Google Analytics

Like time goals, pageview goals can also be affected by virtual pageviews. If you’re creating a lot of data using _trackPageview() you need to understand that this can change your overall goal calculation.

URL Destination Goals

The old standby! ‘Traditional’ goals are now called URL Destination Goals. You can still use a regular expression, head match or exact match to identify a page that represents a goal. This functionality has not changed (you can learn more about goals in this old post.)

URL Destination Goal in Google Analytics

Now that we have 20 goals we can easily measure all of those micro conversions (RSS subscription, email signup, reaching product page, downloading white paper… etc, etc, etc).

And yes, you can still use a virtual pageview as a URL Destination goal.

Funnels

Google did spend some time tweaking the interface. The old interface always showed 10 steps in the funnel. Now you can choose the number of fields the funnel form displays. You’re still limited to 10 steps in total. This isn’t such a big deal.

New Funnels interface in Google Analytics

But think about the bigger picture. Do we really need funnels if we have so many goals? With 20 goals we can use a goal to represent each stage in a process, rather than a funnel step? So do we still need funnels?

Yes. Funnels provide a nice visualization of critical processes, so I think they are still relevant. Plus, you need to configure a funnel if you want to measure Abandonment rate, a very nice failure metric that can make people squirm :)

Odds and Ends

A few random thoughts re: new goals:

If you’ve been creating lots of profiles for goals you may want to consider consolidating all goals to a single profile. The benefit is you can have all your conversions in one interface. No more messing with multiple browser tabs and adjusting the date range.

If you need to control the access to certain goals, you may need to create a profile for certain goals and then give only the people who need access to those goals access to the profile.

A visitor can only convert at each goal once per visit. This is the way it’s always been.

And finally, creating new goals will not modify your historical data, only future data. So all those new goals you’re going to create this week will only track from the day your create them onward.

  • Twitter
  • StumbleUpon
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • FriendFeed
  • Sphinn
  • Google Bookmarks
  • Reddit
Subscribe:

Segmenting Unique Visitors in Google Analytics

October 20, 2009 by Justin

Google Analytics now has the ability to EASILY segment Unique Visitors. Some of you may be yawning, but I can hear many, many people saying, “That’s fuc*ing AWESOME!”

Google Analytics can now segment Unique Visitors.

Unique visitors is a critical metric especially in the advertising industry. But it’s also a really hard metric to measure because it take a lot of data processing power. Why? Because of the way unique visitors are identified and measured.

Google Analytics defines a unique visitor as a cookie. For all you nerds it’s the __utma cookie.

Every time a visitor visits a site GA checks for the cookie. If the cookie exists then GA knows the visitor has been to the site before. If the cookie does not exist GA sets the cookie and increases the unique visitor count.

The challenge is that every time you want to view a report that contains unique visitors GA has to literally count all of those cookies collected to find how many are unique. That’s why there was only one GA report with Unique Visitors (Visitors > Visitor Trending >Absolute Unique Visitors report).

But Google figured out some way to effectively count all of the cookies in real time. Now the unique visitors metric that can be added to any custom report.

You can easily add Unique Visitors to any Google Analytics Custom Report.

If you need to segment unique visitors you can simple create a custom report and include this metric.

Here’s an example. Let’s say you’re running a branding campaign for an upcoming movie. You want to measure how many actual people visit your website. You can create a custom report with the campaign dimension and the Unique Visitor metric.

There is one technical limitation. Google Analytics will sample data when a date range for the custom report contains more than 200,000 visits.

Still, I’m completely amazed that they figured out how to make this happen.

  • Twitter
  • StumbleUpon
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • FriendFeed
  • Sphinn
  • Google Bookmarks
  • Reddit
Subscribe:

Google Analytics Custom Variables Overview

October 20, 2009 by Justin

Today Google releases Custom Variables (cv for short) in Google Analytics. This is an evolution of the custom segmentation feature. This post is meant to give you an overview of the feature. We’ll discuss how to use it in a later post.

Like Custom Segmentation, custom variables are a flexible way to add more information to Google Analytics. The big difference is that you can create LOTS of custom variables. How many? In theory you can set an infinite number of custom variables. But GA has some internal limits that keep you to 50,000.

What can we use custom variables for? The possibilities are endless:

  • Segmenting members from non-members
  • Segmenting customers from non-customers
  • Tracking all the campaigns a visitor sees prior to converting
  • Content categorization
  • Segmenting visitors based on landing page
  • Visitor segmentation based on demographic info
  • Customer segmentation based on order history

Google Analytics Custom Variables are like data decorations!

As my friend Phil likes to say, custom variables are decorations that you hang on your data. Almost like holiday decorations hanging on a tree! This is a really good analogy that I’ll continue in this post.

There are four critical attributes of a custom variable that we must understand in order to use them.

Name and Value

The easiest attributes to understand are Name and Value. The Name of a custom variable is literally the name you give to the variable. Each variable can have many, many values. For example, you could define a variable named ‘Baseball Team’ and then add the values:

  • Red Sox
  • Yankees
  • Phillies
  • Giants
  • Angels

This is totally different than the old Custom Segmentation feature. With Custom Segmentation you were limited to one variable (ie one Name) that could contain multiple values. Now you can create multiple variables each of which can have multiple values.

You can view all of your variable names in the new Custom Variables report.

Google Analytics Custom Variables Report

It’s important to note that the name of a variable, plus the value for a variable must be less than 64 characters. Why? The data is sent to Google via a request for an image file. The actual length of the request is limited and Google wants to insure that all of the data makes it to the server.

Scope

Google Analytics custom variables depends on the scope of the variable.

The real power of custom variables comes with something called the Scope. Think of scope as the different ‘levels’ of visitor data. When a visitor visits a website Google Analytics collects data at three levels:

  • Pageview level: This is data associated with each page viewed during a visits. Page level data can change from one page to the next.
  • Visit level: This is data associated with the visitor’s entire visit. This data can change from one visit to the next. But visit level data is applied to every page within a visit. This data only exists for the CURRENT visits.
  • Visitor Level: This data is applied to the visitor and every visit and every pageview that the visitor generates. This data persists across all visits that a person creates. How does it persist? Via a cookie.

This means we can set information, ie custom variables, at the page level, the visit level and the visitor level. If we think of custom variables as decorations “hanging” on our data then we could use the following graphic:

GA Custom Variables "hanging" on your data.

So scope is the same as level. Anyone drooling out there?

The ability to control the scope of a custom variable makes this feature extremely flexible. For example, if you want to group all of the content on your site you can add a page level custom variable to every page that identifies the groups that a page belongs to.

If you want to segment visitors by their purchase history you can add visitor level custom variable. The possibilities are truly endless.

Let’s take a look at some of the reporting so you can get a feel for some of the data.

Here’s the Custom Variables report. You’ll notice it looks a lot like the user defined report. This report contains all of the variables that you defined. If you click on a variable you’ll see all of the VALUES for that variable.

So why has google added a scope if we can’t see it in the reports? I’m just going to let you guys speculate. But it’s obviously a critical part of CVs and we should see that data.

Index

The last attribute that we need to discuss is something called the Index. To be honest, it’s really hard to define the index. Basically the index is a technical attribute that helps GA organize all the custom variables on a page.

It’s only used during the implementation, so we’re not going to dig any further in this post.

Speaking of the implementation, you’ve probably noticed that I haven’t talked much about the implementation. To be honest, we’re still playing with CVs. Obviously this data comes from JavaScript. So you have to do some coding to get this data.

But I’m going to hold off on the implementation talk until later. Implementation involves another concept called the Index which is, to be honest, vague and confusing.

  • Twitter
  • StumbleUpon
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • FriendFeed
  • Sphinn
  • Google Bookmarks
  • Reddit
Subscribe:

Introducing Google Analytics v4

October 20, 2009 by Justin

Google introduced a new version of Google Analytics today, filled with new features to make analysts and marketers drool.

Included in this new release is:

  • New and Improved Goals (20 goals per profile and new ‘threshold’ goals based on pageviews and time on site)
  • New mobile tracking
  • Table Filtering (a way to quickly filter data in a report)
  • Unique Visitor Segmentation (Unique Visitors is now a metric and can be added to custom reports)
  • Multiple custom variables (an evolution of Custom Segmentation, wicked awesome!)
  • Analytics Intelligence (automatic data analysis. And yes, it is as cool as it sounds!)
  • Analytics Alerts (customizable alerts based on your data rules)

NOTE: Links above are to individual posts.

There are also a couple previously announced features that have FINALLY made it into the product, including:

  • Sharing custom reports and advanced custom segments
  • Pivoting data and segmenting with a secondary dimensions

I must say, this release is very cool. Google has listened to users and included some of the most requested features. 20 goals, automatic alerts, more custom variables… We’ve been hearing/making these requests for years!

One thing I think people will ignore is that many of these features represents dramatic improvements in the GA system. While these features have a definite ‘wow’ factor they provide a solid foundation for future enhancements.

If you’ve been reading this blog for a while you know that I usually blast out as many posts as possible to explain the new features. Today is no different.

Because there are some many people blogging about GA, I’m going to be a bit selective and cover the topics that I don’t think will get much attention or that I just really like :)

So click away! Let’s all explore these cool new features together!

  • Twitter
  • StumbleUpon
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • FriendFeed
  • Sphinn
  • Google Bookmarks
  • Reddit
Subscribe:

Tracking Zero Result Searches in Google Analytics

September 8, 2009 by Justin

I <3 Google Analytics Site Search reports. There’s amazingly actionable data in those reports. But they’re missing one vital piece of information: searches that don’t produce any results.

Why is this important? Don’t you want to know when visitors search and don’t get any results? Zero result searches can help your identify missing content on your site or a problem with your site search engine.

fenway-scoreboard

Many search solutions will provide this information for you. For example, I use Search Meter for Wordpress and it shows me which search queries generate zero results. But I thought it would be interesting to add this data to Google Analytics. That way all my site search information would be in one place.

Unfortunately there is no easy way to add this data to GA. You need to do some programming to collect the data. So this post is really meant for those folks with programming resources AND for those developers that maintain GA plugins. Like my buddy Joost, who has a great GA plugin for WordPress.

If you’re interested in the data and analysis, skip to the bottom of this post.

Conceptual Overview

Our goal with this hack is to modify site search data in two ways. First, we’re going to put all search queries with zero results in a category. This will allow us to use the Search Categories report to easily find all the search terms that yielded zero results.

Second, we’ll modify the actual search terms to indicate that a term yielded zero results. This will make it easy to scan a list of all the search terms and identify which generated no results.

Before we get into the implementation, a big THANK YOU to Charles Miller, one of the lead consultants here. He wrote the JavaScript below. Thanks Charles.

Step 1: Identify No Result Search

The first step is to identify a zero results search page. Most websites have the same search results page regardless of the number of results. You need to identify some something that differentiates a zero results search page from a non-zero results search page.

This must be done programatically and is the hardest part of the implementation.

For example, a zero results search page on this blog has the text “No posts found. Try a different search?”

No Posts Found

I can create code (or more specifically, Charles can create code) to look for the text “No posts found. Try a different search?” If the code finds this text in the page then I can identify that the visitor’s search yielded zero results and than I can send the data sent to GA. Here’s the code that I’m using on this blog:


var content = document.getElementById('content');
if (content.innerHTML.search('No posts found.')) {

The code looks for a section of the page called ‘content’ and then searches that section for the phrase ‘No posts found.’. If ‘no posts found.’ is found (oh, the irony!) then we will modify the data sent to GA.

Important! The way you detect a zero result search page may be different. It’s VERY difficult to create an example that will work for everyone. Take this as a conceptual overview.

Step 2: Tweak GA Tracking Code

Once we know what differentiates a zero results search page we can add some code that tweaks the data. Remember, we want to modify the data in two ways: 1. by placing it in a special search category and 2. by modifying the search term to indicate it did not yield any results.

To create the category all we need to do is add an extra query string parameter to the URL.

To manipulate the search term we need to split apart the page URL and then put it back together with the phrase no-results.

Here’s the complete code.


<script type='text/javascript'>
var pageTracker = _gat._getTracker("UA-XXXXXX-1");
var content = document.getElementById('content');
if (content.innerHTML.search('No posts found.')) {
     // These lines get the search data from the URL and
     //  deconstruct the URL into parts
     var sn = "s";
     var sr = new RegExp(sn+"=[^\&]+"),
      p = document.location.pathname,
      s = document.location.search,
      sm = s.match(sr).toString(),
      srs = sm.split("="),
      // The next line is where we add the category and add
      // the phrase no-results to the search term.
      sre = sm.replace(sr,srs[0]+"=no-results:
 "+srs[1]+"&cat=no-results"),
      sf = s.replace(sr,sre);
      // Send the data to Google as a Pageview
      pageTracker._trackPageview(p+sf);
} else {
      // If this is a regular page on the site, use the standard GA code.
      pageTracker._trackPageview();
}
</script>

The code starts with the section that identifies a zero result search page.

Then we deconstruct the URL to identify the search term. Finally we add the category named ‘no_results’ and the phrase ‘no-results’ to the search term.

If the code does NOT find the term ‘No posts found.’ then a pageview is created as normal.

That’s it for the coding part (thank goodness!)

Step 3: Configure Site Search Settings

The last step is to add the new category parameter to the Site Search settings so GA can identify the no-results search category. This is easy, it’s in the profile setting section of Google Analytics.

How to set a search Category parameter in Google Analytics

I also like to set the ‘Strip Query Parameter’ to YES. This removes the category parameter after site search is done processing and normalizes your pageview data.

That’s it for the configuration! We’re cleared for insight-hunting!

Analyzing The Data

When a visitor performs a search that yields zero results the search term will be placed in a category named ‘no_results’. To find this data navigate to the Content>Site Search>Categories Report:

site-search-categories-google-analytics-2

Immediately you’ll be able to see what percentage of your searches yield zero results. Hopefully it’s very low! Want to see if this impacts conversions or revenue? Click the Goals or Ecommerce tab to check the conversion rate:

Zero Result Searches Impact on Website Outcomes

This is a bad picture, but you get the point.

Next you can click on the no-results line in the data and see exactly which search terms yielded zero results.

Search terms that had no results in Google Analytics

This is super-actionable data. Now you know where you may be missing content or if your site search engine might be broken. You should be asking yourself, “Why are there no results for these terms? Is there missing content or is there a problem with my site search engine?”

You’ll also notice that the search terms now have ‘no-results’ in them. This provides a lot of flexibility for view the search data other ways. Example, let’s use the Search Terms report:

Google Analytics site search queries

Here we can see the search terms ranked by searches. What percent of your top 10, 20 or 50 are no-result searches? How is that impacting your bottom line?

This is just the start. You can use other metrics, like %Search Exists to understand if visitors who receive zero results refine their search or exit.

While this is not the easiest thing to configure, I hope you see the value of the data. More so, I hope that all those folks that maintain plugins add this type of feature to their GA plugins. Joost, you listening!?

  • Twitter
  • StumbleUpon
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • FriendFeed
  • Sphinn
  • Google Bookmarks
  • Reddit
Subscribe: