7

构建单页/胖客户端应用程序,我想知道使用http://piwik.org/包含和跟踪的最佳实践是什么

我想以一种架构合理的方式使用 Piwik,并且将来可以用不同的库替换。

使用 Piwik 进行跟踪似乎有两个基本选项:

  1. 用命令填充一个全局_paq数组,然后加载脚本(我不清楚如何记录未来的“页面”视图或更改变量)
  2. 获取和使用var myTracker = Piwik.getTracker()

_paq方法:

myApp.loadAnalytics = function() { /* dynamically insert piwik.php script */ }
myApp.track = function(pageName) {
  window._paq = window._paq || [];
  _paq.push(['setDocumentTitle', pageName]);
  _paq.push(["trackPageView"]);
}
myApp.loadAnalytics()

// Then, anywhere in the application, and as many times as I want (I hope :)
myApp.track('reports/eastWing') // Track a "page" change, lightbox event, or anything else

.getTracker()方法:

myApp.loadAnalytics = function() { /* dynamically insert piwik.php script */ }
myApp.track = function(pageName) {
  myApp.tracker = myApp.tracker || Piwik.getTracker('https://mysite.com', 1);
  myApp.tracker.trackPageView(pageName);
}
myApp.loadAnalytics()

// Then, anywhere in the application, and as many times as I want (I hope :)
myApp.track('reports/eastWing') // Track a "page" change, lightbox event, or anything else

这些方法在功能上是否相同?对于单页应用程序,一个比另一个更受欢迎吗?

4

2 回答 2

1

使用 .getTracker 的完整解决方案如下所示: https ://gist.github.com/SimplGy/5349360

仍然不确定使用_paq数组是否会更好。

于 2013-04-09T21:11:54.560 回答
1

要使用完全独立于您的应用程序的跟踪库(例如 piwik),您需要编写一个将函数代理到 Piwik 跟踪器的小类。稍后,如果您从 Piwik 更改为 XYZ,您可以简单地更新此代理类,而不是更新执行某些跟踪的多个文件。

异步代码对于您的应用来说是必须的(例如,调用任何 'track*' 方法都会发送请求)

于 2013-04-12T02:07:43.420 回答