4

为了 Google Analytics 事件跟踪,我一直在摆弄各种 Javascript 片段。我正在使用谷歌标签管理器。这个问题也与我最近发布的一些问题相似,因此向关注谷歌分析标签并看到相同内容的较小用户群表示歉意。

目前我正在使用这个片段:

    <script type="text/javascript"> 

$(document).ready(function(){ 

    $('.app-cta a').onClick=_gaq.push(['_trackEvent', 'App', 'Click', 'iOS']);

});
</script>

在 httpfox 中,事件参数(App、Click、iOS)都显示出来了。但不在谷歌分析中。

有人告诉我,在链接点击中添加 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 标签传递数据,而不是延迟点击?我查了一下,并没有解决我的问题。

4

3 回答 3

3

使用 Google Analytics 的 hitCallback

您可以使用此处记录的代码在跟踪器上设置自定义回调 。

你最终可能会得到类似的东西:

$( ".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.
});
于 2014-07-25T00:32:01.763 回答
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);


    });
});
于 2013-08-12T15:04:57.243 回答
2

我对谷歌分析不是很精通,但下面的代码将执行你的_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);
  });
});
于 2013-08-12T15:09:55.547 回答