繁体   English   中英

Google Analytics(分析)点击事件无效

[英]Google Analytics click event doesn't work

我在页面上有以下按钮:

<a id="DownloadPlatform" href="/some-page-1.html">Download</a>

我想在单击按钮时收紧GA事件,然后重定向到某个页面。 当前,没有单击事件用于按钮单击。 我打开了控制台,粘贴了代码以测试事件,但是我得到的结果令人惊讶,无法解释。 但是,让我们先从代码开始:

_gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]);

像魅力一样工作,我在GA中获得了一个事件(实时跟踪)。

$('#DownloadPlatform').click(function(){ 
    _gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]);   
});

没有工作! 但是我被重定向到/some-page-1.html。 没有错误。

$('#DownloadPlatform').click(function(e){ 
    e.preventDefault(); 
    _gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]);   
});

确实有效! 但是正如预期的那样,我没有重定向到页面。

$('#DownloadPlatform').click(function(e){ 
    e.preventDefault(); 
    _gaq.push(['_trackEvent', 'Downloaded', 'Platform [Web]', window.location.pathname]); 
    window.location.href='/some-page-2.html';   
});

最后,我被重定向到页面,但未记录GA事件。 谁能解释这种奇怪的行为,可能是什么原因造成的?

您面临的问题是,当您使用Google Analytics(分析)跟踪事件时,它需要将事件发送到其服务器。 由于您在跟踪事件时也会重定向页面,因此Google Analytics(分析)有时会在成功发送事件之前被切断。

因此,这一切都取决于网络,并且首先发生。 您是提供新页面的服务器,还是Google收到跟踪事件的服务器。

那么我们该如何解决呢?

您可能倾向于发送跟踪事件并在setTimeout重定向页面,但这不是一个好主意,因为首先您不能确定Google尚未收到该事件。 然后,您可能倾向于将超时设置为更长,但最终,通过人为增加页面加载时间,只会给用户带来糟糕的体验。

可行的解决方案可能是在重定向到的URL中包含一个特殊参数,然后让新页面查找该参数,然后发送track事件。

/some-page-2.html?track=myEventToTrack

另一种方法是使用Google Analytics(分析)的PHP库并跟踪事件服务器端,这显然会带来更多工作,因此这是为项目选择正确解决方案的一种情况。

更新(更好的解决方案)

Google现在提供事件的回调,以下代码提供了更强大,更优雅的解决方案。

ga('send', 'event', {
    'eventCategory': 'a',
    'eventAction': 'b',
    'eventLabel': 'c',
    'eventValue': 1,
    'hitCallback': function () {
        document.location = '/foo';
    }
});
<script>
var trackOutboundLink = function(url) {
   ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
     function () {
     document.location = url;
     }
   });
}
</script> 
<a href="http://www.somepage.com" onclick=”trackOutboundLink(‘http://www.somepage.com’); return false;">Check out somepage.com</a>

hitCallback字段,用于告知Google Analytics(分析)用户互动何时完成。 这样可以确保GA在用户离开您的网站之前收集了互动数据。 您也可以使用以下一种:

ga('send', 'pageview', {
  'page': '/some-page',
  'hitCallback': function() {
    window.location.replace = "[new url]";
  }
});

希望这可以帮助!!

ANKIT

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM