GA On Site Search Pt. 1: Overview & Setup

October 16, 2007 by Justin Cutroni

Google Analytics Site Search MenuThis is part 1 in a two part series about tracking on site search with Google Analytics. In this post I outline the setup and configuration you need to perform to create accurate, usable data in the new reports. If you’d like to get a look at the reports, you can skip to part 2, where I talk about the reports and how to use them.

How to Set It Up

The new search reports are based on a query string parameter that contains the search term that the visitor entered. All you need to do is specify the name of the parameter in the profile settings. As GA processes the data it identifies the search term and builds the reports.

It is important to note that on site search processing happens BEFORE filters are applied. This means that we have no way to modify the way that search data appears in our reports. I personally believe that this is a mistake and it limits our ability as practitioners to generate the data that we need for analysis. I’m hoping that Google can somehow change this.

Basic Setup

The first thing you need to do is turn on site search reporting. This is easy, it’s an option in the profile settings (please see the image below).

Next, you need to tell Google Analytics which query string parameter contains your search term. The best way to identify the query string parameter is to do a search on your site. If I do a search on my site for ‘world series’, and the search results page URL looks like this:

http://www.website.com/search_results.php?q=world+series

then I would add ‘q’ to the search term field. Pretty simple, huh? The query string parameter goes in the ‘Query Parameter’ field (again, located in the profile settings).

Google Analytics Site Search Configuration

You’ll notice that I’ve added two query string parameters in my example. The epikone.com website has two different search engines. You can define up to 5 parameters. This gives you a lot of flexibility if you are using multiple on site search engines.

Category Setup

Many search engines allow users to refine their searches using categories. For example, if I search for ‘lavender’ the search engine might let me focus my search in the ‘soaps’ category or ‘tea’ category. This configuration drives a specific report that show the search terms for each category.

Setting up the categories is the same as setting up the search terms. All you need to do is identify the query string parameter that identifies the category. In the following example I would enter ‘cat’ in the Category Parameter field.

http://www.website.com/search_results.php?q=lavendar&cat=soap

Adding Categories to Google Analytics Site Search

Other Options

There is one final setting that is very important. You may have noticed the radio buttons for strip query parameters out of URL. This setting will remove the on site search query string parameter from the URL after on site search processing is complete. This means that the query string parameter, and the search term, will be removed from ALL other reports. It’s very much like the exclude query string parameters setting in the profile settings.

If you choose yes, GA will consolidate pageviews for the search results page. This can be good and bad.

Here’s an example. If you do a search on my blog the URL will look like this:

http://www.epikone.com/blog/?s=world+series

Now, if I choose to remove the query string parameters GA will process the site search and then merge the resulting URI with all other instances of

/blog/

As you can see this is going to INCREASE the pageviews for /blog/. Is that good or bad? In the case of my blog it’s a bad thing because /blog/ is also the homepage. Removing the query string parameter will artificially inflate pageviews for the homepage.

However, if your on site search engine has a specific results page, like:

http://www.site.com/seach-results.php?q=world+series

Then removing the query string parameters is a good idea. The reason is you’ll have a single line item for your search results page in your reports and you’ll still be able to analyze on site search data using the On Site Search reports.

Common Problems

What if your on site search results page does not contain the search term in the URL? This is usually the case if your search form is using the POST method.

The workaround is to alter the way the search results pageview is created. This means manually creating a pageview for the search results page, that contains the search term. This is done by passing the tracking code on the search results page a value. Make sure that value includes a query string parameter containing the search term. Then specify the query string parameter in the on site search setup.

Here’s how you can modify the tracking code on the search results page to resolve this issue:

Old urchin.js implementation:
urchinTracker('/blog/search?q=<term>');

New ga.js implementation:
pageTracker._trackPageview('/blog/search?q=<term>');

Where <term> is the search term.

NOTE: If you haven’t heard, there is a new GA tracking code. You can read more about it in this post.

Optimizing the Setup

One thing that I’ve noticed is that the reports do not massage the data in any way. They report the raw keywords that the visitor entered. It’s great that we can see raw data, but it’s very easy to have duplicate data based on capitalization or spelling. Here’s an example. The following terms would all appear as different line items in the search reports:

