問題の概要

Googleアナリティクスに送信しているパラメーターの1つに「aip」と呼ばれる聞き慣れない項目があります。これは、IPアドレスを匿名化するかどうかを表しており、この値が指定されていると、IPアドレスの4つの数値のうち、一番最後の数値が「0」として計測されます(aipのパラメーターの値によらず、aipパラメーターが含まれていれば問答無用で有効化されます)。

つまり、本来のIPアドレスが「103.5.140.133」であれば、GoogleアナリティクスはこのIPアドレスを匿名化して「103.5.140.0」と記録します。

この機能は、公式ヘルプ「Google アナリティクスでの IP の匿名化」でも説明されているように、一部の国において、完全なIPアドレス情報の保管を禁じている場合があり、その要件を満たすために存在すると考えられています。

Web版のGoogleアナリティクスにおいては、この「aip」パラメーターはデフォルトでは指定されておらず、匿名化処理は行われません。

AMP Analyticsにおける問題

実はAMP Analyticsでは、この「aip」パラメーターのデフォルト値がtrueとして指定されてしまっています。この問題は、Githubのamp-by-exampleに寄せられたIssue Why doesn't Google AMP Analytics adhere to tracking filters? #665を調べている時に気づきました。

通常版のGoogleアナリティクスであれば、IP匿名化は行われていないので、IPアドレスの除外フィルタに設定するIPアドレスは自身の固定IPアドレスをそのまま入れておけば問題ありません。しかし、AMP Analyticsでは、IPアドレスは一番最初の処理の段階で匿名化されており、末尾部分が「0」に書き換えられています。そのため、自身のIPアドレスをそのまま除外フィルタに入れてもマッチするIPアドレスは存在せずに、内部トラフィックを正しく除外することができません。

もしどうしても除外したい場合は、除外フィルタに設定するIPアドレスの末尾を「0」にすることが考えられますが、除外対象となるIPアドレスの範囲が広くなってしまい、余分なものまで除外してしまうので実施の際は十分な検討が必要です。

AMP Analyticsの開発者はもしかしたら、EU近隣諸国の人が多いのかもしれません。

このままでは、AMP Analyticsの計測に問題が発生するだろう、ということでamphtmlのGithubにIssue「AMP Analytics: Make the "aip" parameter changeable to false」を作成しました。このIssueは2017年4月ごろに実装が行われ、masterブランチに取り込まれ、一般のAMP Analyticsの開発者も問題を回避できるようになりました。

IPアドレス匿名化の影響を受けないようにするには

IPアドレス匿名化の影響を受けないようにするには、AMPサイトに設置するトラッキングコードを開発者側で変更する必要があります。そしてこの変更が少しトリッキーなので注意する必要があります。

Googleアナリティクス公式の開発者向けヘルプのコードを、IPアドレス匿名化の影響を受けないようにするには、下記のように変更する必要があります。

<amp-analytics type="googleanalytics" id="analytics1">
<script type="application/json">
{
  "vars": {
    "account": "UA-XXXXX-Y",
    "anonymizeIP": "" // ここを追加する
  },
  "triggers": {
    "trackPageview": {
      "on": "visible",
      "request": "pageview"
    }
  }
}
</script>
</amp-analytics>

anonymizeIPの値をtrueかfalseかで指定したいところですが、aipパラメーターは値が未指定(やfalse)であってもaipパラメーターが存在する時点で匿名化されてしまいますので、単純な設定で実装することができなかったようです。ちなみに、この"anonymizeIP"のデフォルト値は、"aip"となっておりこれをそのままパラメーター名として使っているようです。

さらに、この問題をややこしくしている点として、この指定は現時点ではAMP版Googleタグマネージャからは行えないという点です。なので、現時点ではこの問題に対する対処法は次の3パターンが考えられます。

  • 余分に除外されてしまうが、IPアドレスの末尾を0としてビューフィルタに設定する
  • AMP版Googleタグマネージャを使わずに、JSONトラッキングコードを利用する
  • IPアドレスの除外は諦める

自分であれば、AMP版Googleタグマネージャの自由度がまだまだ低いこともあり、他にもタグマネージャでは利用できない機能が多いことから、「AMP版Googleタグマネージャを使わずに、JSONトラッキングコードを利用する」を選択すると思います。

まとめ

AMPはどんどん進化しており、国内でも大手グルメサイトの「食べログ」でも導入されるようになってきました。「食べログ」ではAMPページとは気づかないくらい通常のモバイルページっぽく仕上がっており、今後も国内で普及していくと見られます。

一方で、いくつかの課題も見られています(自分がウォッチしているのはAnalytics関連だけですが)。今後のさらなる普及に向けて、解析面でも安定して利用できるような状況を目指したいですね。