是的,我了解Google Analytics。我们将其用于我们的整体网站指标,并且我知道我们可以跟踪各个链接。然而,我们需要非常具体的链接跟踪解决方案,我们需要能够实时跟踪数据提供给我们的web应用程序,所以我写了我自己的解决方案:jQuery:使用PHP进行点击跟踪
的jQuery:
$.fn.track = function() {
var source, url, name, ref, $this;
$this = $(this);
if (window.location.search.substring(1) != '') {
source = window.location.pathname + "?" + window.location.search.substring(1);
} else {
source = window.location.pathname;
}
url = jQuery.URLEncode($this.attr('href'));
name = $this.attr('name');
ref = jQuery.URLEncode(source);
$this.live('click', function (click) {
click.preventDefault();
$.post('/lib/track.php', {
url: url,
name: name,
ref: ref
}, function() { window.location = $this.attr('href'); });
});
};
.. 。使用jQuery URLEncode插件(http://www.digitalbart.com/jquery-and-urlencode/)。
现在,这段代码可以在我的PHP后端和我的机器上正常工作,但它似乎并不适用于其他人。有时通过jQuery传入的参数不会被传入,导致数据库中没有记录,其中没有name
,url
或ref
。
对于我的生活,我无法弄清楚为什么会发生这种情况;我知道$.post
是触发的,因为数据库中有记录(在PHP中,我还记录了请求的IP以及时间戳),但是在很多情况下,PHP脚本正在从jQuery接收空白$_POST
变量。
我已经在我的工作场所所有浏览器上测试过它,并且它们都适合我;然而,创建的所有记录(不是我的计算机)中约75%都是空白的(大多数记录使用的都是我使用的浏览器)。
为什么会发生这种情况?
显然,你已经投入了一些时间在此解决方案,但以防万一;你见过Mixpanel吗?撇开成本,它确实是你似乎试图做的...... – Mathew 2009-12-11 18:09:26