Red Sox
red sox
redsox
red socks

From an analysis standpoint, the above terms are all the same. Visitors are searching for information about ‘red sox’. A certain amount of normalization would help, but we don’t want to eliminate too much data. Unfortunately the site search processing happens BEFORE filters, which means that we can not use filters to modify the data. I had initially thought we could use filters, but that is not the case.

Any data normalization MUST be programatic, it can not be done with filters! So, if you want to force all of your search terms to lowercase you must modify the page tag on your search results page. Specifically, you need to change how the pageview is created in GA. Here’s a sample piece of code that will force the query string parameters to lower case. You’ll need to update the tracking code on your search results page.

New ga.js code:
pageTracker.trackPageview(document.location.pathname + document.location.search.toLowerCase());

Old urchin.js code:
urchinTracker(document.location.pathname + document.location.search.toLowerCase());

This code change will eliminate all duplicates caused by capitalization.

Unfortunately there is no easy way to remove duplicates caused by misspelling. If we could only use filters… :)

Other Uses

What I find interesting is that this framework can be used to track other things. For example, let’s say you have an online ticketing service and the search feature passes certain search characteristics via the query string. I perform a search for tickets to see the Red Sox play at Jacob’s field. I specified the price range of the tickets and the date of the game. The URL might look like this:

http://www.tickets.com/search?price=100-200&date=20071014-20071016

What if I configure the new search reports to use price as the search field and data as a category? The reports should show me some really cool information. I haven’t tried this yet, but it could be very useful.


Share:
These icons link to social bookmarking sites where readers can share and discover new web pages.

  • Digg
  • Technorati
  • del.icio.us
  • Slashdot
  • StumbleUpon
  • Ma.gnolia
  • YahooMyWeb
  • co.mments
  • Reddit
Subscribe:

GA On Site Search Pt. 2: Reporting & Usage

October 16, 2007 by Justin Cutroni

Onsite Search Reports MenuThis is part two in a two part series about the new GA on site search reports. In part one I discussed the setup.

There is a tremendous amount of information in the new Site Serch reports about ow your visitors interact with your search engine. But it goes way beyond measuring how many searches occurred for a keyword. The new reports actually tie outcomes to searches providing insight into what product sand content your site visitors are looking for. But enough babble, on to the screen shots.

What Reports are Available

First and foremost there is the Usage report. This reports helps you understand if visitors are using site search. If you’re trying to push site search as a navigational tool for your visitors, and only 2% of site traffic is using site search, then your navigation may not be working. You may want to change the visibility of the search box.

Google Analytics On Site Search Usage Report

The Usage report is pretty good, but everyone wants to know what people are searching for. The Search Terms report contains all of the search terms that visitors entered into your on site search. One thing you should know is that GA is reporting UNIQUE searches. This means that duplicate searches, made in the same visit, are excluded. So it is not a count of how many times a term was search for, but rather how many VISITS contained a search for a specific term.

Google Analytics Search Terms Report

Take a look at the narrative at the top of the report. It contains a number of new metrics to evaluate on site search. Total Unique Searches indicates what search terms people are entering. % Search Exits indicates what percentage of visitors are leaving immediately from the search results page. This could indicate that visitors are unhappy with the search results. Time after Search and Search Depth indicate the engagement of the visitor after using search.

Google Analytics does not normalize the search terms. This means that misspellings and similar searches are not grouped together. So the search terms ‘red sox’, ‘red socks’ and ‘Red Sox’ would appear as individual line items. You’ll need to review your data and manually normailze it using filters.

Another really cool report is the Site Search Start page. This report shows where your site searches originated. It identifies the page that the visitor was on when the seach occured. This can help identify issues with navigation or the data architecture.

GA Search Start Pages

Now we know where people started their searches, but what about where they end up? The Search Destination Report shows which pages people navigate to directly from the search results page.

GA Site Search result pages

What’s really cool is if we click on a destination page that is listed in the above report we can see all the search terms that drove people to the page. Here’s what happens if I click on one of the results in the previous report:

