为了Google Analytics事件跟踪的目的,我一直在摆弄各种Javascript片段。我正在使用Google跟踪代码管理器。这个问题也与我最近发布的一些问题类似,因此向遵循谷歌分析标签并看到相同内容的较小用户群表示道歉。
目前我正在使用此代码段:
<script type="text/javascript">
$(document).ready(function(){
$('.app-cta a').onClick=_gaq.push(['_trackEvent', 'App', 'Click', 'iOS']);
});
</script>
在httpfox中,事件参数(App,Click,iOS)都显示出来。但不适用于Google Analytics。
我被告知,在5到500毫秒之间的链接点击中添加延迟是相当普遍的做法。这是因为,据我所知,有时浏览器会在有时间传递分析参数之前点击新网站。
可能有其他方法可以纠正这个问题但是为了我自己对学习如何使用Javascript进行分析的好奇心,我如何将setTimeout集成到上面的代码中?
我试过了:
<script type="text/javascript">
$(document).ready(function(){
setTimeout(function(){
$('.app-cta a').onClick=_gaq.push(['_trackEvent', 'App', 'Click', 'iOS']);
});
},500);
</script>
但是,这肯定会延迟Google Analytics代码传递数据,而不是延迟点击?我查了一下,但这并没有解决我的问题。
答案 0 :(得分:3)
您可以使用在跟踪器上设置自定义回调 the code documented here.
你最终会得到类似的东西:
$( ".app-cta a" ).click(function(e) {
var location = $(this).attr('href'); //get the link location
e.preventDefault(); //disable the link action
_gaq.push(['_set','hitCallback',function() {
window.location = location; //action link after callback
}]);
_gaq.push(['_trackEvent', 'App', 'Click', 'iOS'); //trigger Track Event
return !window._gat; //fallback in case Google Analytics hasn't loaded.
});
答案 1 :(得分:2)
Something like that should work
$(function () {
$('.app-cta a').click(function (e) {
e.preventDefault();
var $this = $(this),
timer = 500,
target = $this.attr('target'),
href = $this.attr('href');
_gaq.push(['_trackEvent', 'App', 'Click', 'iOS']);
setTimeout(function () {
if (target) {
window.open(href, target);
} else {
window.location = href;
}
}, timer);
});
});
答案 2 :(得分:2)
我对Google Analytics并不是非常精通,但下面的代码会执行您的_gaq.push()
方法,然后在500毫秒后重定向该页面。
$(document).ready(function() {
$('.app-cta a').on('click', function (e) {
var location = $(this).attr('href');
e.preventDefault();
_gaq.push(['_trackEvent', 'App', 'Click', 'iOS']);
setTimeout(function () {
window.location = location;
}, 500);
});
});