Google Analytics不会跟踪链接点击事件

时间:2014-01-23 09:50:50

标签: javascript jquery asp.net-mvc web google-analytics

我目前正在使用analytics.js(较新版本的GA),我正在尝试跟踪我网站上的所有类型的事件,包括当用户点击指向外部网址的锚标记时。 我目前正在使用此设置:

 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-KEY-HERE', { 'alwaysSendReferrer': true, 'allowAnchor': true });

当我点击这样的链接时发送事件:

$(document).on("click", ".anchor-class", function (event) {
    label = //get data from anchor element here ...  
    ga('send', 'event', 'Link Clicked', 'Click Details', label);;
    return;
    }
});

并且这不会向GA发送任何内容(即使事件处理程序正在调用 ga(发送...)方法)。 但是,如果我在函数开头使用 event.preventDefault(); 这个确切的技术,则会发送事件并将其显示在GA仪表板中。

为了让这项工作正常,我错过了一些设置吗?

3 个答案:

答案 0 :(得分:2)

使用hitCallback功能:

  $(document).on('click','a', function(event){
    event.preventDefault();
    var label = $(this).attr('href');

    ga('send', 'event', 'Link Clicked', 'Click Details', label, {
      'hitCallback': function(){
        window.location.href = label;
      }
    });
  });

答案 1 :(得分:1)

正如Blexy所指出的,正确的方法是使用命中回调。但是,您还需要考虑用户可能会使用某些隐私保护工具(例如Ghostery)阻止Google Analytics,在这种情况下,点击回调将永远不会被执行。以下文章解释了如何正确实现这一点:

http://veithen.github.io/2015/01/24/outbound-link-tracking.html

答案 2 :(得分:0)

我们目前遇到此问题,并将我们的分析代码从网站移植到GTM中。另一个问题是,我们有数百个网站无法向他们发布新代码以弃用页面分析,但我们已经有了GTM。

我们能够找到绑定到click事件的jQuery事件,并在GTM中编写代码,通过精确的事件处理程序删除这些单击按钮上的jQuery事件。然后我们能够应用标准GTM点击触发器和标签,因此我们没有获得双重事件。

假设您可以轻松地从页面中删除代码,以下内容应该可以很好地使用GTM。

当用户点击某个给定元素时,这会触发一个事件进行分析,它将使任何导航等待,直到相应的标记首先完成触发,然后让页面离开。

GTM实施

现在使用较新的GTM,这是快速而标准的方式。

预安装

变量

  • 您需要访问Click Element内置变量。您可以在Variables --> Configure --> Click Element
  • 下启用此功能
  • 同时启用Page PathPage URL内置变量。这稍后用于帮助您确定要在哪个页面上运行触发器。
  • 看起来你正试图从事件的点击元素中获取一些文字。如果是这样,您应该创建一个自定义JavaScript变量。这只是获取元素的内部文本,但您也可以获得一个属性或您在此步骤中寻找的任何其他数据。
  • 名称:点击元素 - 内部文字
  • 变量类型:自定义JavaScript
  • 自定义JavaScript function() { return {{Click Element}}.innerText; }

触发器

创建新触发器

  • 触发类型:点击 - 只需链接
  • 等待代码:启用此选项,这是您正在寻找的魔力。
    • 最长等待时间:将此设置为您认为合适的内容,以及您是否可以放弃部分分析以获得更好的用户体验。想象一下移动设备上3G用户的等待时间。是5000毫秒足够,不够,也许10000毫秒。用户可能知道他们的连接不好。
  • 在所有这些条件为真时启用此触发器
    • 注意:您应该只在需要运行它的页面上运行它。如果出现性能下降以及他们的“了解更多”和#34; Google并不是很清楚。什么也没说。
    • 如果您需要在所有页面上运行,请按以下方式配置:
      • Page Path matches RegEx .*
    • 否则你应该写点:
      • Page Path matches RegEx ^/path/my-page$具体页面
      • Page Path matches RegEx ^/path/my-page/.*
      • 注意:我不确定这些正则表达式是否正确,我不确定您是否会获得带有正在进行或附加的正斜杠/的路径,或者您是否需要锚点 - 通常最好明确锚点,这样你就不会有任何有趣的事情。
  • 触发此触发器:部分链接点击
  • 当事件发生且所有这些条件都为真时触发此触发器。选择一个符合您需求的产品,并根据需要进行更改。
    • Click Element matches CSS selector a
    • 或者更具体的东西?
    • Click Element matches CSS selector .container .calls-to-action a
    • 也许只在外部链接上?假设所有内部链接都是相关的路径。
    • Click Element matches CSS selector a[href^="http"]

标签

创建新标签

  • 代码类型:事件
  • 类别:链接点击
  • 操作:点击详细信息
  • 标签:{{点击元素 - 内部文字}}
  • Google Analytics设置:最好将这些设置用于可重用性和一致性,而不是手动设置它们。
  • 触发触发器:您在上面创建的链接点击触发器。