GA search reports page terms
There are other reports that do a good job of illustrating how visitors use site search. If you select a search term in any reports you can do a really deep analysis using the analyze drop down. One option is the Search Navigation report. This report shows where someone started their search and where they went after the search.

GA Search Nav report

What about peple who search multiple times? Another analysis option is to use the Search refinement report. This report shows how people refine their search terms during their visit. So, in the image below, visitors began by searching for dog. Then they refined their search using one of the terms in the report.

GA Search refinement Report

Ok, one more thing about the Search Reports. Notice that the standard Goal Conversion and Ecommerce tabs exist on most reports. These tabs provide information about which searches lead to conversions and, if you’re an e-commerce site, the revenue that each generated. Pretty darn cool is you ask me.

GA Search Reports Conversion

What’s Missing

The one report that is missing from Google Analytics is the ‘0 Result’ searches. It’s really important to know what on site searches are producing 0 results. This is an indicator of missing site content. You can artificially create this data by creating an event or a pageview (I suggest event) in Google Analytics. I’ll write more about how to do this in another post. But be aware that the new reports to not contain this data.

In Summary

There is a ton that you can do with the new on site search reports. Not only can you analyze what people are looking for and optimize your content, but you can also identify how visitors integrate search into their visit.

Have fun with these reports!


Share:
These icons link to social bookmarking sites where readers can share and discover new web pages.

  • Digg
  • Technorati
  • del.icio.us
  • Slashdot
  • StumbleUpon
  • Ma.gnolia
  • YahooMyWeb
  • co.mments
  • Reddit
Subscribe:

Are You Going to eMetrics?

October 8, 2007 by Justin Cutroni

20071006_emetrics.pngI’m headed to eMetrics next week. I’m actually traveling to California this week and will fly directly to the summit. In between the sessions I usually hang out at the Google booth and try to answer GA questions. So, if you need some help with GA, or just want to say Hi, drop by the booth.

Oh, and if you don’t know what I look like, check out the About Me page.


Share:
These icons link to social bookmarking sites where readers can share and discover new web pages.

  • Digg
  • Technorati
  • del.icio.us
  • Slashdot
  • StumbleUpon
  • Ma.gnolia
  • YahooMyWeb
  • co.mments
  • Reddit
Subscribe:

Give Me What I Want and I’ll Do What You Ask

October 7, 2007 by Justin Cutroni

I’m not a testing guru. I love testing and think it’s a vital part of the web analytics process, but I’m still learning about the ins and outs. One thing that I have learned is that there is more to testing than changing the color of a button or the format of an email. It is equally important to test the offer that you’re making to the customer. Which works better, ‘20% Off’ or ‘Free Shipping’? Unless you test both you’ll never know.

This week I was reminded how important it is to test the offer when I received an email from Northwest Airlines. I don’t fly NWA much, but I have in the past. Anyway, what really caught my attention was, you guessed it, the offer.

NWA Email Offer

I don’t know about you, but I’ll do almost anything for frequent flier miles. What a great deal, I can get 1,000 miles AND reduce my postal mail. Sign me up! The offer was perfect for me. Would I have taken to the time to subscribe to their email if they did not offer the frequent flier miles? Probably not.

There are so many things that NWA could have tested. First, they probably tested the offer. Then I bet they tested how many miles they needed to offer before someone would convert. Would I have enrolled for 500 miles? Probably not. I wonder if they tested the subject line of the email? I think more people would respond to the message if the offer was in the email subject line, but I could be wrong… Another benefit of testing the offer: understanding the financial impact, i.e. ROI, of the offer.

The bottom line is testing the message is just as important as testing your formats and layouts.

Tracking Email Conversions with Google Analytics

This post would feel naked if I didn’t mention something about GA. :)

The key to measuring the effectiveness of an email offer is identifying how many conversions occur. Measuring email conversions is pretty easy with Google Analytics. It all starts with link tagging. If you’re unfamiliar with link tagging then you may want to take a moment and review how it’s done. Testing emails with GA starts with creating different variations. Once the variations have been created you need to tag the emails so GA can identify each one.

