我希望跟踪用户在网站上的平均时间(与Google分析相同),以便进行内部管理。
最简单的方法是什么?
答案 0 :(得分:20)
您可以通过以下方式获得时间:
如果需要,我可以编写一个示例脚本。
<强>更新强>
<!DOCTYPE html>
<html>
<head>
<title>Collect time</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(function()
{
var start = null;
$(window).load(function(event) {
start = event.timeStamp;
});
$(window).unload(function(event) {
var time = event.timeStamp - start;
$.post('/collect-user-time/ajax-backend.php', {time: time});
})
});
</script>
</head>
<body>
</body>
</html>
后端脚本:
<?php
$time = intval($_POST['time']);
if (!file_exists('data.txt')) {
file_put_contents('data.txt', $time . "\n");
} else {
file_put_contents('data.txt', $time . "\n", FILE_APPEND);
}
但正如我所说它在Opera浏览器中不起作用
答案 1 :(得分:5)
我能想到的主要方式:
当用户首次点击页面时,您会记录他们的IP地址,加载的页面和时间。然后,使用一些Javascript和AJAX,当他们离开页面时,使用unload
事件发送到记录页面的AJAX处理程序以及它们何时离开。
除了会话之外,您还需要使用某种ID来存储页面访问。假设我打开了5个主页实例,您需要单独记录每个实例。所以,像这样:
index.php
代码:2345
)如果他们再次访问index.php
,您会生成另一个代码,例如36789
。使用生成随机GUID的东西是最好的,这样你就可以(基本上)忽略同一IP /页面/代码组合上任何碰撞的可能性。
答案 2 :(得分:2)
使用PHP确实没有一种有效的方法,因为PHP是服务器端的,并且无法确定页面何时关闭。您需要使用javascript来确定这一点。
我要做的是使用javascript在window.onload
上启动计时器,然后在window.onunload
上结束计时器。然后你可以存储数据并用它做你想做的事。
答案 3 :(得分:0)
$(window).unload是一个非常好的跟踪用户离开页面的功能。
但有一点是当窗口卸载发送ajax时它现在正常工作,当用户离开页面时ajax没有完成。所以你需要向ajax添加一个属性(async:false),代码是打击:
$.ajax({
type: 'POST',
async: false,
url: '/collect-user-time/ajax-backend.php',
data: {time: time}
});
答案 4 :(得分:0)
将timeonsite JS用于Web和移动浏览器。它可以准确地跟踪现场时间。
<script type="text/javascript">
var Tos;
(function(d, s, id, file) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s);
js.id = id;
js.onload = function() {
var config = {
trackBy: 'seconds'
};
if (TimeOnSiteTracker) {
Tos = new TimeOnSiteTracker(config);
}
};
js.src = file;fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'TimeOnSiteTracker', 'timeonsitetracker.min.js'));
</script>
在页面结尾,致电
<script>
Tos.getTimeOnPage();
//Response ->
{
TOSId: 1129620185532,
TOSSessionKey: "14802525481391382263",
TOSUserId: "anonymous",
title: "Test application - TimeOnSiteTracker",
URL: "http://tos-localdata.chennai/home.php"
entryTime: "2016-11-27 13:15:48.663",
currentTime: "2016-11-27 13:17:31.663",
timeOnPage: 103,
timeOnSite: 0,
timeOnPageTrackedBy: "second",
timeOnPageByDuration: "0d 00h 01m 43s",
timeOnSiteByDuration: "0d 00h 00m 00s",
trackingType: "tos",
}
</script>
就这么简单
即使在不支持本机 window.unload() 事件的移动浏览器(如iPhone,iPad,移动Safari等)中,它似乎也可以正常工作。