Javascript 谷歌分析跟踪文件下载

Javascript 谷歌分析跟踪文件下载,javascript,google-analytics,Javascript,Google Analytics,我想追踪一下,一个文件通过谷歌分析下载的频率 这是我在每个站点中包含的代码: <script> (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.a

我想追踪一下,一个文件通过谷歌分析下载的频率

这是我在每个站点中包含的代码:

<script>
  (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', 'XXXXXXXXXX', 'url');
  ga('send', 'pageview');
</script>

(函数(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]| |函数(){
(i[r].q=i[r].q | |[]).push(参数)},i[r].l=1*新日期();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(窗口,文档,“脚本”,“www.google-analytics.com/analytics.js”,“ga”);
ga(“创建”、“XXXXXXXXX”、“url”);
ga(‘发送’、‘页面浏览’);
以下是我的链接的外观:

<a href="File.zip" onclick="ga('send', 'pageview', '/File.zip');">Some text</a>

如果用户单击该链接,则该链接无效。如果我复制JavaScript并在控制台中手动输入并执行它,就没有问题


我做错了什么?

你没有做错什么 只是当你重定向它时,它停止了分析的执行(一切都发生得非常快)

我一周前就遇到了这个问题,下面是我使用的解决方案:

(您需要:单击-->不重定向-->转到谷歌-->当您从谷歌返回时,重新单击该元素)

添加以下js代码:

$("body").on('click', '[data-ga]', function (e)
{
    var _ = $(this);
    if (_.data('prevented') == 1)
    {
        _.removeData("prevented");
        return true;
    }

    e.preventDefault();
    _.data('prevented', 1);
    window.__gacb = function () { _[0].click(); };
    new Function(_.data('ga'))();
    return false;
});
另外-:(我们想在(!!!)谷歌写入数据后触发点击)

ga('send','pageview'{
“页面”:“/我的新页面”,
“hitCallback”:函数(){

窗口。_ugacb();p.s.我刚刚注意到jQuery标记不存在。很抱歉。但是你明白了。@Niklas检查是否有新行-应该都在一行中。将代码上传到粘贴的位置。这是我的错误。复制得太快了,没有引起注意。这段代码像地狱一样摇晃!非常感谢!+1但可能是更好的解决方案将使用谷歌标签管理器和“事件监听器”标签-专门为这类东西设计,如果您需要包括谷歌分析以外的任何标签,这将非常好。@EikePierstorff我在我们的网站中使用它来捕获事件,当单击某些按钮时:下载文件(提交),重定向等…据我所知,没有解决方案,因为页面重定向,提交回服务器非常快,所以ajax没有时间执行。唯一的解决方案(我发现)是暂停->转到谷歌,回调-重新单击。另一个解决方案是使用另一个新页面,即登录页面。(不想这样做)
ga('send', 'pageview', {
  'page': '/my-new-page',
  'hitCallback': function() {
    window.__gacb();  <---- very important
  }
});
<a href="File.zip" data-ga="  ga('send', 'pageview', {
      'page': '/my-new-page',
      'hitCallback': function() {
        window.__gacb();  <---- very important
      }
    });"