0

我们正在尝试跟踪主要 Google Analytics(分析)配置文件和次要配置文件的点击事件。两个配置文件的页面浏览量都正确注册。

问题是点击事件只被注册到主要配置文件,而不是次要配置文件。我们已经等了超过 24 小时,看看在 GA 中注册的辅助帐户点击事件是否有延迟,但并不高兴。(为主配置文件正确注册点击事件通常需要大约 15 分钟)。如果有人能在下面的代码中发现问题所在,我们将不胜感激。非常感谢

var _gaq = _gaq || []; 

var mainAccount = 'UA-1234567-1';
var secondaryAccount = 'UA-1234567-2';

_gaq.push(  ['_setAccount', mainAccount], 
            ['_trackPageview'],
            ['b._setAccount', secondaryAccount], 
            ['b._trackPageview']);

(function(){
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

jQuery(document).ready(function()
    { 
        jQuery('.home-bottom-right a').click(function(){
            _gaq.push(['_trackEvent', 'Homepage', 'click', 'Home_bottom_right'],['b._trackEvent', 'Homepage', 'click', 'Home_bottom_right']);
        });
    });
4

3 回答 3

0

Adding to mike's answer, you can test the length of the _gaq array to see if analytics has finished processing all objects:

jQuery('.home-bottom-right a').click(function(e){
    _gaq.push(['_trackEvent', 'Homepage', 'click', 'Home_bottom_right'],['b._trackEvent', 'Homepage', 'click', 'Home_bottom_right']);
    if (this.target !== '_blank') {
        e.preventDefault();
        var url = this.href;
        (function() {
            if (typeof _gaq.length == "undefined" || _gaq.length == 0) {
                location.href = url;
            } else {
                setTimeout(arguments.callee, 0);
            }
        })();
    }
});
于 2012-06-11T20:53:22.633 回答
0

如果您要跟踪的点击是在当前窗口中打开一个新页面,则可能是第二个_trackEvent跟踪像素请求在离开当前页面之前尚未完成。

我使用以下代码的变体为在同一窗口中打开的链接添加了 150 毫秒的延迟:

jQuery('.home-bottom-right a').click(function(e){
  _gaq.push(['_trackEvent', 'Homepage', 'click', 'Home_bottom_right'],['b._trackEvent', 'Homepage', 'click', 'Home_bottom_right']);
  if (this.target != '_blank') {
    e.preventDefault();
    var url = this.href;
    setTimeout('location.href = "' + url + '"', 150);
  }
});
于 2012-06-11T20:43:34.863 回答
0

我会尝试的第一件事是将点击跟踪线变成 2 行

_gaq.push(['_trackEvent', 'Homepage', 'click', 'Home_bottom_right']);
_gaq.push(['b._trackEvent', 'Homepage', 'click', 'Home_bottom_right']);

在 google 提供的指南页面上,他们总是在每次推送时跟踪一个事件。所以试一试,也许它会起作用,除此之外代码看起来不错。可能 b 设置不正确

于 2012-06-11T17:57:01.183 回答