412.343.3692
1.800.975.1844

Archive for April, 2008

Getting ahead with Google Analytics: June 4, 2008 in New York City

Tuesday, April 29th, 2008

double logoHave you ever attended an internet marketing conference that had just one lonely session on Google Analytics? Whenever I’m leading one of these sessions, people always come up to me afterwards and say, “Thanks — how can I learn more about Google Analytics? ” So after hearing this over and over again, we’ve created a day of Google Analytics training. It will be on June 4, in New York City, at the Harvard Club on 35 W. 44th Street.

The event will cover a range of topics in Google Analytics, from analysis to GA tips and tricks, with lots in between. (See the full schedule — and notice that we also have a session on Google AdWords and one on Google Website Optimizer). We’ll also offer implementation sessions, which will be very interactive, so bring your questions and let’s get them answered.

And, since I really hate when people hide the price — it costs $285. You can register now, and even if you have to cancel, we can refund your money in full until 8 days before the event. After that, you can transfer your registration to someone else, if you need to.

The good news about having this at the Harvard Club is that it is an intimate affaire. (OK, not that intimate, your spouse will not feel threatened.) The bad news is that because seating is limited, we really do have to put a cap on the number of people who can sign up. So if you think you’d like to attend, be sure to sign up now. (I know, I know, that’s what everyone says when they have an event. But I so vividly remember trying to go to the eMetrics Summit in 2005 and it was SOLD OUT.)

If you are coming, please feel free to send me email and tell me what you want to learn and what your questions are. I really want everyone who attends to start to get more value out of their Google Analytics — and we can do that best if we include the things you want us to teach about.

Registration Link
Email me your questions

Robbin

Is that event free or not?

Saturday, April 26th, 2008

OK, this is one of two commercials I have to do (the next one will be for Lunametrics’ Google Analytics training on June 4 in NYC at the Harvard Club. But I don’t have the link for that one ready quite yet.)

So here is the deal - the WAA is having a free event — actually two. First, there is an educational session on Web Analytics vs. Audience Measurement, and then there will be our fun event: the Raucous Caucus. It is on the Sunday evening before the eMetrics Summit in San Francisco, in the Gold Ballroom of the Palace Hotel in SF (the same hotel as the Summit will be in). Two New Montgomery Street, if you are mapping it. It starts at 4:30 PM and goes until 7, and then you can all go out for dinner. Or, stand on the sidewalk until midnight and try to decide what to do, which is where I found everyone last year when I finally pulled up to the hotel.

The hard part is that the registration requires you to go through the eMetrics signup, and it FEELS like it costs money. Wouldn’t you expect more from an organization that is supposed to help people *improve* their websites? But it is always that way, no one ever can do for themselves what they do for others.

Anyway, you probably should register for this free event. If you show up with no registration, there will be no name tag for you, and no finger food with your name on it, either. It is the first item on the top of the WAA home page.

So happy registering.

Robbin

Stuff More Than One Value into GA’s User Defined Segment

Thursday, April 17th, 2008

The User Defined Segment Variable in Google Analytics allows us to give each visitor to a site a distinctive label. Member or Non-member, Male or Female, Large or Small. This value is then stored in a cookie called __utmv on the visitors computer. Each time the visitor comes to your site, the Tracking Code checks for a value in that cookie and sends it along with the rest of the data.

The More-Than-One-Value Problem

But sometimes you would like to keep track more than one piece of information in GA’s User Defined Segment. You might want to know when you have a Small Female Non-member or a Large Male Member.

Most of you already know that Google Analytics only gives us one User Defined Variable. At first glance, that isn’t an issue, we can just set our variable to ‘Small/Female’ and now we have more than once piece of information about that visitor, right?

But you don’t always learn every piece of information at the same time. And whenever you set the value of the variable, it overwrites the previous value.

Here is a technique (and the JavaScript) that I have used when I’ve needed to overcome this particular limitation.

How it Works

With the old version of the Tracking Code using urchin.js, we set the variable with:

_utmSetVar('someValue');

And in the new version using ga.js:

pageTracker._setVar('someValue');

But instead of using those, we’re going to use a new function:

superSetVar('someValue');

This function will check to see if the visitor already has ’someValue’ assigned. If the value is already there, the function doesn’t do anything. But if it is not there, it adds this value to the end.

For example, if we set two values in a row with superSetVar:

superSetVar('/eyes=blue');
superSetVar('/hair=blonde');

instead of the second value overwriting the first, and making the User Defined Segment Variable equal to ‘/hair=blonde’, with superSetVar it is equal to ‘/eyes=blue/hair=blonde’.

