Do you know what your users are doing?

There are levels to this question. I'm sure most of us that run web apps know to some degree what our users are doing, but, if you have the need, you can find out in real detail what they're doing and in what order.

Obviously there are paid tools, entire companies that make this their business such as SessionCam. And what they do is great if you have the budget. But what about for those of us with slightly smaller wallets?

My usual approach to the problem these days is to use Google Analytics (or GA as it is inevitably shortened to). I suspect most people know that you can drop a simple GA JavaScript file onto a web page and any visits to the page will be automatically recorded, analysed to identify what type of user is visiting so that you can get a picture, even real time, of traffic to your site. 

What's maybe less well known is that you can actually use that GA JavaScript to record events on your page so that you can really drill down into what is happening once the user loads the page.

ga('send', 'event', 'MySuperPage_OKButton', 'Clicked');

If you add the above line to the onclick event on a button on your page then, in your GA analysis you'll be able to see how often that particular button is clicked. And, really, you can track everything that the user does, every single key press, click and page load. 

Well whoop-de-do you might say. That's a lot of data, but what use is it? Well, imagine you're adding or testing a new feature, wouldn't it be good to know how often it's actually being used. Or you may need to keep an eye on the volume of usage for a particular feature. Or your management may want to understand better how far through a process people are getting before dropping out. The point is that having more data is very rarely a bad thing and the development cost of adding this to an application is surprisingly low.

The question really is why you wouldn't do something like this for an application.