Javascript 如何捕获用户与网站的交互?
如何捕获网站上的用户交互?用户已单击的链接数。用户来自何处。我想创造我自己的逻辑。我不想使用任何统计工具。我怎样才能做到这一点Javascript 如何捕获用户与网站的交互?,javascript,ajax,seo,Javascript,Ajax,Seo,如何捕获网站上的用户交互?用户已单击的链接数。用户来自何处。我想创造我自己的逻辑。我不想使用任何统计工具。我怎样才能做到这一点 提前感谢从web服务器日志文件开始,深入了解其格式,尝试一些简单的统计数据。然后,您可能需要通读统计工具(如awstats)的代码,以增强您在这方面的视野。您可以通过referer(document.referer)获得用户的来源地。 如果您有某种会话或标记用户(通过cookies),则可以通过捕获onclick事件来检查单击了哪些链接。但不要点击每个链接,只使用事件捕
提前感谢从web服务器日志文件开始,深入了解其格式,尝试一些简单的统计数据。然后,您可能需要通读统计工具(如awstats)的代码,以增强您在这方面的视野。您可以通过referer(document.referer)获得用户的来源地。
如果您有某种会话或标记用户(通过cookies),则可以通过捕获onclick事件来检查单击了哪些链接。但不要点击每个链接,只使用事件捕获技术。在jQuery中,这将是:
$('a')
.livequery('click', function(event) {
alert('clicked');
return false;
});
如果您想捕获当链接消失时单击的链接,您应该放置onunload事件,该事件将向您的服务器发送有关单击链接的数据 我是一名asp.net开发人员。但我认为这种技术会一直有效。如果您想知道用户从哪里来到您的站点,您可以使用某种跟踪查询字符串变量www.mysite.com?IMFrom=something。所以当你在第三方网站上发布你的链接时,比如说谷歌。发布链接为www.mysite.com?google=traficfromgoogle。你可能有来自其他网站的交通费。对于每个查询字符串,都有不同的querystring变量。您还可以为所有发送trafic给您的网站使用某种唯一id。现在创建跟踪函数,该函数将跟踪此querystring变量。在每次请求期间调用此函数的位置使用此函数。
现在,您可以为每个具有此类查询字符串的请求设置一些自定义逻辑。我认为您不需要捕获此信息,因为它很可能已经由web服务器本身在web服务器日志中捕获。您只需要找到可以分析日志的软件,并为您提供一些好的指标。这方面有很多软件包。我知道这并不是在创建自己的逻辑,但如果您决定不想解析服务器日志,您可以尝试一种新的服务,该服务正在尝试升级google analytics:。这是实时分析,他们有一个免费的有限帐户,所以你可以在升级前试用
我还没有尝试过他们的api,但是我想你可以让他们从你的网站上收集数据,然后在你把数据拿回来后用它做一些有趣的事情 我知道有两种方法:
这是这样的:
service.php?event=pageview&time=127862936&userId=70®istered=true
window.onbeforeunload = function(){
sendStats({event:'onbeforeunload'});
}
function sendStats(statsJSON){
var url = [];
for (var key in statsJSON) {
// make sure that the key is an actual property of an object, and doesn't come from the prototype
if( statsJSON.hasOwnProperty(key) ){
var sign = (!url[0]) ? '?' : '&';
url.push(sign);
url.push(key + '=');
url.push( encodeURI(statsJSON[key]) );
}
}
var time = new Date().getTime();
url.push('&time=');
url.push(time);
var stat = new Image();
stat.src = clientHost + 'stats.gif' + url.join('');
}
这样,您的服务可以处理数据service.php?event=pageview&time=127862936&userId=70®istered=true
window.onbeforeunload = function(){
sendStats({event:'onbeforeunload'});
}
function sendStats(statsJSON){
var url = [];
for (var key in statsJSON) {
// make sure that the key is an actual property of an object, and doesn't come from the prototype
if( statsJSON.hasOwnProperty(key) ){
var sign = (!url[0]) ? '?' : '&';
url.push(sign);
url.push(key + '=');
url.push( encodeURI(statsJSON[key]) );
}
}
var time = new Date().getTime();
url.push('&time=');
url.push(time);
var stat = new Image();
stat.src = clientHost + 'stats.gif' + url.join('');
}
然后sendStats函数分解JSON并构建一个要发送到服务器的查询,如下所示:
service.php?event=pageview&time=127862936&userId=70®istered=true
window.onbeforeunload = function(){
sendStats({event:'onbeforeunload'});
}
function sendStats(statsJSON){
var url = [];
for (var key in statsJSON) {
// make sure that the key is an actual property of an object, and doesn't come from the prototype
if( statsJSON.hasOwnProperty(key) ){
var sign = (!url[0]) ? '?' : '&';
url.push(sign);
url.push(key + '=');
url.push( encodeURI(statsJSON[key]) );
}
}
var time = new Date().getTime();
url.push('&time=');
url.push(time);
var stat = new Image();
stat.src = clientHost + 'stats.gif' + url.join('');
}
使用谷歌分析并使用API连接站点元素 录制并重播web 这有助于: -在浏览器中记录用户交互/事件
-只有在出现错误时才将录制发送到后端链接和onunload上的实时事件可能不会给您足够的时间在加载新页面之前跟踪/记录服务器上某个持久位置的数据。