In this way, we can use the superSetVar function whenever we need to add a piece of information to the User Defined Segment Variable in the __utmv cookie, and each time, the new value gets added to the end.

Naming Conventions

This brings us to some naming conventions. You’ll notice that I’m using the format /name=value for my variables. Aside from helping us visually in the GA reporting interface, and giving us a little something extra to work with when setting up filters, it also assists us in our next task - unsetting a value.
[This naming convention is required in order for everything to work as advertised. However, feel free to alter the code within the super_set_var.js to suit your own needs.]
With the original GA functions, we don’t need to unset our variable, since every time we set a value, it overwrites the previous value — a sort-of built-in unset. So if you have a value of NonMember and later become a Member, the NonMember values gets overwritten and you just end up with ‘Member’. But if you used superSetVar you would end up with something like /status=nonmember/status=member.
Because of this we need to have another function, unSetVar. You could use it like this:

unSetVar('/status=');
superSetVar('/status=member');

The unSetVar finds any instance of ‘/status=something’ and deletes it. So if you wanted to change someone’s eye color:

unSetVar('/eyes='); // clears all /eyes=someColor
superSetVar('/eyes=green'); // adds '/eyes=green' to the end of the __utmv cookie

What value will show up in the reporting interface?
Sometimes figuring out what you’re going to see in the reporting interface is a little tricky. With this method of setting the User Segment Variable, it should work like this:
If the visitor does not have a value already defined, then the first value that you give them will be used.
This means that if you call superSetVar multiple times, the latter values won’t show up, until the user comes back for another session.
However, if the visitor already has a value for the User Defined Segment Variable when they arrive at your site, then that value will be used. If you set additional values, they won’t show up in the GA Reporting Interface until the users next session.

Implementation:

1. Download super_set_var.js

2. Copy it to your web server.

3a. For the new version of the GATC, add the line in bold to your GATC after the call to ga.js, making sure to change the /path/to/super_set_var.js to the location on your webserver where you put that file in step 2:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type=”text/javascript” src=”/path/to/super_set_var.js”></script>
<script type=”text/javascript”>
var pageTracker = _gat._getTracker(”UA-xxxx-y”);
. . .
</script>

3b. For the old version of the GATC:
<script src="http://www.google-analytics.com/urchin.js"
type="text/javascript"></script>
<script type=”text/javascript” src=”/path/to/super_set_var.js”></script>
<script type=”text/javascript”>
_uacct = “UA-12345-1″;
. . .
</script>

4. Use superSetVar(”/someName=someValue”); wherever you would have used pageTracker._setVar(”someValue”); or _utmSetVar(”someValue”);

Technical Note:
This implementation chooses to set the __utmv cookie with a pageTracker._setVar(’…’); that is associated with a ‘fake’ UA number. You could instead choose to alter the code to write the cookie by hand, or to use a _setVar(’…’); that is associated with the actual UA number for the account.

If you have any comments, improvements, alternatives, etc, please post them below. I’m sure some of you have had the opportunity to do this before, so share any pitfalls you’ve encountered or just tell me why your method is better than mine.

-John

Google Analytics: Worst Titles Ever

Saturday, April 12th, 2008

“Remember,” John McAndrew cautioned as we started a new project for the Association of Corporate Counsel, “The GA titles are deadly.”

This is so true. As much as I love Google Analytics, their report titles and labels just suck. (I hope you guys are listening.)

There are a lot of things GA does right. But if we are going to have an analytics package that is “democratic” — that all the people in the company can use, not just the Web Analyst — we need to have descriptive titles and labels. And they need to be things that the average Joe and Jane can understand. And we have to stop calling the same thing by different words in different places. (If we are going to call paid search “cpc” on the medium report, why do we have “paid” and “unpaid” in another?) Or as one person said to me in the all-day training I did on Monday, “That’s just Google Analytics’ way of tripping us up, right?” And, the sad part was: he was right.

(Here is a little more full disclosure, or maybe credit where credit is due. Back when LunaMetrics became a Google Analytic Authorized Consultant, I started bitching about the GA documentation, for the same reason. “If we have an analytics package for regular people,” I argued, “Shouldn’t we have drop-dead, knock-your-socks off documentation? The kind that everyday people can understand?” And since that time, we are getting there, thanks to Brett and Alden and a lot of other people whose names I don’t know. So all things are possible.)

OK, let’s roll up our sleeves, and just address the Seven Deadly Names and Titles. In reverse order, so that they get worse and worse…

