使用Piwik作为单页应用程序

时间:2013-04-09 16:44:40

标签: javascript analytics single-page-application matomo fat-client

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

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

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

  1. 使用命令填充全局_paq数组,然后加载脚本(我不清楚如何记录未来的“页面”视图或更改变量)
  2. 获取并使用var myTracker = Piwik.getTracker()
  3. _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
    

    这些方法在功能上是否相同?对于单页应用程序,是否优先于另一个?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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