实时Javascript事件跟踪(Javascript统计)

实时Javascript事件跟踪(Javascript统计),javascript,events,google-analytics,tracking,Javascript,Events,Google Analytics,Tracking,web上有很多实时web统计服务(w3counter histats gostats)。当请求页面时,它们只计算一次,但我想做的是跟踪javascript函数/事件,因为我的网站是完全ajax的。所以我想要像google analytic的事件跟踪器()一样的东西,但是实时,非常简单。它可以托管,也可以只是一个php脚本。谢谢 示例事件 用户创建了一些东西 用户删除了一些东西 ajax错误发生了 浏览器浏览器 用户登录 我找到了我的答案请看一看如果您使用jQuery,您可以在事件期间运行代码

web上有很多实时web统计服务(w3counter histats gostats)。当请求页面时,它们只计算一次,但我想做的是跟踪javascript函数/事件,因为我的网站是完全ajax的。所以我想要像google analytic的事件跟踪器()一样的东西,但是实时,非常简单。它可以托管,也可以只是一个php脚本。谢谢

示例事件
  • 用户创建了一些东西
  • 用户删除了一些东西
  • ajax错误发生了
  • 浏览器浏览器
  • 用户登录

我找到了我的答案请看一看如果您使用jQuery,您可以在事件期间运行代码

使用Google Analytics和_trackPageview(),如所述


编辑:如果这还不能为您提供您想要的解决方案,我认为您正在寻找一项尚不存在的服务,在这种情况下,请接受Jason的
$.ajaxSuccess()
建议,并提出您自己的建议。

这就是我想要的,不幸的是,这不是免费的,但我希望我能找到一个。


实现自己的并不难。当发生如下事件时,您只需向服务器发送请求:
tracker.gif?action=create&what=sth
tracker.gif?action=error&what=k_未定义
,等等

然后您解析服务器日志以获取统计信息。(或者通过
tracker.php?action=create&what=sth将请求直接发送到数据库中

由于您可以控制站点,因此当用户登录或ajax请求失败时,可以很容易地发出这些请求

对于错误处理,您可以使用
窗口。onerror

// send a request about an event to the server
function fireEvent(action, message, options) {
  var loggerUrl = "/tracker.gif", parameters;
  options = options || {};
  options.url = options.url || window.location.href;
  options.user_agent = navigator.userAgent;
  options.message = message;
  for (var i in options) {
    if (options.hasOwnProperty(i)) {
      parameters += "&" + i + "=" + encodeURIComponent(options[i]);
    }
  }    
  new Image().src = loggerUrl + parameters;
}

// log script errors
window.onerror = function(errorMessage, url, line) {   
  fireEvent("error", errorMessage, {
    url: url, 
    line: line
  });
  return true;
};

// example event on the page
fireEvent("ajaxError", "XY page failed to load");
(注意:
window.onerror
在safari中不可用)


更新 下面是PHP解析器的概念证明:

$i = 1;
$d = file_get_contents("log.txt");
$requests = explode("\n", $d);
foreach ($requests as $req) {
  $pos = strpos($req, "tracker.gif");
  if ($pos === false) continue;
  $start_pos = strpos($req, "?", $pos);
  $end_pos = strpos($req, " ", $start_pos); // can also be " HTTP"
  $length = $end_pos - $start_pos;
  $req = substr($req, $start_pos+1, $length);
  $exprs = explode("&", $req);
  echo $i . ".<br>"; // request number
  $i += 1;
  foreach ($exprs as $expr) {
    list($name, $value) = explode("=", $expr);
    echo $name . " =>" . $value . "<br>"; // key => value
  }
}
$i=1;
$d=文件内容(“log.txt”);
$requests=explode(“\n”,$d);
foreach($requests as$req){
$pos=strpos($req,“tracker.gif”);
如果($pos==false)继续;
$start_pos=strpos($req,“?”,$pos);
$end_pos=strpos($req,“,$start_pos);//也可以是“HTTP”
$length=$end\u pos-$start\u pos;
$req=substr($req,$start\U pos+1,$length);
$exprs=分解(&,$req);
echo$i.。
;//请求编号 $i+=1; foreach($exprs为$expr){ 列表($name,$value)=分解(“=”,$expr); echo$name。“=>”$value。“
”;//键=>值 } }
如果你在谷歌上搜索“实时分析”,有很多选择。但他们中的大多数人是有报酬的


我推荐mixpanel和chartbeat。

如果有人还在找,我会非常乐意使用它作为开源替代品

对于跟踪事件,有一个好的JavaScript客户端,带有

对于事件跟踪,我在需要时使用此普通函数:

_paq.push( [ 'category', 'action', 'name', 'value' ] );

然后,如果您在服务器上托管Piwik,您可以从Piwik的web视图导出所有数据,或者直接查询数据库以检索信息。

我问的是,是否有这样的php脚本,或者是否有这样的免费服务。这与我的问题无关。我问,将所有这些事件和错误记录到数据库并实时报告的最佳方式是什么。这两者之间有什么关系?我不知道你在用什么统计追踪程序。我只是给了你一个方法来运行代码来跟踪什么时候发生的事情。如果你问我的话,完全相关。我没有问如何检测AjaxSuccess。我问过如何跟踪我所有的javascript事件,记录和报告它们。这是一个相关的,自己动手的解决方案。@oguz当然你没有问过如何检测ajax成功。那将是一个愚蠢的、自我回答的问题。你问“我的页面是ajax。我需要一种跟踪点击的方法。我该怎么做?”我回答说,“在ajaxsuccess事件期间运行你的点击跟踪代码”。我不会一步一步地告诉你如何跟踪你自己的分析!我怎么知道你的数据库,等等?去kissmetrics.com看看,这是一个私人测试版,但它是一个非常酷的有趣的替代解决方案,我以前没有见过(tracker.gif)。谷歌分析也做同样的事情。有趣意味着你要尝试一下?是的。我现在正在测试它,但我当前的问题是解析日志文件,你有没有办法轻松解析它。x.x.x.32---[08/Jul/2010:16:58:24-0700]“GET/example.com/favicon.ico HTTP/1.1“200 356”-“Mozilla/5.0(Macintosh;U;Intel Mac OS x 10_64;en US)AppleWebKit/533.4(KHTML,像Gecko)Chrome/5.0.99 Safari/533.4”------这是我喜欢的一行,太好了。谢谢。