Analytics (分析) 中的 IP 匿名處理

Analytics (分析) IP 位址匿名處理方式的技術說明

簡介

當 Analytics (分析) 客戶要求匿名處理 IP 位址時,Analytics (分析) 會在資料收集網路的最早期階段有可行技術時,立即匿名處理 IP 位址。Analytics (分析) 中的 IP 匿名處理功能會在 IP 位址傳送到 Analytics (分析) 資料收集網路後,立即在記憶體中將 IPv4 使用者 IP 位址的最後八位元及 IPv6 位址的最後 80 個位元皆設為零。在此情況下,完整 IP 位址絕對不會寫入磁碟。

深入探討

自 2010 年 5 月 25 日起,Analytics (分析) 開始提供 _anonymizelp 功能 (位在 ga.js JavaScript 程式庫),更新的 ga('set', 'anonymizeIp', true) (位在 analytics.js 程式庫) 也已經上線了,方便網站擁有者要求將產品中所有的使用者 IP 位址匿名。這項功能的用意在於協助網站擁有者符合自己的隱私權政策,或遵守某些國家/地區當地資料保護主管機關有關避免儲存完整 IP 位址資訊的建議。在任何儲存或處理動作進行之前,IP 匿名/遮罩處理會在 Analytics (分析) 資料收集網路收到資料後立即進行。

Analytics (分析) 中的 IP 匿名處理會以資料收集管道的兩個步驟進行:JavaScript 代碼和資料收集網路。這些步驟說明如下:

Analytics (分析) JavaScript 代碼

啟用 JavaScript 的網路瀏覽器會載入包含 Analytics (分析) 代碼 (ga.js 或 analytics.js) 的網頁,該代碼會以非同步的方式執行兩項工作:載入和處理 Analytics (分析) 函式佇列,以及要求 Analytics (分析) JavaScript。此函式佇列是一種 JavaScript 陣列,該處的不同 Analytics (分析) 設定與資料收集函式都會被推送。這些函式由網站擁有者在安裝 Analytics (分析) 時設定,其中可能包含的功能有指定 Analytics (分析) 帳號,以及將瀏覽量資料傳送給 Analytics (分析) 資料收集網路以便處理。

當 Analytics (分析) JavaScript 從觸發資料傳送給 Analytics (分析) 資料收集網路的函式佇列執行函式時 (這個函式通常是 analytics.js JavaScript 程式庫中的 ga('send', 'pageview') 及 ga.js 程式庫中的 _trackPageview),它會將資料當做附加至 http://www.google-analytics.com/_utm.gif (適用於 ga.js) 和 http://www.google-analytics.com/collect (適用於 analytics.js) 的 HTTP 要求的 URL 參數來傳送。如果在網頁追蹤函式之前已經呼叫匿名函式,將有一個額外參數加入至像素要求。這個 IP 匿名參數如下所示:&aip=1

Analytics (分析) 資料收集網路

Analytics (分析) 資料收集網路是提供以下兩項主要服務的一組伺服器:提供 ga.js 和 analytics.js (Analytics (分析) JavaScript),以及收集透過 _utm.gif 和 /collect 的要求所傳送的資料。

傳來 ga.js、analytics.js、_utm.gif 或 /collect 要求時,其 HTTP 要求標頭中會包含額外資訊 (例如所用的瀏覽器類型) 和 TCP/IP 標頭 (例如要求者的 IP 位址)。

一旦 _utm.gif 的要求送達時,它就會保存在記憶體中以供匿名處理。如果在要求 URL 中找到 &aip=1 參數 (因為它原本在 ga.jsanalytics.js 中處理匿名函式之後是由 Analytics (分析) JavaScript 所放置),則當使用者 IP 位址依然在記憶體中時,其最後八位元會設定為零。舉例來說,12.214.31.144 這個 IP 位址會改成 12.214.31.0 (如果 IP 位址是 IPv6 位址,則 128 個位元的最後 80 個會設定為零)。只有當完成這項匿名處理後,要求才會寫入磁碟中進行處理。如果使用 IP 匿名方法,則完整 IP 位址絕對不會寫入磁碟,因為在收到要求之後,所有匿名處理幾乎都會立即在記憶體中進行。

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