Add a utm_campaign, utm_medium, utm_source and utm_content parameter to each link in each email. While the campaign, medium and source parameters can have the same values, each variation should have a unique content parameter. The following table lists the query string parameters for a simple A/B test.

Email Variation 1 Email Variation 2
utm_campaign=my-camapign utm_campaign=my-campaign
utm_medium=email utm_medium=email
utm_source=my-source utm_source=my-source
utm_content=20-off utm_content=free-shipping

After you’ve sent out the email, use the Traffic Sources > Ad Versions Report to measure the traffic volume and conversions generated by the message. The Ad Versions report shows a line item for each utm_content variable. Note: you should know that this report, by default, contains information from AdWords. If you’re using auto-tagging then GA will automatically pull in the title of the ad that the visitor clicked on. Just keep that in mind when you open the Ad Versions report and see more data than you expected. :)

Ad Content Report

You can also get creative with your link tagging. I like to add a lot of information in the utm_content variable. In the example above I added the offer that was different in each email. I could also add information that identifies which link in the email that the visitor clicked on. Here’s an example:

Email Variation 1 Email Variation 2
utm_campaign=my-camapign utm_campaign=my-campaign
utm_medium=email utm_medium=email
utm_source=my-source utm_source=my-source
utm_content=20-off:top-nav utm_content=free-shipping:main-image

Adding additional information to utm_content creates a lot of data and sometimes it is not useful. Plus, many email distribution tools will also report which link visitors click on, so this technique can create duplicate data. But the option is there if you want to try it.

So there you have it. Don’t forget to test different offers in your email marketing. And there is no better way to measure email conversions than with Google Analytics.


Share:
These icons link to social bookmarking sites where readers can share and discover new web pages.

  • Digg
  • Technorati
  • del.icio.us
  • Slashdot
  • StumbleUpon
  • Ma.gnolia
  • YahooMyWeb
  • co.mments
  • Reddit
Subscribe:

Google Analytics Short Cut

September 13, 2007 by Justin Cutroni

As some of you may have noticed, my book PDF e-book has been published! Google Analytics Short Cut hit the web on August 31 and is now available for purchase at O’Reilly’s website.

In my opinion, and I’m a bit biased after writing for all those hours, it’s a pretty good deal for $10 US. Let me tell you why…

#1 Structured Information
There’s a lot of Google Analytics information out there. We have the GA group, blogs and some books. But, in my humble opinion, the one thing that is missing is a basic manual that provides a structured description of the system’s architecture and features. This was the real driving force behind the PDF. I wanted to explain how things work so users understand the results of certain configurations.

I didn’t want to create a web analytics book. Some pretty smart people have already written wonderful books that discuss web analytics. I wanted to create a work that can help people implement different web analytics strategies using Google Analytics and I think I did that.

#2 Free Updates
O’Reilly provides free downloads of updated PDF documents that you have purchased. How cool is that! We’ve seen Google make some pretty interesting changes to the product in the last 6 months. In fact, they just updates how time-on-site is calculated yesterday. I intend to update the PDF twice a year to cover any new features or major modifications. I might update it more if Google rolls out major changes.

But there’s a caveat… O’Reilly will only update the PDF if sales are good. You know where I’m going with this one. :)

If you’re interested in learning more about GA Short Cut please visit gashortcut.com and please make sure you read the acknowledgments. If you’d like to hear what others are saying you can read the reviews on O’Reilly’s site or check the reviews on gahortcut.com (If you’re interested in writing a review please let me know. I would be honored.)

Finally, I’d like to thank all of you. Thank you for sharing your thoughts, questions and ideas with me. Thanks for adding to the discussion and helping me grow and learn. I had no idea that blogging would lead to so many opportunities. But, more importantly, I had no idea it would lead to so many new friends.


Share:
These icons link to social bookmarking sites where readers can share and discover new web pages.

  • Digg
  • Technorati
  • del.icio.us
  • Slashdot
  • StumbleUpon
  • Ma.gnolia
  • YahooMyWeb
  • co.mments
  • Reddit
