アナリティクスでの IP 匿名化

アナリティクスでの IP アドレスの匿名化の方法に関する技術的な説明

概要

アナリティクスのユーザーが IP の匿名化をリクエストすると、技術的に可能な範囲で収集ネットワークのできるだけ早い段階に IP アドレスが匿名化されます。アナリティクスの IP 匿名化機能では、メモリ内でユーザーの IPv4 アドレスの最後のオクテットと、IPv6 アドレスの最後の 80 ビットが、アナリティクス コレクション ネットワークに送信された直後に 0 に設定されます。この場合、完全な IP アドレスがディスクに書き込まれることはありません。

プロパティを作成する際には 3 つのオプションがあり、それぞれの場合で、IP アドレスの匿名化は以下のように行われます。

詳細

2010 年 5 月 25 日以降、アナリティクスでは、サイト所有者様が ga.js JavaScript ライブラリで _anonymizelp 関数を利用し、プロダクト内でユーザーの IP アドレスをすべて匿名化するようリクエストできるようになりました(最新バージョンは analytics.js ライブラリの ga('set', 'anonymizeIp', true))。この機能は、サイト所有者様が各自のプライバシー ポリシーを遵守できるようにすることを目的としています。また、一部の国ではデータ保護機関が完全な IP アドレス情報の保管を禁じている場合があるため、そうした要件を遵守する際にも役立ちます。IP 匿名化 / マスキングは、データがアナリティクス コレクション ネットワークに送信された直後、つまりデータが保管、処理される前に行われます。

アナリティクスでの IP 匿名化は、JavaScript タグとコレクション ネットワークの 2 段階で処理されます。これらのステップについて以下で説明します。

アナリティクスの JavaScript タグ

JavaScript 対応のウェブブラウザがアナリティクスのタグ(ga.js または analytics.js)によってページを読み込む際は、非同期的に 2 つの処理を行います。アナリティクスの関数キューの読み込み / 処理と、アナリティクスの JavaScript のリクエストです。関数キューは、別のアナリティクス設定と収集関数がプッシュされる JavaScript 配列となります。これらの関数はアナリティクスを実装する際にサイト所有者様が設定するもので、アナリティクスのアカウント番号の指定や、アナリティクス コレクション ネットワークで処理されるページビュー データの送信などの関数を含めることができます。

アナリティクスの JavaScript によって、アナリティクス コレクション ネットワークにデータを送る関数が関数キューから実行される際は(通常、この関数は 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 のようになります。

アナリティクス コレクション ネットワーク

アナリティクス コレクション ネットワークは、主に ga.js および analytics.js(アナリティクスの JavaScript)の配信と、_utm.gif および /collect のリクエストを介して送信されるデータの収集という、2 つの処理を行います。

送信が完了した ga.js、analytics.js、_utm.gif、または /collect のリクエストには、HTTP リクエスト ヘッダー(使用ブラウザの種類)と TCP/IP ヘッダー(リクエスト送信元の IP アドレス)に追加情報が含まれます。

_utm.gif リクエストは、送信が完了するとすぐにメモリ内に保管されて匿名化されます。&aip=1 パラメータがリクエスト URL 内に検出された場合(ga.js または analytics.js で匿名関数の処理後にアナリティクスの JavaScript によって追加される)、メモリ内でユーザーの IP アドレスの最後のオクテットが 0 に設定されます。たとえば 12.214.31.144 という IP アドレスの場合は 12.214.31.0 に変更されます(IP アドレス が IPv6 アドレスの場合は、128 ビットのうち最後の 80 ビットが 0 に設定されます)。これが終わってはじめて、匿名化処理のリクエストがディスクに書き込まれて処理されます。IP の匿名化を使用している場合、リクエストの送信完了後、ほぼ瞬時に匿名化がメモリ内で行われるため、完全な IP アドレスがディスクに書き込まれることはありません。

この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。