Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Track how long a user stays on a page?

How can I track how long a user stays on a page before they request another or simply leave the site?

Basically, I want to do a check, if a user stays on the page for 20 minutes or longer, then do something.

I believe this would require php and javascript, but I am not exactly sure how to accomplish it.

Maybe using this $_SERVER in php to get the time of execution, and then get a timestamp when the user clicks somewhere else and simply compare the two?

like image 976
Maaz Avatar asked Mar 21 '13 21:03

Maaz


1 Answers

You can do all this with simple javascript.
For a single page:

window.setTimeout(function(){
// Do stuff after 20 minutes of loading the page
// Then using jQuery you can call a PHP script to do stuff like so:
$.ajax({
     url: '/myScript.php',
     method: 'POST',
     success: function(result){
        //The request was successful and the output is stored in a variable: result
     },
     complete: function(){
        //Do stuff when the request is completed (Ignores if success or not)
     },
     beforeSend: function(){
        //Do something before the request is sent
     }
});
}, 20 * 60 * 1000); //This is in milliseconds that's why I use the equation 


For multiple pages:
I suggest you set a cookie with the time a user hits a page and on each page check if the cookie exists. If it exists run a query every x ammount of seconds to see if the 20 minutes have passed since the cookie has been created.


For full Ajax documentation head to: http://api.jquery.com/jQuery.ajax/

like image 123
Dylan Grech Avatar answered Oct 15 '22 05:10

Dylan Grech