javascript - 将 Piwik 用于单页应用程序

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

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

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

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

  1. 用命令填充全局 _paq 数组,然后加载脚本(我不清楚如何记录 future 的“页面” View 或更改变量)
  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

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

最佳答案

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

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

关于javascript - 将 Piwik 用于单页应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15907719/

相关文章:

css - 如何在单页 MEAN 堆栈应用程序中使用 addy osmani 的 uncss

javascript - 用javascript实现定时器倒计时

javascript - switch 语句内的 ng-switch 按钮

cookies - _gat (Google Analytics) cookie 的用途是什么?

reactjs - React SPA 中的 msal - 使用从 AcquireTokenRedirect 收到的访问 token

javascript - Turbolinks 总是像往常一样加载页面

javascript - 按位求反和按位异或 1 不等价?

JavaScript 设置图像/元素源/属性未更新图像/元素

ascii - 将 PI 数字转换为文本字符串

firebase - Firebase Crashlytics 可以显示 Analytics 中的事件吗?