概要
ユニバーサル アナリティクスのお客様が IP アドレスのマスキングをリクエストすると、技術的に可能な範囲でできるだけ迅速にアドレスが短縮化されます。ユニバーサル アナリティクスの IP マスキング機能では、データが Google アナリティクスに届いた直後、まだメモリ内にある段階で、ユーザーの IP アドレスの末尾(IPv4 の場合は最後のオクテット、IPv6 の場合は最後の 80 ビット)が 0 に設定されます。この場合、完全な IP アドレスがディスクに書き込まれることはありません。
地域ディメンションは、切り捨て処理された IP アドレスから後で取得されます。
ユニバーサル アナリティクスでは、IP アドレスのマスキングがオプトインされ、次の「詳細」セクションで説明されているように実施されます。
詳細
アナリティクスには anonymize_ip 機能(gtag.js ライブラリの gtag('config', '<GA_MEASUREMENT_ID>', { 'anonymize_ip': true })
)が用意されており、アナリティクス内の全サイトユーザーの IP アドレスをマスキングするよう、サイト所有者様がリクエストできる仕組みになっています。この機能は、サイト所有者様が各自のプライバシー ポリシーに準拠できるようにすることを目的としています。また、一部の国ではデータ保護機関が完全な IP アドレス情報の保管を禁じている場合があるため、そうした要件に準拠する際にも役立ちます。IP の切り捨て処理(マスキング処理)は、データが Google アナリティクスに送信された直後、つまりデータが保管、処理される前に行われます。
アナリティクスでの IP マスキングは、JavaScript タグとコレクション ネットワークの 2 段階で処理されます。上記のステップについて以下で説明します。
アナリティクスの JavaScript タグ
JavaScript 対応のウェブブラウザがアナリティクスのタグによってページを読み込む際は、非同期的に 2 つの処理を行います。アナリティクスの関数キューの読み込み / 処理と、アナリティクスの JavaScript のリクエストです。関数キューは、別のアナリティクス設定と収集関数がプッシュされる JavaScript 配列となります。これらの関数はアナリティクスを実装する際にサイト所有者様が設定するもので、アナリティクスのアカウント番号の指定や、Google アナリティクスで処理されるページビュー データの送信などの関数を含めることができます。
アナリティクスの JavaScript によって、Google アナリティクスにデータを送る関数(通常は gtag.js ライブラリの gtag('config', '<GA_MEASUREMENT_ID>'
関数)が関数キューから実行される際、データは http://www.google-analytics.com/collect の HTTP リクエストに付加される URL パラメータとして送信されます。ページ トラッキング関数より先にマスキング関数が呼び出された場合は、別のパラメータがピクセル リクエストに追加されます。IP マスキングのパラメータは次のようになります。
&aip=1
アナリティクス コレクション ネットワーク
アナリティクス コレクション ネットワークは、主に gtag.js(アナリティクスの JavaScript)の配信と、/collect のリクエストを介して送信されるデータの収集という、2 つの処理を行うサーバー群です。
アナリティクス コレクション ネットワークに届いた gtag.js のリクエストには、追加情報(HTTP リクエスト ヘッダーに使用ブラウザの種類、TCP/IP ヘッダーにリクエスト送信元の IP アドレス)が含まれています。
到着したリクエストは、すぐにメモリ内に保管されて切り捨て処理されます。リクエスト URL に &aip=1 パラメータが含まれている場合、メモリ内でユーザーの IP アドレスの最後のオクテットがゼロに設定されます。たとえば 12.214.31.144 という IP アドレスの場合は 12.214.31.0 に変更されます(IP アドレスが IPv6 アドレスの場合は、128 ビットのうち最後の 80 ビットが 0 に設定されます)。これが終わってはじめて、切り捨て処理のリクエストがディスクに書き込まれて処理されます。IP の切り捨て処理を使用している場合、リクエストの送信完了後、ほぼ瞬時に切り捨て処理がメモリ内で行われるため、完全な IP アドレスがディスクに書き込まれることはありません。