追蹤程式碼:網域和目錄

這項參考資料說明用來自訂 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 使用 # 錨定標記分隔符 (而非預設值) 來傳送追蹤程式碼變數時,設為 true?查詢字串分隔符。

returns

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 使用 # 錨定標記分隔符 (而非預設值) 來傳送追蹤程式碼變數時,設為 true?查詢字串分隔符。


_linkByPost()

_linkByPost(formObject, useHash)

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

非同步程式碼片段 (建議)
    <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 使用 # 錨定標記分隔符 (而非預設值) 來傳送追蹤程式碼變數時,設為 true?查詢字串分隔符。


_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(bool)

決定是否應建立 GAC Cookie。根據預設,GAC Cookie 是由指令碼寫入,因此您不必執行任何操作即可寫入 Cookie。如要停用這個 Cookie 的設定,請使用下列指令。

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