我想跟踪通过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并在控制台中手动输入并执行它,则没有问题。
我做错了什么?
答案 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;
因此谷歌运行的回调实际上会触发另一次点击 - 如您所愿。