Subscribe:

Time-On-Page Goals in Google Analytics & Website Optimizer

September 5, 2007 by Justin Cutroni

Today the Website Optimizer team introduced some new features that will make Optimizer much easier to use. I’m going to defer to the guys at GrokDotCom for coverage on the new features. They got their post up pretty fast and included a snazzy interview with Tom Leung (the Website Optimizer product manager). Please take a moment and check it out.

I’d like to highlight a seemingly minor update to the WO documentation that opened my eyes. Along with the new product features, the WO team published a simple tutorial about how to track time-on-page based conversions. This method can be used to create conversions based on how much time a visitor spends on a page.

How much TIME!Why is this important? Some conversion activities have nothing to do with completing a process. Some conversions measure how engaged a visitor is with a website. While there are many ways to measure engagement, and many different opinions about what engagement is, time spent reading a certain page is one way to measure engagement.

Anyway, the method that the optimizer team published in their support doc can be used in Google Analytics to create time-on-page goals. The secret to the tracking is translating how much time a visitor spends on a page into a pageview. Remember, goal tracking in Google Analytics is based on a pageview. We need to create a pageview that indicates the visitor has been on a page for a certain amount of time.

How it Works

To translate time on page to a pageview we use a nifty JavaScript function called setTimeout(). This function will ‘do something’ after a specified interval of time. We can use setTimeout() to create a pageview after some period of time has elapsed. How do we create pageviews in GA? With urchinTracker().

Here’s the code that will create a pageview after a certain amount of time:


<script>
setTimeout('urchinTracker("/read-pages?page="+
_udl.pathname+_udl.search);', 20000);
</script>

You’ll notice that there are two parts to the setTimeout() function. They’re separated by a comma. The first is urchinTracker(). That’s what will create the pageview after a certain amount of time. The second part is the number 20000. That’s the amount of time that setTimeout() will wait before executing urchinTracker() and thus creating the pageview.

The time is in milliseconds. 1000 milliseconds equals one second. So 10000 milliseconds = 10 seconds.

Place the code, below the standard GA page tag. Once the page loads the timer will start. When the time limit is reached the urchinTracker() function will execute and a pageview will be created for the value passed to urchinTracker(). I’ve used a couple of Google Analytics variable to define the name of the pageview.

udl.pathname is the part of the URL that occurs after the domain extension (.com, .net, etc.) and before any query string parameters (which usually start with a question mark).

_udl.search is the list of query string parameters that appear after the path.

The code will create a pageview for a fictional page named ‘/read-pages’. Part of the fictional page URL will be a query parameter named ‘page’ that stores the name of the page that the visitor was on when the pageview was executed. This setup gives you a lot of flexibility when setting up the goal.

Here’s how the goal would be setup:

Goal Settings for Time on Page Goal

And here are some additional settings I’ve added to this goal:

Additional Settings for Time on Page Goal

The goal is defined as a regular expression. So any pageview that matches ‘/read-page\?page=’ will contribute to the goal total. Using this setup you can create one generic goal called ‘Read Page’ and then use the Goal Verification report to segment the conversions and identify which pages people actually read.

An Example

Let’s say we want to track how many people stay on the following page for 3 minutes:

http://www.epikone.com/blog/2007/08/29/segmenting-members-from-non-members/

First we need to translate minutes to milli seconds:

3 minutes = 180 seconds
1 second = 1000 milliseconds
3 minutes = 180000 milliseconds

Now we’re ready to add the code to the page. Remember, it must go below the standard GA page tag:


<script>
setTimeout('urchinTracker("/read-pages?page="+
_udl.pathname+_udl.search);', 180000);
</script>

After a visitor views the page for 3 minutes the code will create a pageview for:

/read-pages?page=/blog/2007/08/29/segmenting-members-from-non-members/

And a goal conversion will follow.

A Note About Website Optimizer

Obviously this technique will work for tracking conversion in Website Optimizer. The implementation is slightly different. You need to include the account number in the SetTimeout() function. The reason is that the GA code might have a different account number than the Website Optimizer.


