Tag Archives: Time Spent Metrics

Understanding Time on Page / Time on Site / Bounces in Google Analytics

I have clients who put a lot of focus on time-spent metrics like “time on page” or “average session duration,” and there is a lot of time spent on my part making sure everyone understands how those metrics are counted (and how misleading they can be). It’s a common misconception that there is a countdown timer ticking on each page, and that said counter is only running when someone is actively looking at / scrolling down the page in the active browser tab, and that the counter stops when someone closes the tab or browser.

Sadly, those are completely inaccurate assumptions and often lead people to misinterpret what’s in those reports.  All time-spent metrics are calculated based on timestamps of when packets of data are sent to your reporting tool. The reporting tools have no idea whether or not your users were actively on your site, only that beacons of data are sent. Here’s a good example of why time-spent metrics shouldn’t be blindly trusted:

  • Best case scenario: If you were on Page A at 12:00pm and stayed engaged reading the page for a few minutes and navigated to Page B at 12:02pm, Google Analytics would show that your time on Page A was 2 minutes. Great!
  • More realistic scenario: If you were on Page A at 12:00pm, got distracted and looked at another site in another browser tab for 10 minutes, then had to take a 10 minute phone call, then finally returned and navigated to Page B at 12:20pm, GA would show that your time on Page A was 20 minutes. No it wasn’t, yikes!

Rather than using these types of passive metrics which can be misleading, I recommend using metrics that show users actively engaging: page views per session, scroll event tracking, page depth, etc. But if you do want to continue using the time-spent reports, it’s important to understand exactly what is being calculated and how.

  1. All time spent metrics are simple difference calculations based on timestamps of when hits are sent to GA.
  2. Average Session Duration is the difference between the timestamps of the first and last hits of the session (and that final hit can be either a pageview or an event). If only one hit happened in the session, the average session duration will be 0 since there is no second timestamp to perform the calculation. (Google Help Article)
  3. Average Time on Page is the time difference between subsequent pageviews. The final page (or in cases of single page visits the only page) will have a time on page of 0 because the subsequent timestamp is not there for the calculation.
    • Note that events are not taken into account on time on page calculations.
  4. Bounces are sessions that only trigger one hit, and that hit can be a pageview or an event. If a user only visited one page and incremented 1 single pageview but scrolled down enough to make a scroll event fire, that’s 2 hits and therefore they will not be a bounce. (Google Help Article)
    • Note that GA has an option for “non-interaction events” which were designed to be ignored for the purposes of bounce rate.

I always find it helpful to see detailed examples, so I generated data for a few scenarios to illustrate:

Session 1:
3 Pageviews, 0 Events

Page 1 @ 2:58pm
Page 2 @ 3:00pm
Page 3 @ 3:02pm

  • Avg Session Duration = 4 minutes (3:02pm minus 2:58pm)
  • Bounce Rate = 0%
  • Page 1 Avg Time on Page = 2 minutes (3:00pm minus 2:58pm)
  • Page 2 Avg Time on Page = 2 minutes (3:02pm minus 3:00pm)
  • Page 3 Avg Time on Page = 0 minutes (there is no subsequent timestamp to calculate)

Session 2:
3 Pageviews, 2 Events

Page 1 @ 3:02pm
Page 2 @ 3:03pm
Page 3 @ 3:04pm
Event A @ 3:05pm
Event B @ 3:10pm

  • Avg Session Duration = 8 minutes (3:10pm minus 3:02pm)
  • Bounce Rate = 0%
  • Page 1 Avg Time on Page = 1 minute (3:03pm minus 3:02pm)
  • Page 2 Avg Time on Page = 1 minute (3:04pm minus 3:03pm)
  • Page 3 Avg Time on Page = 0 minutes (there is no subsequent pageview timestamp to calculate)

Session 3:
1 Pageview, 1 Event

Page 1 @ 3:10pm
Event A @ 3:12pm

  • Avg Session Duration = 2 minutes (3:12pm minus 3:10pm)
  • Bounce Rate = 0%
  • Page 1 Avg Time on Page = 0 minutes (there is no subsequent pageview timestamp to calculate)

Session 4:
1 Pageview, 0 Events

Page 1 @ 3:13pm

  • Avg Session Duration = 0 minutes (there is no subsequent timestamp to calculate)
  • Bounce Rate = 100%
  • Page 1 Avg Time on Page = 0 minutes (there is no subsequent pageview timestamp to calculate)

Session 5:
2 Pageviews, 1 Event, 1 Pageview

Page 1 @ 3:32pm
Page 2 @ 3:34pm
Event A @ 3:36pm
Page 3 @ 3:38pm

  • Avg Session Duration = 6 minutes (3:38pm minus 3:32pm)
  • Bounce Rate = 0%
  • Page 1 Avg Time on Page = 2 minutes (3:34pm minus 3:32pm)
  • Page 2 Avg Time on Page = 4 minute (3:38pm minus 3:34pm)
    • NOTE: this is ignoring the event and is calculating the time difference from the previous pageview
  • Page 3 Avg Time on Page = 0 minutes (there is no subsequent pageview timestamp to calculate)

Hopefully that clarifies exactly how things are counted, and will empower you to interpret those reports correctly!