This is the second in a series of tech articles I'm writing which draw on my experience designing and creating Geojoey. The first article was "Why 100% Ajax?".
Have you ever noticed that when you ask a friend or family member what they don't like about your web application, the first thing that comes out of their mouth is an apology? It's usually in the form of "You know I think your site rocks and I know you guys worked really hard on it so I feel really bad saying this and I don't want you to take it in the wrong way but....."
Human interaction is complex. There are layers of politics upon emotions dampened down with subtlety with the constant line noise of distraction and digression. It's amazing we can transmit any raw data between ourselves at all.
Think of the application you use for email. Perhaps it's Outlook, Gmail or Hotmail. Now answer the following questions off the top of your head without looking at your email application:
- Which button do you click most often in your email application?
- What is the last thing you do before you leave your email application?
- How much time do you spend on average using your email application each session?
If you don't know these answers, your users won't either.
When I was consulting in London, Anderson Consulting had a usability lab they rented out at 25,000 GBP (about $40,000) per day. The lab had cameras on each PC, keystroke loggers and all the bells and whistles. Users were brought in to use a clients application or website and their actions were monitored.
Think about how you use your web browser at home or at work and then think about how you'd use it with 3 people and a camera looking over your shoulder. I'll hazard a guess that there are slight variances in your usage patterns.
The best, and possibly the only way to gather meaningful usability data is while your users are busy using your application in their familiar environment with their own machines, their own screen resolution, with their own spyware pre-installed and on their own time.
How to measure Ajax content performance
There are a variety of tools available to measure content performance on websites. You can find out which web page is the most viewed, which page is the most popular entrance point and what is the page the causes most of your users to leave your site. But what if your site 100% Ajax? What if it's all on one page and your content is loaded dynamically?
Google Analytics provides a Javascript function that lets you emulate a page load or hit. It's called urchinTracker and it looks like this:
urchinTracker("/pagefilename1" );
If your website uses Ajax, you can call this function when a click or an application even occurs.
Geojoey is 100% Ajax and when I first discovered this feature of Google Analytics I got a little too excited. I attached it to all sorts of application events. I looked at the data and realized it was meaningless because there was too much. What I really wanted to track was our users interactions with Geojoey.
So the approach I took is to call urchinTracker() any time a user interacts with the application - and only then. Almost everything you do in Geojoey generates an urchinTracker() call.
Because Ajax applications load components dynamically and don't really fit into the traditional page-view model, I used a convention to track application interactions. Everything goes under the '/click' URL. So if a user clicks a link to see the newest experiences on Geojoey, the following function will be called:
urchinTracker("/click/globalNewest");
My convention is also hierarchical, so if a user is adding an experience and they click the link to start a GPS import, the following is called:
urchinTracker("/click/addExp/startGPSImport");
In Google Analytics, this convention becomes very useful when using the content drilldown feature. To find it go to All Reports > Content Optimization > Content Drilldown. You can browse this hierarchy and see what the most features are when a user is using a certain part of your application.
Lets take the example of a user adding an experience on Geojoey. Here's what the pie chart looks like:

The top 3 most used features for the date period I selected are shown. Number two and three are the submit buttons that the user clicks if they're adding or editing an experience. But number one is the ability to import a GPS track. 4 and 5 are the links a user clicks on after they've imported a GPS track to zoom to the beginning or end of that track.
This is very valuable data for us because it shows that the ability to import a GPS track is popular on Geojoey and perhaps we should grow that feature or talk about it more in our marketing messaging.
If your site is 100% Ajax, it's important that you do make calls to urchinTracker periodically. If you don't you won't get meaningful data on how long users spend on your site or how many visits you get per day.
Analytics provides a variety of ways to view your contents performance. Once you've set this up, go to All Reports > Content Optomization, Content Performance, to view this data.
Analytics also provides a host of information on your users platforms. The graphs below show some of the data we have gathered over the last couple of days from Geojoey:
Google, the company, are data obsessed. Every decision they make is based on data. The question is always "What does the data suggest?". You should take this approach too and Analytics provides more data which is a Very Good Thing™.
A detailed discussion on how to use Analytics is beyond the scope of this document. The help documentation is here if you'd like to learn more.
Comments