I need to be able to break down how many users have viewed the site in total for different time ranges (to include recurring visits), same for per session.

In other words, I'm trying to provide a report that groups users into buckets of time spent on site (to include return visitors) and sessions. The time bands are along the lines of 0 - 10 seconds, 10 - 59 seconds, 1 - 5 minutes, etc.

The solution I've tried to set up a segment with the condition for Time on Page for Sessions/Users per session/user to be greater than 100 seconds for example. Despite the name "Time on Page", does that include other page views? The helper text appears to suggest so, but I'd just like confirmation that this is the correct way of doing it.

3 Answers 3


You can use the free service "Clicky" which integrates with the GA data and gives you an easy to use breakdown of all users visiting a certain page, with their respective time on that page.


The Time on Page metric is an average of all the page views by the same or multiple users' sessions on that individual page.

What you need is drilldown to just the particular page you are measuring and view the time spent on page metric on there.

Keep in mind that users who go to just one page normally skew that metric. If you want a true count, you should also set up a timer event to trigger if a user spend more than x seconds on a page. This is possible using Tag Manager, and Glenn Gabe posted quite a handy tutorial on how to measure such true page views without considering them as bounces.

  1. Google Analytics as you have heard by now will never give you the exact time spent by each user because of the limitations in its approach to tracking user sessions.
  2. It will only report a user active as long as they interact in some way with the page firing events or switching between different pages
  3. But THIS js library (disclaimer not mine) seems to track time spent by the user on each page
  4. HERE is a demo of how the JS library actually times your engagement on the page
  5. Your best BET is to fire a custom event when the user leaves the browser or page

This way you capture the total time and then fire the event when the user quits. You can send this to your server from where you can use Google Analytics Measurement protocol or API to fire the event from the server-side which means your data will be accurate regardless of ublock or adblocker installed

window.onbeforeunload = function (event) {
    xmlhttp=new XMLHttpRequest();
    xmlhttp.open("POST","ENTER_URL_HERE", true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds();

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.