<script>
setTimeout('_uacct="UA-XXXXXX-X";
urchinTracker("/read-pages?page="+_udl.pathname+_udl.search);',
20000);
</script>

Conclusion

I can’t believe that I didn’t think of this method before. :) Thanks WO team for posting that very cool article.

Now, what about number of number-of-visit goals or time-on-site goals? I’ve got the number of visits goal tracking figured out and I’m working on a generic time on site. Stay tuned.


Share:
These icons link to social bookmarking sites where readers can share and discover new web pages.

  • Digg
  • Technorati
  • del.icio.us
  • Slashdot
  • StumbleUpon
  • Ma.gnolia
  • YahooMyWeb
  • co.mments
  • Reddit
Subscribe:

Tip: Make Sure Your Site Works

September 2, 2007 by Justin Cutroni

I just read a great article by Bryan Eisenderg about Conversion Rate Basics. He points out some simple things that you should do to insure your site is converting visitors. This got me thinking about an experience I had earlier this week.

On Wednesday (August 29, 2007) I received a message from NetFlix regarding their video on demand service . I’m a big fan of on demand video so I decided to click on the email and view the offer. Imagine my surprise when I was greeted with the following message on the NetFlix website:

Netflix Error Message

Now the site was not down long and this may have been an unforeseen problem. But the lesson is clear: make sure your site works. If it doesn’t you’re going to loose business.

Here’s a similar example. We started working with a client who uses their website to generate sales leads. While evaluating the website we found that their main lead generation form, if filled out incorrectly, would display a plain white screen to the visitor. No web page, no error message, no nothing. Just a plain white page.

How can you protect yourself from unexpected downtime? Try a site monitoring service. I’ve never used one but assume they all function the same way. At some given interval, say 2 minutes, the monitoring service makes a request to your website. If the web server returns an abnormal result then an alert is sent to the responsible party. The company usually charges a small monthly fee for this service. Does anyone out there have an experience with a site monitoring service they would like to share?

But what if the NetFlix issue was not unforeseen? What if the email blast was sent during the website’s scheduled maintenance period? To me, that indicates a lack of process. There should be been some type of process in place that stopped the email blast from going out while the website was down. From a web analytics standpoint, I always want to know when a client is sending out emails so I can insure that it is tagged for tracking. How about adding a step to the ‘email blast process’ to check the website status before sending out the email? I know it doesn’t seem complicated, but unless checking the website maintenance schedule is a documented step in a defined process it could go undone.


Share:
These icons link to social bookmarking sites where readers can share and discover new web pages.

  • Digg
  • Technorati
  • del.icio.us
  • Slashdot
  • StumbleUpon
  • Ma.gnolia
  • YahooMyWeb
  • co.mments
  • Reddit
Subscribe:

Segmenting Members from Non-Members

August 29, 2007 by Justin Cutroni

Do you run a subscription based website? You know the type of site: customers pay you a monthly fee and you give them access to valuable content. I’ve worked with a number of clients with this business model and have noticed that many make a consistent mistake when setting up their analytics package: they fail to segment people who subscribe to the website (i.e. members) from those who do not.

Why is this so important? Here’s an example. The following image shows some real data that is not segmented other than the removal of internal employees:

Non-Segmented data

Now, here are the same metrics with members removed:

Segmented Metrics

Big difference, huh? Just image how this changes all those metrics that are calculated using Visits, like conversion rate, abandonment rate, etc.!

It doesn’t matter what analytics tool you use. If your website has some type of member’s area you need to segment out members to get an accurate view of your website performance and online marketing activities.

The Google Analytics Way

If you’re using Google Analytics the implementation is simple. Use GA’s custom segmentation feature to identify and segment members. Remember, the custom segmentation features uses a JavaScript function, __utmSetVar(), to set a cookie, named __utmv, on the visitor’s machine. The cookie is a persistent cookie and lasts for 6 months. You need to call __utmSetVar() when a member identifies herself. You can put it on a ‘thanks for logging in’. Here’s a perfectly good implementation of the code:


