2009-08-16 133 views
10

我在www.example.com上有一個網站並使用Google Analytics(分析)。我還設置了static.example.com,它提供所有靜態內容。谷歌分析餅乾與靜態內容的子域名

問題是GA的默認行爲是在「.example.com」上發佈cookie,但我不希望靜態內容流量承載GA cookie的權重。

我試過pageTracker._setDomainName(「none」);,並且它在cookies問題上運行良好,但它完全搞砸了「平均時間站點」報告(從平均5分鐘到40分鐘,直到我恢復_setDomainName調用的那一天)。

任何想法爲什麼會發生這種情況,我該如何解決?

回答

7

解決的辦法是做pageTracker._setDomainName("www.example.com")然後GA會發送cookies到「.www.example.com」。這種方式分析仍然正常工作,餅乾不泄漏到其他靜態子域。

+0

是否可以排除靜態文件子域(幷包含所有其他子域)?我在其他(非www)子域名中擁有重要的流量...... – 2011-12-25 22:31:56

5

Google Analytics(分析)會將所有會話數據存儲在Cookie中,以幫助其「記住」以前的頁面瀏覽量。函數調用pageTracker._setDomainName(".example.com")告訴每個站點爲主機example.com(而不是自己的子域)存儲cookie以確保能夠訪問彼此的數據。

只有當您的網站跨越多個不同的域名時,才需要表單pageTracker._setDomainName("none")

設置此方法none在 以下兩種情況:

* You want to disable tracking across sub-domains. 
* You want to set up tracking across two separate domain names. 

跨域跟蹤需要_setAllowLinker() 的 配置和_link 方法。

要回答您的問題,Google Analytics會使用基於第一方的Cookie來收集數據。當你希望你的靜態內容的流量出現在GA中時,你也必須允許它們使用cookies。爲了避免這個問題,你可以選擇一個像Urchin這樣的解析服務器日誌文件而不是處理cookie的服務器解決方案。

+0

感謝您的回答。我試圖明確地做pageTracker._setDomainName(「www.example.com」),並會很快讓你知道結果。 – cherouvim 2009-08-17 18:39:19

+0

另外,我的理解是pageTracker._setDomainName(「none」)有保證的另一種情況是當您有一個單一的名稱站點和內部網時,例如, http:// intranet – Mike 2009-08-19 19:30:27

+0

+1以提供鏈接。 – Eye 2012-11-02 12:09:33

4

對於任何加載(根據谷歌的推薦方式)異步的JavaScript語法看起來像這樣的谷歌Analytics(分析):

_gaq.push(['_setDomainName', 'www.allinpoker.se']); 

因爲它的配置餅乾此行應該是_trackPageview之前。您可以在developers.google.com上找到更多信息。

我還建議設置永久重定向(在我的情況下)allinpoker.se到www.allinpoker.se,因爲您只需要在www子域上進行跟蹤。