Data Driven: Your Bounce Rate and Time On Site are wrong
It's hard not to look at your bounce rate and wonder why so many people hate your product isn't it? This article explains how Google Analytics might be screwing you on your bounce rate and some methods you can use today to measure it more accurately. In doing so, you'll also be improving the accuracy of your visitor's Time On Site.
So what is bounce rate?
'Bouncing' is generally used to describe when a visitor comes to your website, doesn't interact and leaves, similar to when you're searching for something and land on a page that blatantly doesn't have what you need. That's a bounce.
How does Google measure bounce rate?
Google indeed measures a bounce as zero interaction. However, Google doesn't measure interaction as clicks or scrolls as default, Google measures by pageviews, so:
If a user leaves your site after loading the first page, regardless of any interaction, this is considered a bounce.
Here's a few product scenarios where this logic fails:
- You have all the information required on one page (a blog post, a landing page, a very long informed single page website) and your users spend minutes enthralled on this page before leaving totally satisfied.
- Your site deliberately suggests external sources to your users. Your users love you because you help them find other stuff online, and the first link they click is to an external website.
- Your users sign in with Facebook, Twitter etc and the next page you load is on facebook.com or twitter.com (for their sign in page).
- Your product has a landing page capturing interest using a form which is powered by another service like Mailchimp, Wufoo and users are directed to their site after successfully completing your objective.
I'm not saying Google's methodology is useless, in fact, it's pretty smart for most cases. But it can't work perfectly everywhere and understanding how it works will help you understand if you're really picking up the right data.
How does Google measure Time on Site?
Ever shocked at how that's a little low? This is somewhat related to the shortcomings in Google's bounce rate: by default, Google measures the time on site as the time between the first page loaded and the last page loaded. If your users flick through tens of your pages, then this won't be much of an issue. However, if you're a victim of the bounce rate issue above, you're probably a victim here too:
If users are only loading one page on your site, irrespective of how much they interact with that page, their time on site is 0:00 to Google Analytics.
There's no second page to close the loop. In any case, the last page your users visit on your website, no matter how much time they spend on it, will not be included as part of their time on site.
With me so far? OK let's look at some solutions 🙂
Now that you understand how Google's off-the-shelf metrics work, it's possible to alter them to suit your product.
If you skipped to here and aren't really a javascript expert, I recommend you go back and read the article. Sorry but while I have some copy and paste solutions, you need to think about which is going to work best for your product. Let me know in the comments if any of these need more descriptions.
We're going to dabble in some event-tracking. If you haven't done this before, don't worry. Just start, and you'll figure it out quickly after you get into it.
Solution 1. Measure Time on Site
Brian Cray has written an excellent blog post discussing much of what I talk about here and he provides a very concise solution: instead of letting the a page view measure the time on site, let's just ask every 10 seconds if the user is still there and measure it ourselves. (Edit: Thanks Nick for pointing out Google Analytics's limit of 500 data points per user session. If running this code, I'd recommend reducing to every 60 seconds to avoid hitting this limit.) This does not require jQuery, works with old (sync) or new (async) Google Analytics, and you can just stick this code at the bottom of your page before the closing