<script type="text/javascript">
__utmSetVar('member');
</script>

Remember, the above code snippet should appear AFTER the standard Google Analytics tracking code. The reason is that the __utmSetVar() function is in the urchin.js file. So if you try to call __utmSetVar() before the urchin.js is loaded by the browser then the visitor will receive an error.

Once the cookie has been set on the visitor’s machine you can use the custom segment value to exclude them from a profile. The exclude filter would look something like this:

GA Filter to exclude members

Any profile that has this filter will only show data for those visitors that are not members thus providing a more accurate view of how effective the website is at converting visitors.

And let’s not forget about the members. You can create a profile that only includes members (the filter settings are almost identical to the filter above, just change the filter type from ‘exclude’ to ‘include’). By creating a profile specifically for members you can focus on their usage of the member’s area. For example, the Top Content report will identify the content that they find most engaging. You could also use some of the loyalty reports to see how often they use the website.

Tip: Tracking Different Subscription Levels

If your membership model has various level, like Gold, Silver and Bronze, you can include this information in the custom segment value. This allows for a more detailed analysis of each membership level. Just modify the value you pass to the __utmSetVar() function. For example:


<script type="text/javascript">
__utmSetVar('member-gold');
</script>

or


<script type="text/javascript">
__utmSetVar('member-silver');
</script>

or


<script type="text/javascript">
__utmSetVar('member-bronze');
</script>

After the custom segment cookie has been set you can create different profiles for each subscription level. Use the filter shown above, just change the value for Filter Field to match one of the values in the code above. Then you can use the profiles to analyze the member data and observe their habits.


Share:
These icons link to social bookmarking sites where readers can share and discover new web pages.

  • Digg
  • Technorati
  • del.icio.us
  • Slashdot
  • StumbleUpon
  • Ma.gnolia
  • YahooMyWeb
  • co.mments
  • Reddit
Subscribe:

Segmenting Visitor Loyalty Reports in GA

July 17, 2007 by Justin Cutroni

