無効なアクセスを、カウントから除外するちょっとした工夫。

Google Analytics を導入して、設定画面上から除外アクセスなどを設定すれば、概ねマーケティング上参考にしたくないアクセスを排除することができます。

通常はこれで十分ですので、このコラムは「無駄にこだわった場合」という水準でもう少し考察してみたいと思います。
多くの場合は本当に無駄ですので、できれば暇すぎてどうしようもない時に読んでいただければと思います。

具体的には、攻撃の意図を持ったアクセスへの対応です。DDoS攻撃や、DDoS攻撃用踏み台を探す機械的なアクセスをイメージしています。
こうした攻撃にサーバ自体が無防備である場合、サーバが落ちて復旧できないというクリティカルな状況が延々と発生しますので、当然サーバ管理者は、ある程度自動で、あまりに連続したアクセスを繰り返す接続元を遮断するといった対応を実装していたりします。

攻撃がWeb領域に対して行われた場合、こうしたセーフティ機能が発揮されるまでの最初の数十アクセスは、HTMLが出力されることになります。つまり、Analytics にマーケティング上無視したいアクセスがカウントされていくことになります。
(Google Analytics では、デフォルト状態で既知の bot を排除するように設定されていますが、DDoS攻撃をデータ上排除できるわけではありません。)

不正アクセスグラフイメージ

まれに、こんなことになることもあります。

これらスパム的なアクセスが Analytics の統計データに反映されると「直帰率が上がる」「平均PV数やコンバージョンレートが下がる」など、必ずマイナスに働く一方、当然ながら訪問件数が増えるなど、ぬか喜びする状況にもなります。

さて、こうした攻撃的意図を持ったアクセスを Google Analytics に極力カウントさせないためにどんな方法があるでしょうか?

  • Cookie を受け入れないアクセスを排除することは、攻撃目的のアクセスを排除することに多少は役立ちます。ただし、Cookie を受け入れない設定にしたブラウザでのアクセスを(たとえ誰かがブラウザを使って正規な方法でアクセスしてきたとしても)全て排除してしまいますので、注意してください。あなたのWebサイトが、そもそも Cookie が使えないと正しく利用できないサイトである場合に妥当な対応となります。
  • Webサイト領域に攻撃を仕掛けてくる場合の多くは、その上に載っているCMSなどの弱点となるファイル名を指定してくるので、Webサイト側で正しく外部からのアクセスをコントロールする対処をしていれば、404や403(ページ)を返す様になっているはずです。これら、403/404ページに Analytics の計測タグを入れないことで、無駄カウントを排除できます。
  • 0.1秒以下のタイミング(普通人間がこのスピードでページ読めないだろと考えられる妥当な時間)で同じページを表示する際には、Google Analytics のタグを出力しないよう、プログラムを書くということもある程度意味があるでしょう。

 

「無駄にこだわった場合」と申し上げたのは、そもそも Google Analytics(無料版)は、データ量が多くなるとサンプリングして(実数でない)数値を出しますから、厳密性を求めても意味があまりないため、このコラムのようなことまでしなくても・・・ということです。
何事も、適度が重要です。

ただ、こうした発想ができると、思いも掛けず違うことに転用できることがあったりしますので、頭の体操と思っていただければ幸いです。