Google Analytics跟踪文件下载

时间:2014-03-16 14:47:46

标签: javascript google-analytics

我想跟踪通过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.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>

这就是我的链接的外观:

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

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

我做错了什么?

1 个答案:

答案 0 :(得分:3)

你没有做错任何事 只是当你重定向它时 - 它会停止执行分析(一切都发生得很快)

一周前我已经遇到过这个问题了 - 这是我使用的解决方案:

(你想要这个:点击---&gt;不要重定向---&gt; goto google ----&gt;当你从谷歌返回时,重新点击该元素)

添加此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;
});

另外 - use the google analytic code which provide callback :(我们希望在(!!!)谷歌写数据后触发点击自己)

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

解释:

当您按下链接时,您preventDefault。你读了data-ga代码。并运行它。谷歌会得到这个请求并运行一个回调,你会在脚本上标记:&#34;我已经阻止了这个点击,所以现在 - 不要阻止它&#34;

因此谷歌运行的回调实际上会触发另一次点击 - 如您所愿。