如何跟踪1页网站的访问持续时间

时间:2012-03-17 17:22:27

标签: php javascript jquery matomo

我有一个网站页面,其中大部分访问者都会花时间。该站点使用PHP与Codeigniter和jQuery。

问题:但是,我相信像Piwik这样的跟踪系统会计算在页面上花费的时间,将访问者离开该页面的时间减去页面他加载页面。

有解决方法吗?也许使用javascript来触发跟踪系统,以便它知道访问者正在离开页面?

2 个答案:

答案 0 :(得分:2)

编辑:我在$ id中添加了一些“salting”,我不知道......我觉得它更独特,尽管我认为由于它有类似的ID会有点不太可能使用微秒但只是为了更加确定

像这样的东西 JQuery的: Ajax每隔10秒向StayAlive.php发出请求

function pingPing(){
    $.ajax(
    {
        type:'GET',
        url:'StayAlive.php', 
        success: function() 
        {
            setTimeout(pingPing, 10000);
        }
    }
}


PHP:StayAlive.php

<?php
function newUser(){
  $id=sha1($_SERVER['HTTP_USER_AGENT'].microtime().$_SERVER['REMOTE_ADDR']);
  setcookie("id", $id, time()+3600*24*365);
  //create new row in the database for that $id

}
if (isset($_COOKIE["id"])){
  //check if the id is in the database
  //if yes => time_spent+=10
  //if no => newUser();
}
else
  newUser();
?>

答案 1 :(得分:2)

当用户离开页面时,您可以使用以下命令向页面发送Ajax请求(它们不一定要加载新页面)。

$(window).unload( function () {
$.ajax({
    type: "POST",
    url: "yourpage.php",
    data: {
        command: "disconnect"
    },
    dataType: "json",
    async: false,
    success: function(data) {}
});
});

您可以创建一个javascript,在加载页面时生成用户的时间戳,并在用户离开时将其传递给.php页面。计算时间戳的差异,计算出他们在页面上花了多长时间。