簡介
通用 Analytics 客戶要求遮蓋 IP 位址時,Analytics 會在技術允許的情況下盡快截斷 IP 位址。使用者 IP 位址傳送到 Google Analytics 後,通用 Analytics 中的 IP 遮蓋功能隨即會在記憶體中,將 IPv4 位址的最後 8 位元和 IPv6 位址的最後 80 位元設為零,因此絕不會將完整 IP 位址寫入磁碟。
在這之後,系統會從截斷的 IP 位址中擷取地理區域維度。
在通用 Analytics 中,IP 位址遮蓋是選用功能,套用方式如下方「深入解說」一節所述。
深入解說
Analytics 提供 anonymize_ip 功能 (gtag.js 程式庫中的 gtag('config', '<GA_MEASUREMENT_ID>', { 'anonymize_ip': true })
),方便網站擁有者要求遮蓋產品中所有的使用者 IP 位址。這項功能可避免儲存完整的 IP 位址資訊,旨在協助網站擁有者確保做法符合自家隱私權政策,或遵循某些國家/地區當地資料保護主管機關的建議。收到資料後,Google Analytics 會先立即截斷/遮蓋 IP,然後才儲存或處理資料。
在資料收集管道中,Analytics IP 遮蓋程序會發生在「JavaScript 代碼」和「資料收集網路」這兩個步驟。這些步驟的說明如下:
Analytics JavaScript 代碼
啟用 JavaScript 的網路瀏覽器會載入包含 Analytics 代碼的網頁,該代碼會以非同步的方式執行兩項工作:載入和處理 Analytics 函式佇列,以及要求 Analytics JavaScript。此函式佇列是一種 JavaScript 陣列,用於推送不同 Analytics 的設定與資料收集函式。這些函式由網站擁有者在導入 Analytics 時設定,可能包含的功能有指定 Analytics 帳號,以及將網頁瀏覽資料傳送給 Google Analytics 以便處理。
當 Analytics JavaScript 執行函式佇列中的某個函式 (通常是 gtag.js 程式庫中的 gtag('config', '<GA_MEASUREMENT_ID>'
),藉此觸發傳送資料給 Google Analytics 的作業時,會先以網址參數的形式將資料附加至 http://www.google-analytics.com/collect 的 HTTP 要求,再傳送資料。如果呼叫遮蓋函式的時機比網頁追蹤函式早,系統會在像素要求中加入一個額外參數。IP 位址遮蓋參數看起來像這樣:
&aip=1
Analytics 資料收集網路
Analytics 資料收集網路是一組伺服器,主要提供以下兩項服務:提供 gtag.js (Analytics JavaScript),以及收集透過 /collect 的要求所傳送的資料。
針對 gtag.js 發出的要求送達時,當中的 HTTP 要求標頭 (即所用的瀏覽器類型) 和 TCP/IP 標頭 (即要求者的 IP 位址) 中都包含額外資訊。
要求送達後,就會立即在記憶體中進行截斷。如果要求網址中出現 &aip=1 參數,系統會在使用者 IP 位址仍在記憶體中時,將最後 8 位元設為零。舉例來說,12.214.31.144 這個 IP 位址會改成 12.214.31.0 (至於長度為 128 位元的 IPv6 位址,則是將最後 80 個位元設定為零)。完成這項截斷程序後,系統才會將要求寫入磁碟並進行處理。若使用 IP 截斷方法,系統絕不會將完整 IP 位址寫入磁碟,因為系統收到要求後,隨即會在記憶體中執行所有的截斷作業。