DeadHostname vs Network Locationly Title #7: Network Location vs Hostnames. Some way, we have got to figure out how to indicate that “network location” is the visitor’s ISP and “hostname” is all the URLs that your site goes by in GA. So, for example, “Hostnames” is the report to go to when you want to know if you have subdomains setting cookies, or if some other site has stolen your code and uses it to muddy your analytics. On the other hand, Network Location is the place to go to when you think you might be able to learn what company the visitor came from. (This last part generally only works if the visitor came from a big company, like Toyota or GM, who is their own ISP.)

Deadly Title #6: Top Content. It is ALL content, not just top content.

Deadly Title #5: CPC vs Paid; Organic vs Unpaid. I would love to say, “Can’t we just go with one or the other? Let’s just call it paid search and unpaid search and forget the other stuff here.” Reality is not so easy, though, because this one is not just about titles, it is about cookies. To get less technical than that — this door of opportunity closed years ago. We just have to live with this one, and always remember that cpc means paid search, and organic means unpaid search.

Deadly Title #4: Visitor Loyalty. We have a set of reports called Visitor Loyalty, and then under that we have a specific report called Loyalty, too. So can’t we call the whole set Visitor Loyalty, and then call the report itself Frequency? Because that is what it measures, how many times they came.

Deadly Title #3: Navigation Summary: How visitors found your content. (I am only explaining/complaining about the subtitle, “How visitors found your content.”) This report describes how visitors got from one place on your site to the page you are interested in and where they went next, and NOT how they found your content from outside of your site. “Paths visitors used to get to and from your content” might be a little better.navigation summary

Deadly Title #2: Entrance Paths: Paths visitors used to get to your content. Well, that is just ridiculous, this subtitle is perfect, but it belongs on the Navigation Summary report (Deadly Title #3), not here in Entrance Paths. If you look at an Entrance Paths report, it starts out with *your* content and shows where they went next. In fact, this particular Deadly Title gets an extra point for deadliness, because this isn’t really about Entrance Paths at all: the page you are interested in might not be an entrance page. This is a report about where the visitor went after they looked at your page.

Entrance paths

The Winner!! Deadly Title #1: “Most people visited…” This is arguable the worst label we have in GA. Here you can see it:

most people visited

It is misleading in more than one way (which is why it scored for Deadliest Title.) As I pointed out when I did my loyalty experiments, this set of charts measures visits, not visitors. But using the word “people” gives the impression that it is the other way around.

Even if we pretend that the chart says, “Most visits happened only once,” or some other way to get rid of the word “people,” it would still be misleading. “Most” just describes the bar that is the longest. And it completely obscures how great that chart can be — we have an incredible report that puts visits into buckets of frequency, and then we dumb it down by saying, “Just look at the longest one.”

Robbin

Are your Top Content URLs Too Long?

Thursday, April 3rd, 2008

Google Analytics’ reporting interface often can’t display the entire URL for a pageview in the Top Content report.

Most browsers support the ability to override a web page’s CSS with a custom .css file. Here is how to use that feature in Firefox to let you see the full URL string.

(If you use IE, Opera, Safari, etc, just show this article to your favorite geek, and if you’ve been nice to them, they might help you out.)

The key is the userContent.css file. CSS placed in this file can override a page’s default CSS. This file resides in your /chrome directory. On my Windows XP computer, it is:

C:\Documents and Settings\Henson\Application Data\Mozilla\Firefox\Profiles\722qaf8f.default\chrome\userContent.css

If the file does not already exist, just create it in a text editor.

Add the following CSS to the userContent.css file to alter the display behavior in the GA reporting interface.


@-moz-document url-prefix(https://www.google.com/analytics/reporting/top_content)
{
.records td {
padding: .4em !important;
padding-bottom: 2.0em !important;
vertical-align: top !important;
}
.text_wrapper {
white-space: normal !important;
}
.text_wrapper .text_wrapper {
white-space: normal !important;
overflow: visible !important;
}
a { white-space: nowrap !important; }
}

And what do you get for your effort?

Top Content - Google Analytics

But John, that’s so much work!

If you don’t like working with userContent.css, try the Firefox extension Stylish:
https://addons.mozilla.org/en-US/firefox/addon/2108
Install. Select Write Style > Blank Style (from the status bar icon) and Paste in the above CSS.

Bonus: Per-site user stylesheet rules:
http://lists.w3.org/Archives/Public/www-style/2004Aug/0135.html

Happy Reporting,

John Henson