我试图以类似于以下的方法跟踪在我的网站上单击链接时的事件。
<a href="/example" class="track">Example</a>
<script type="text/javascript">
jQuery(function($) {
// track clicks on all anchor tags that require it
$('a.track').live('click', function(e) {
// send an AJAX request to our event tracking URL for the server to track it
$.get('/events/track', {
url: $(this).attr('href'),
text: $(this).text()
});
});
});
</script>
我遇到的问题是新页面加载会中断 AJAX 请求,因此有时不会跟踪这些事件。我知道 Google Analytics 有一个_trackPageview
不过,可以附加到 onclick 事件的函数,这似乎不是问题。我想知道他们的调用与我的调用有什么不同,我看到了这种竞争条件,而 GA 没有。例如。:
<a href="/example" onclick="javascript:pageTracker._trackPageview('/click/example');">Example</a>
请注意,我并不担心 AJAX 请求的结果...我只是希望它能够 ping 服务器,告知发生了事件。
(另外,我希望我会得到至少一个答案,即简单地从服务器端而不是客户端跟踪新页面加载。这对于这个问题来说不是一个可接受的答案。我正在寻找诸如如何谷歌分析'trackPageview
无论是否加载新页面,该函数都适用于锚标记的单击事件。)
运行谷歌的trackPageview
通过像 Charles 这样的代理的方法显示调用trackPageview( )
使用各种参数集从 Google 服务器请求像素,这就是大多数分析包最终实现此类功能的方式(Omniture 也是如此)。
基本上,为了解决异步请求未完成的问题,他们让客户端请求图像并在服务器端处理这些请求中传递的参数。
为了您的目的,您需要实现同样的事情:编写一个实用程序方法,从您的服务器请求图像,通过 URL 参数传递您感兴趣的信息(例如 /track.gif?page=foo.txt)。 html&link=Click%20Me&bar=baz);然后服务器会将这些参数记录在数据库中并发回 gif。
之后,它只是对您收集的数据进行切片和切块以生成报告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)