Reviewing analytics for our sites recently, we identified bounce rate and session duration in Google analytics as areas we want to focus on and learn more about. Looking around the web, the general understanding of what factors into these metrics is pretty muddy. Google offers documentation of course, but it’s not always in terms that the average user can easily understand. On top of that, a fair bit of what’s out there is just plain wrong or overcomplicated.
After digging through Google documentation and the writing of Justin Cutroni, the Analytics Advocate at Google, I’ve put together what hopefully is a pretty simple and clear explanation of how the bounce rate and session duration metrics work. You’ll find that below, and hopefully it will help you get more value from your Google Analytics data!
Bounce Rate and Session Duration in Google Analytics
These two terms share a common thread: they both depend on “Hits”. Hits are specific user interactions with a page. Let’s look at how this works!
Bounce Rate
Bounce rate is defined by Google as “sessions in which the person left your site from the entrance page without interacting with the page”.[1] A common misinterpretation of this around the web is that it means a user landed on your page, said nope, and exited. That’s not the case! Pay special attention to the phrase “without interacting with the page”.
According to Justin Cutroni, the Analytics Advocate at Google, interacting with a page includes the following actions which Google dubs “engagement hits”:[2]
- Pageview hits
- Ecommerce transaction hits
- Ecommerce transaction item hits
- User defined hits
- Social plugin hits
What Google counts as a bounce is any user that visits only a single page in a single session (the entrance page only) and doesn’t engage in any one of the above interactions. They may hang out and read your article, but they’re counted as a bounce if they don’t engage in one of the specific engagement hit interactions above.
Average Session Duration
Session duration per page is a bit more complicated, but it’s still easy enough to wrap your head around. It’s calculated in one of two different ways depending on whether there is 1 pageview in the session, or 2+. There’s a unique formula for each scenario as follows:[2]
Only 1 page view formula:
- Time on Page = (time of last “engagement hit” on page) – (time of first hit from page)
2+ Page View Formula:
- Visit Length = (time of last “engagement hit” of visit) – (time of first hit of visit)
Note that “time of last “engagement hit” on page” is a factor in both these metrics. This affects both your bounce rate and session duration in Google Analytics in two ways:
- In a single page session where no engagement hit takes place, the session is both counted as a bounce and assigned a 0 value that is factored into the Average Session Duration metric.
- In a multi-page session, the final page viewed will be assigned a 0 value for Average Session Duration if no engagement hit takes place on that page. It’s not counted as a bounce, however.
Average Time on Page as an Alternative to Average Session Duration
If you navigate to Behavior>Overview in Google Analytics, you’ll see the Average Time on Page metric. This is calculated using the following formula:
- Time on Page / (Pageviews – Exits)
This metric gives you a better overview of how long your users are actually spending on a page, but it can also become problematic with pages that have high exit percentages. That’s a topic for a different article, but it’s worth putting on your radar.
Improving Data Collection for Bounce Rate and Session Duration in Google Analytics
There is understandably only so much any analytics tool can do in its stock form, and GA recognizes this and is intentional about making the service open to user modification.
Recall from above that User Defined Hits is an engagment hit factor. We can leverage that to turn scrolling down a page over a given amount of time into an engagement hit that Google sees and records! That change means that pages being actively read by a user will no longer count as bounces, and will make Average Session Duration a more accurate reflection of how long users are spending on your content.
The drawback here is that it does take code to pull off. Hypothetically this could be accomplished via a WordPress plugin, but I’ve not found one yet that I am satisfied with recommending. I’ll keep up the search, and if you have recommendations of your own, then please speak up in the comments! For now, the best I can do is point you to the JavaScript written by Justin Cutroni, the Analytics Advocate for Google, that he recommends for this purpose.
I hope this new information on bounce rate and session duration in Google Analytics has helped you to both understand how they work and add a new layer of value to your own analytics. If you have any questions or comments, please don’t hesitate to post below. Hooray for better data! 😀
which is why I run click parallel with GA
https://clicky.com/help/faq/tips/different/bounce-rate
That’s an interesting service, Mitch. Thanks for sharing!
Q