2009-07-15 27 views
24
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 

try 
{ 
    var pageTracker = _gat._getTracker("UA-XXXXXXX-1"); 
    pageTracker._trackPageview(); 
} 
catch(err) {} 

是否可以從外部JS文件調用此腳本?我想要類似於:是否可以將Google Analytics代碼放入外部JS文件中?

<script type="text/javascript" src="googleanalytics.js" ></script> 

並將其中的一個放在我的每個HTML頁面上。
我上面的代碼將位於googleanalytics.js中
Google的說明是將代碼放在每個頁面中。這樣做的問題是,它更難以更改跟蹤代碼。 (我們對DEV和PROD頁面使用不同的跟蹤代碼)。
我試過了,它似乎沒有工作。
這樣做有什麼問題嗎?還是有其他的東西導致這個問題?

重要FYI 請注意,我們使用的是IE6和8個瀏覽器(是的,我知道,沒有必要告訴我)

回答

14

是的,這是可能的。如果它不工作,那麼還有其他事情正在發生。

只是一個想法,Google Analytics(分析)通常比報告晚一天,所以當您進行更改時,需要一段時間才能知道它正在工作。我喜歡做的是打到一個不經常獲取流量的頁面,以確保我的跟蹤設置正確。

此外,您可以嘗試將鏈接設爲<script標記中的絕對鏈接。它可能只是在分析代碼的錯誤位置。

+0

是的,我知道GA是一天後,問題是它沒有註冊任何命中,即使它已經4天,因爲我應用了代碼,並且我一整天都在瀏覽DEV網站整整4天,修復bug和東西。 希望這是註冊或別的東西有問題。我們將嘗試重新申請新的跟蹤代碼,然後查看會發生什麼情況。感謝您的再次保證! – Nikko 2009-07-15 12:42:31

0

總結谷歌代碼到功能,並執行每一頁上;)

4

您是否可以不使用服務器端語言在每個頁面的底部輸出代碼?有一個函數,如output_ga()並調用它。這樣你就可以在一個地方改變它。

+1

我工作的公司更喜歡我沒有爲此使用任何服務器端腳本,所以這是不可能的。如果這取決於我,這將是我將如何做到這一點。 – Nikko 2009-07-17 01:14:14

1

如果您將腳本劃分爲2個腳本,則與Google Analytics將傳統腳本劃分爲2個腳本標記的方式相同。

0

@Nikko

一個可能的原因是因爲GA帳戶是使用舊的分析創建。所以你必須使用傳統的分析代碼ga.js(_gaq.push)。我發現在GA網站中使用新的analytics.js與傳統GA帳戶不兼容。命中不會出現,所以我不得不使用傳統的ga.js.

此外,您還可以設置一個回調函數,以保證命中發送成功,如下圖所示:

//traditional way 
_gaq.push(['_set', 'hitCallback', function() { 
    console.log("%c ga.js finished sending pageview data to analytics %s ", "color:black; background: pink", pageviewUrl); 
}]); 

//new analytics way 
ga('send', 'pageview', { 
      'page': pageviewUrl, 
      'hitCallback': function() { 
       console.log("%c analytics.js done sending data. pageview url = %s ", "color: black, background: pink", pageviewUrl); 
      } 
     }); 

其中pageviewUrl =網站

希望幫助的網址!

相關問題