2012-09-11 78 views
0

我一直在尋找在一個朋友的劇本,他用谷歌Analytics跟蹤代碼:以這種方式(或類似的東西)谷歌分析問題

var _gaq = [ 
     ['_setAccount', 'UA-XXXXXXXX-X'], 
     ['_trackPageview'] 
    ]; 
    (function(d, t) { 
     var g = d.createElement(t), 
      s = d.getElementsByTagName(t)[0]; 
     g.src = ('https:' == location.protocol ? '//ssl' : '//www') + '.google-analytics.com/ga.js'; 
     s.parentNode.insertBefore(g, s) 
    }(document, 'script')); 

var SOMEOBJECT = { 
    _gaq : [], 
    account_code : "", 

    ... 

    init : function() { 
     ... 
    } 

    ... 

    _gaq.push(SOMEOBJECT.account_code); 

    ... 
} 

和一些更多的代碼創建相同的跟蹤代碼,但以不同的方式(因爲它需要在許多其他頁面和各種東西上重用)。

的想法是,範圍可變_gaq似乎並不存在於控制檯上,所以分析沒有接收到任何數據。那麼會出現什麼問題?對不起,沒有更多的代碼,但是這是從我記得,我是很古董,爲什麼它不工作(:

+0

我不明白這個問題。你想要做什麼,哪些不起作用? – roel

+0

@roel〜在這一刻我沒有很多關於發生的事情的細節,我將不得不告訴我的朋友給我發送代碼,以便我可以更具體。但是我得到的是'_gaq'變量在DOM中不存在,如果我試圖在控制檯'._gaq'中輸入它看起來好像它沒有被聲明,即使它是。如果我有一個對象而不是一個數組,它就可以正常工作,但是'_gaq'變量需要是一個數組,正如它在谷歌分析跟蹤代碼 – Roland

回答

1

你的代碼的第一部分看起來很不錯......只是一個正常的谷歌Analytics(分析)的重構異步代碼。

我不知道肯定你的代碼的第二部分...通常_gaq是一個全局對象初始化像

var _gaq = _gaq || []; 

其初始化的全局_gaq作爲數組如果尚未初始化。 Onc e加載Google Analytics代碼後,該數組將被替換爲包含執行命令的push方法的對象。

看看該文檔爲the _gaq Global Objectpush方法。

+0

中所說的那樣 - 它的初始化變量就像'var _gaq = _gaq || [];'。但是我不太確定他爲什麼會遇到問題,我想這是'_gaq:_gaq || []'這是不可能的或語義上正確的? – Roland

+1

問題是,您最終得到兩個不同的_gaq - 分析代碼使用的全局_gaq和定義爲SOMEOBJECT屬性的第二個_gaq。 – mike

+0

聽起來是正確的....在這種情況下我能做些什麼? – Roland