添加延迟以关联Google Analytics的点击次数

时间:2013-08-12 14:56:50

标签: javascript google-analytics settimeout google-tag-manager

为了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代码传递数据,而不是延迟点击?我查了一下,但这并没有解决我的问题。

3 个答案:

答案 0 :(得分:3)

使用Google Analytics&#39; hitCallback

您可以使用在跟踪器上设置自定义回调 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);
  });
});