設定跨網域追蹤 (analytics.js)

您可藉助跨網域追蹤功能,讓 Analytics (分析) 將兩個相關網站 (例如電子商務網站和另一個購物車網站) 上的工作階段計為同一個工作階段,這個做法又稱為「網站連結」。

您必須熟悉在 JavaScript 中寫程式及修改 HTML 的做法才能設定跨網域追蹤;如果您不熟悉相關做法,請找有經驗的網站開發人員協助。

進一步瞭解設定基本追蹤程式碼的做法。

本文內容:

跨網域追蹤簡介

為了追蹤工作階段,Analytics (分析) 會收集每一筆匹配的 Client-ID 值。Client-ID 值儲存在 Cookie 中,Cookie 則是按網域儲存,意即位在甲網域上的網站無法存取系統為乙網域設定的 Cookie。但跨多個網域追蹤工作階段需要在不同網域之間轉移 Client-ID 值,這時您可以藉助 Analytics (分析) 追蹤程式碼的連結功能,讓來源網域將 Client-ID 放進連結的網址參數,以利目標網域存取。

使用 Google 代碼管理工具設定跨網域追蹤

如果您使用 Google 代碼管理工具管理 Analytics (分析) 追蹤,請按照「跨網域追蹤」一文中的指示操作。

修改追蹤程式碼以設定跨網域追蹤

如要為多個頂層網域設定跨網域追蹤,您必須分別修改每一個網域上的 Analytics (分析) 追蹤程式碼。進行這項程序的人必須具備基本的 HTML 和 JavaScript 知識;如果您不熟悉相關知識,請找開發人員幫忙設定跨網域追蹤。本文中的範例使用通用 Analytics (分析) 追蹤程式碼片段 (analytics.js)。

  1. 在 Analytics (分析) 帳戶中設定資源
    為了跨網域追蹤,您需要在 Analytics (分析) 帳戶中建立一項資源;請在您所有的網域中使用這個資源提供的同一組追蹤程式碼片段和追蹤 ID。

    您必須修改追蹤程式碼片段,跨網域追蹤才能正常運作。如果您尚未在所有的網頁內安插這段程式碼,建議您先複製程式碼並貼到文字編輯器中,再繼續按照這裡的指示操作。這樣一來,您只需要進行一次修改,就能在所有網頁上加入這段修改過的程式碼。

  2. 修改主要網域的追蹤程式碼。
    在程式碼片段中找出 create 這一行。如果網站是 example-1.com,這一行看起來會像這樣:

     

      ga('create', 'UA-XXXXXXX-Y', 'example-1.com');

    對這段程式碼進行下列變更 (紅色粗體文字是需要變更的部分):

      ga('create', 'UA-XXXXXXX-Y', 'auto', {'allowLinker': true});
      ga('require', 'linker');
      ga('linker:autoLink', ['example-2.com'] );

    別忘了將範例追蹤 ID (UA-XXXXXX-Y) 換成您專用的 ID,範例次要網域 (example-2.com) 也必須換成您的次要網域名稱。



    無論出現在主要網域的哪個位置,這段追蹤程式碼都必須包含上述變更。

     

    如有三個以上的網域

    請按照上述範例進行,但必須在自動連結外掛程式中加入其他網域。請別漏掉這裡多出來的半形逗號:

    ga('linker:autoLink', ['example-2.com', 'example-3.com'] );
    查看完整程式碼片段的範例

    您主要網域上的追蹤程式碼片段看起來應該會像這樣:

    <script>

    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-XXXXXXX-Y', 'auto', {'allowLinker': true});
    ga('require', 'linker');
    ga('linker:autoLink', ['example-2.com'] );

    ga('send', 'pageview');

    </script>
  3. 修改次要網域上的追蹤程式碼。

    在程式碼片段中找出 create 這一行,對這段程式碼進行下列變更 (紅色粗體文字是需要變更的部分):

      ga('create', 'UA-XXXXXXX-Y', 'auto', {'allowLinker': true});
      ga('require', 'linker');
      ga('linker:autoLink', ['example-1.com'] );

    別忘了將範例追蹤 ID (UA-XXXXXX-Y) 換成您專用的 ID,範例主要網域 (example-1.com) 也必須換成您的主要網域名稱。

    無論出現在次要網域的哪個位置,這段追蹤程式碼都必須包含上述變更。

    如有三個以上的網域

    請按照上述範例進行,但必須在自動連結外掛程式中加入其他網域。請別漏掉這裡多出來的半形逗號:

    ga('linker:autoLink', ['example-1.com', 'example-3.com'] );
    查看完整程式碼片段的範例

    您次要網域上的追蹤程式碼片段看起來應該會像這樣:

    <script>

    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-XXXXXXX-Y', 'auto', {'allowLinker': true});
    ga('require', 'linker');
    ga('linker:autoLink', ['example-1.com'] );

    ga('send', 'pageview');

    </script>

建立報表資料檢視及添加篩選器

根據預設,Analytics (分析) 只會顯示網頁路徑和網頁名稱,不會顯示網域名稱。舉例來說,您可能會看到您的網頁出現在「網站內容」報表中,如下所示:

  • /about/contactUs.html
  • /about/contactUs.html
  • /products/buy.html

由於網域名稱不會列出,因此要分辨每個網頁所屬的網域可能不容易。

為了讓報表顯示網域名稱,您必須建立報表資料檢視的複本 (其中包含您所有網域的資料),然後在這個新資料檢視中添加進階篩選器。這樣一來,篩選器便會讓 Analytics (分析) 在報表中顯示網域名稱。

跨網域追蹤設定完畢後,請按照本例設定資料檢視篩選器,以便在報表中顯示網域名稱。對於部分欄位,您必須選取下拉式選單中的項目。至於其他欄位,您必須輸入下列字元:

  • 篩選器類型:自訂篩選器 > 進階
  • 欄位 A --> 擷取 A:主機名稱 = (.*)
  • 欄位 B --> 擷取 B:要求 URI = (.*)
  • 輸出至 --> 建構函式:要求 URI = $A1$B1

最後請按一下 [儲存] 來建立篩選器。

您可以使用 Google Tag Assistant Recordings 確認篩選器的運作是否如您預期。Tag Assistant Recordings 會向您顯示篩選器如何改變流量。

新增網域至參照連結網址排除清單

使用者歷程從第一個網域跨到第二個網域時,這對 Analytics (分析) 而言表示使用者經由第一個網域連往第二個網域,而且 Analytics (分析) 會為此建立新的工作階段。如果您要跨多個網域追蹤單一工作階段,請務必將您的網域加進參照連結網址排除清單

檢查跨網域追蹤是否正常運作

使用 Google Tag Assistant Recordings 是確認跨網域追蹤設定正確與否的最佳方式。建立跨網域工作階段時,此功能可以立刻告訴您是否正常運作。

這裡提供 Tag Assistant Recordings 範例報表,方便您瞭解跨網域追蹤未正確設定的情況。

相關資源

analytics.js

gtag.js

 

這篇文章實用嗎?
我們應如何改進呢?