Piwik 如何跟踪 link 点击事件?

how does Piwik track link click events?

我个人不使用 Piwik。我已经开发了一个 JavaScript tool/library 用于在 SharePoint 中创建菜单系统,并且使用我的库的人询问有关合并 Piwik 的问题。

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

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

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

看看 Piwik 的 JS tracker source code

例如:

  • enableLinkTracking()

    The default behaviour is to use actual click events. However, some browsers (e.g., Firefox, Opera, and Konqueror) don't generate click events for the middle mouse button.

    To capture more "clicks", the pseudo click-handler uses mousedown + mouseup events. This is not industry standard and is vulnerable to false positives (e.g., drag events).

  • 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);
            }
        }
    

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

在此处查看带有代码片段和屏幕截图的解决方案:http://pen-ultima.blogspot.com/2018/01/matomo-internal-link-track.html