追蹤程式碼:網域和目錄

這個參考說明各種方法,用來自訂 Google Analytics (分析) 報表在網域、不同主機或網站網站子目錄中的運作方式。

GATC 網域/目錄方法

方法說明

_cookiePathCopy()

_cookiePathCopy(newPath)

將所有 GATC Cookie 的路徑變更為新指定的路徑。這項功能可讓您追蹤同一目錄中不同目錄的使用者行為。

呼叫此函式後,會立即將任何 Cookie 複製到新的 Cookie 路徑。因此,如果未呼叫 _trackPageview() 方法,會提供所有現有 Analytics (分析) Cookie 的值。因此,建議在 _trackPageview() 以及其他可能影響 Cookie 值或廣告活動值的方法設定之間呼叫,例如 _setCampaignCookieTimeout()_setReferrerOverride()

非同步程式碼片段 (建議)
_gaq.push(['_cookiePathCopy', '/newSubDirectory/']);

參數

String   newPath 新的 GATC Cookie 儲存路徑。

_getLinkerUrl()

_getLinkerUrl(targetUrl, useHash)

這個方法可搭配 _setDomainName()_setAllowLinker() 方法使用,以便跨網域使用者追蹤,以便追蹤 iframe 和在新視窗中開啟的連結。這個方法會將起始連結的所有 GATC Cookie 資料附加在網址參數中,藉此傳回字串。然後再傳遞至其他網站或 iframe。

非同步程式碼片段 (建議)
  _gaq.push(function() {
    var pageTracker = _gat._getTrackerByName(); // Gets the default tracker.
    var linkerUrl = pageTracker._getLinkerUrl('http://www.my-example-iframecontent.com/');
  });

參數

String   targetUrl 要傳送 Cookie 值的目標網站網址。

Boolean   useHash 如要傳送追蹤程式碼變數,請使用 # 錨點標記分隔符,而非預設的「?」查詢字串分隔符。

return

String 連接器網址。

_link(targetUrl, useHash)

這個方法會與 _setDomainName()_setAllowLinker() 方法搭配使用,以啟用跨網域使用者追蹤。_link() 方法會透過網址參數 (HTTP GET) 將這個網站的 GATC Cookie 傳送至另一個。同時變更 document.location 並將使用者重新導向新網址。

非同步程式碼片段 (建議)
<a href="http://example.com/test.html"
onclick="_gaq.push(['_link', 'http://example.com/test.html']); return false;">click me</a>

參數

String   targetUrl 要傳送 Cookie 值的目標網站網址。

Boolean   useHash 如要傳送追蹤程式碼變數,請使用 # 錨點標記分隔符,而非預設的「?」查詢字串分隔符。


_linkByPost()

_linkByPost(formObject, useHash)

這個方法會與 _setDomainName()_setAllowLinker() 方法搭配使用,以啟用跨網域使用者追蹤。_linkByPost() 方法會將參照表單的 GATC Cookie 傳送到字串中附加的值 (HTTP POST),附加在字串中。這種追蹤方式通常用於追蹤使用者從某個網站前往第三方購物車網站的行為,但也可以用來從彈出式視窗或 iframe 傳送 Cookie 資料到其他網域。

非同步程式碼片段 (建議)
    <form action="http://www.shoppingcartsite.com/myService/formProcessor.php"
    name="f" method="post" onsubmit="_gaq.push(['_linkByPost', this]);">
...
</form>

此外,您必須在到達網頁中將 _setAllowLinker() 設為 true,才能連結連結。

參數

HTMLFormElement   formObject 封裝 POST 要求的表單物件。

Boolean   useHash 如要傳送追蹤程式碼變數,請使用 # 錨點標記分隔符,而非預設的「?」查詢字串分隔符。


_setAllowHash()

_setAllowHash(bool)

設定允許網域雜湊旗標。根據預設,這個值會設為 true。Google Analytics (分析) 中的網域雜湊功能會在您的網域中建立雜湊值,並以這個數值查看訪客的 Cookie 完整性。如果您有多個子網域 (例如 example1.example.comexample2.example.com),且您想要追蹤這兩個子網域的使用者行為,請關閉網域雜湊,以免 Cookie 完整性檢查拒絕來自另一個網域的使用者 Cookie。此外,您也可以停用這項功能,以便改善個別網頁追蹤成效。

參數

Boolean   truefalse 預設值為 true。如果這個參數設為 true,則會啟用網域雜湊。否則,系統會停用網域雜湊功能。

_setAllowLinker()

_setAllowLinker(bool)

將連結器功能旗標設為啟用跨網域使用者追蹤功能。根據預設,此方法會設為 false 並停用連結。另請參閱 _link()_linkByPost()_setDomainName() 方法,以啟用跨網域追蹤。 在目標網站上使用 _setAllowLinker 方法,讓目標網站在網址參數中使用 Cookie 資料,而非標準工作階段的邏輯。

非同步程式碼片段 (建議)
_gaq.push(['_setAllowLinker', true]); 

參數

Boolean  truefalse 的預設值是 false。如果這個參數設為 true,則會啟用連接器。否則系統會停用網域連結功能。

_setCookiePath()

_setCookiePath(newCookiePath)

為網站設定新的 Cookie 路徑。根據預設,Google Analytics (分析) 會將 Cookie 路徑設為根層級 (/)。在多數情況下,這會建議您採用這個做法,而且正確於您在網站、網誌或公司目錄中安裝的追蹤程式碼正確運作。然而,在少數情況下,如果使用者只能存取網域的子目錄,這個方法可將子目錄設為所有追蹤的預設路徑,藉此解決追蹤問題。

一般來說,如果資料並未追蹤,且您訂閱了網誌服務,且只能存取您定義的子目錄,或者您使用的是公司或大學網路,而且只能存取主目錄,就可以使用這個方法。

非同步程式碼片段 (建議)
_gaq.push(['_setCookiePath', '/myBlogDirectory']); 

參數

String   newCookiePath 要設定的新 Cookie 路徑。

_setDomainName()

_setDomainName(newDomainName)

設定 GATC Cookie 的網域名稱。此方法有三種模式:("auto" | "none" | [domain])。根據預設,此方法會設為 auto,嘗試依據 DOM 中的 document.domain 屬性解析網域名稱。

指定網域

請參閱《跨網域追蹤指南》中的範例,瞭解本方法指定網域的時機和方式。以下範例說明如何將網域名稱設為 example.com

非同步程式碼片段 (建議)
_gaq.push(['_setDomainName', 'example.com']); 

隔離頂層網域

將這個方法設為 none 可確保特定子網域不會存取特定網域的 Cookie。

非同步程式碼片段 (建議)
_gaq.push(['_setDomainName', 'none']); 

參數

String   newDomainName 要設定的新預設網域名稱。

_storeGac(布林值)

決定是否要建立 GAC Cookie。根據預設,GAC Cookie 是由指令碼編寫,因此您不需要另外撰寫 Cookie。您可以使用下列指令停用這個 Cookie 的設定。

非同步程式碼片段 (建議)
_gaq.push(['_storeGac', false]);