[ UPDATED: I've added some more information re: filtering direct and referral traffic. ]

This is a quick post. The goal is to help all you GA users that read Avinash’s most recent post about measuring success for non-e-commerce sites. Avinash lays out three recommendations including:

3. Segment the data! For Visitor Loyalty or Length of Visit what are the most important acquisition sources? What are the keywords that drive valuable segments of traffic to the website? As you look at longer time periods what pieces of content do people with longer visits consume? And so on and so forth. Segmentation is key to insights that will drive action.

Specifically, Avinash recommends that you segment the following reports in GA (or whatever tool you use):

  • Visitor Loyalty
  • Visitor Recency
  • Length of Visit
  • Depth of Visit

However, if you’re a GA user you can NOT segment these reports from the reporting interface. The only way to segment the Visitor Loyalty reports is via filters and profiles.

When you apply a filter to a profile it segments the data during processing. Here’s an example. Let’s say you add an include filter to a profile. Here’s the filter:

Include filter for segmentation

This filter only includes data that comes from the cpc or ppc medium (paid search). So all of the reports in the profile only contain data from paid search campaigns. By using the filter you’ve segmented the data.

Let’s take this one step further. We’ve just filtered the data by the paid search medium. Now we want to further segment by each search engine (i.e. Yahoo!, MSN, Google). We could create a second filter based on the campaign source:

Campaign Source Filter

Now the data in this profile, and the Visitor Loyalty reports, is specific to paid search activities from Google. We’ve successfully implemented Avinash’s recommendation.

You can adjust these filters (and thus the segmentation) based on the values of Campaign Medium and Campaign Source. To create a profile with only email traffic change the medium filter above so the filter pattern is ‘email’.

Remember, the values of Campaign Medium and Campaign Source can have a default value (like organic, referral or direct) or a set value that comes from the utm_medium and utm_source parameters used in link tagging. You can read more about link tagging in a previous post I wrote.

You can always find the values for Campaign Medium and Campaign Source in the Traffic Sources > All Traffic Sources report, just segment the report using the Medium or the Source.

20070717_all_sources.png

Here are the top 10 traffic sources for Analytics Talk:

20070717_sources.png

If I want to create a profile for traffic from the Official GA blog I would use an include filter, based on Campaign Source, with ‘analytics\.blogspot\.com’ as the filter pattern. Remember, the filter pattern is a regular expression!

To filter direct traffic you should set the Filter Field to Campaign Source and the pattern to ‘\(direct\)’. For referral traffic, set the Campaign Medium to ‘^referral$’.

Is this an intuitive approach to segmentation? Not really. But it works perfectly. When you set up accounts create profiles for major acquisition mediums and sources to gain the insight you need to judge success.


Share:
These icons link to social bookmarking sites where readers can share and discover new web pages.

  • Digg
  • Technorati
  • del.icio.us
  • Slashdot
  • StumbleUpon
  • Ma.gnolia
  • YahooMyWeb
  • co.mments
  • Reddit
Subscribe:

Breaking Up Is Hard To Do: GA Account Setup Tip

July 14, 2007 by Justin Cutroni

The BreakupThis post is for all you contractors and agencies out there that are setting up Google Analytics for your clients. I want to help your relationship. No, not the relationship between you and your significant other. The relationship between you and your client.

One of the biggest problems I see when working with companies is contractors that set up Google Analytics incorrectly. I’m not talking about poor configuration settings, I’m talking about Google Account issues.

Here’s the situation. You, as the contractor, decide to create a profile for each of your clients in a master Google Analytics account. This seems like a good idea because you can log in and have all your client metrics accessible in one location. Plus you can grant user access to each client so they can access their metrics. However, you can’t grant them admin access because each client would have access to ALL profiles (i.e. clients) in your account.

Here’s the problem. If you ever decide to part ways with your client there is no way to transfer ownership of their profile(s). They will have user access to their profile(s), that you created, FOREVER.

Why? When you create a profile it’s tied to a specific account. That means that the data physically flows into a specific bucket. Look at the tracking code for a profile


<script type="text/javascript">
_uacct = "UA-22222222-1";
urchinTracker();
</script>

The account number is right there for you to see. During data collection, the data goes into the bucket for the account number in the tracking code. If you change the account number in the tracking code the data goes into a new bucket but the historical data stays in the old bucket. See, there is no way to move the data.

Account Setup Tip

To avoid this situation, do not add client websites as profiles to a single Google Analytics account. Instead, create a new Google Analytics account for each client. Then, have the client grant you, the contractor, access.

This also pertains to those of you setting up GA for your companies. Do NOT create a profile for your employer in your personal GA account.

At EpikOne we have two primary GA accounts: an admin account and a reporting account. We ask clients to add these accounts to their GA account when a project begins. The admin account is only used by a few of us. We use it to make changes to a client’s GA settings. The second account is used for day to day access to the client data. We give analysts and other internal data consumers access to this profile so they can play with the data and we don’t have to worry about them breaking any settings.

If You’re Guilty

If you’re setting up client profiles in the above manner, I suggest you tell them immediately and start a migration process. Will it be painful? Potentially. But it’s in the best interest of the client.

See the Problem for Yourself

There are some folks that are probably thinking, “Just make the client an administrator, and then delete the contractor’s admin account.” That will work, but the client will then have access to all of the profiles that are in the contractor’s account. Furthermore, if the client deletes the other client profiles, they will be deleted from the contractor’s account as well.

I think it’s difficult to visualize this problem so you can test it out for yourself. I’ve create two GA accounts that you guys can play with. I’m not sure how well it will work, but I thought I would give this a try.

Account #1
username: ga-acct-contractor@cutroni.com
password: contractor

Account #2
username: ga-acct-client@cutroni.com
password: client

If you do add/delete profiles, please re-create them for the next user. Try to leave both accounts the same way that you found them.


Share:
These icons link to social bookmarking sites where readers can share and discover new web pages.

  • Digg
  • Technorati
  • del.icio.us
  • Slashdot
  • StumbleUpon
  • Ma.gnolia
  • YahooMyWeb
  • co.mments
  • Reddit
Subscribe: