【问题标题】:how does Piwik track link click events?Piwik 如何跟踪链接点击事件?
【发布时间】:2015-08-03 15:23:15
【问题描述】:

我个人不使用 Piwik。我开发了一个 JavaScript 工具/库,用于在 SharePoint 中创建菜单系统,使用我的库的人询问是否要合并 Piwik。

根据我的阅读,我可以看到 Piwik 捕获/跟踪 click 事件。我怀疑默认情况下它会为具有href 属性的<a> 标签执行此操作。

我的 JS 库使用 onclick 事件创建 <div> 元素。我已阅读并了解我可以使用 Piwik 的 trackLink 函数手动触发点击事件。出于多种原因,我想避免这样做。

所以我想看看 Piwik 是如何准确跟踪点击事件的,这样我就可以弄清楚如何以更一般的方式整合它。我想也许我可以通过创建一个<a> 元素并执行它的click 事件来使我的onclick 事件伪造一些东西,但不确定这是否可行。

【问题讨论】:

    标签: javascript matomo


    【解决方案1】:

    看看 Piwik 的JS tracker source code

    例如:

    • enableLinkTracking()

      默认行为是使用实际的点击事件。但是,某些浏览器(例如 Firefox、Opera 和 Konqueror)不会为鼠标中键生成单击事件。

      为了捕获更多“点击”,伪点击处理程序使用 mousedown + mouseup 事件。这不是行业标准,容易受到误报(例如拖动事件)的影响。

    • addClickListener()

          function addClickListener(element, enable) {
              addEventListener(element, 'click', clickHandler(enable), false);
      
              if (enable) {
                  addEventListener(element, 'mouseup', clickHandler(enable), false);
                  addEventListener(element, 'mousedown', clickHandler(enable), false);
                  addEventListener(element, 'contextmenu', clickHandler(enable), false);
              }
          }
      

    【讨论】:

    • 问题是我认为enableLinkTracking() 仅适用于加载 Piwik 时存在的链接。如何让它跟踪加载 Piwik 后动态创建的链接?我试过 _paq(['trackEvent', url, 'link']); 但这不起作用。
    【解决方案2】:

    IMTheNachoMan,您非常接近解决方案。 Matomo (Piwik) 包含 Javascript trackEvent(category, action, [name], [value])。通过 onclick 事件和_paq.push(['trackEvent', 'Event Category', 'Event Action', 'Event Name']) 你可以使用它。

    在此处使用代码 sn-ps 和屏幕截图查看此解决方案:http://pen-ultima.blogspot.com/2018/01/matomo-internal-link-track.html

    【讨论】:

    • 当您有足够的代表时,您应该将此答案作为评论添加到this 答案。欢迎来到 SO。感谢您发布答案。请完成游览并享受 SO ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多