リファラースパムを正規表現でフィルタリングしてみた。

By | 2018年12月6日

はじめに

本Webサイトの記事をご覧いただくとなんとなくおわかりいただけるかと思いますが、Google AdSenseとAmazonアソシエイトによる広告を設置しています。

それで、広告の効果の測定及び本Webサイトのページごとのアクセス状況の解析を目的としてGoogle Analyticsも導入しています。

「解析」と言っても、アクセスがあったかどうかによって一喜一憂するだけの簡単なお仕事なんですけど、そんな中にリファラースパムによるアクセスとか混ざっていると、後でGoogle AdSenseのレポート画面を見たときにページビューがいまいち伸びていなかったりすると、ちょっとがっかりします。

本Webサイトの管理人たるpandaといたしましては、誠に遺憾なわけです。(´・ω・`)

というわけで、リファラースパムに使われるドメイン名を正規表現でフィルタリングしてみることにしました。

スポンサーリンク

普通のフィルタリング。

リファラースパムをフィルタリングし、Google Analyticsによるカウントの対象から除外させるには以下の手順で設定を行います。

なお、Google Analyticsのインタフェース画面のレイアウトについてはこの記事を最初に書いた時点(2018年12月)のレイアウトを前提とした記述になっていますので、その後インタフェース画面のレイアウトが変化した場合には適宜読み替えをお願いいたします。

  1. Google Analyticsにログインしていない場合は、ログインする。
  2. 画面左下隅にある「管理」または歯車のアイコンをクリックします。
  3. 「管理」画面が表示されますので、「アカウント」のメニューにある「すべてのフィルタ」(下図の赤矢印)をクリックします。
  4. 「フィルタリング」画面が表示されますので、「+フィルタを追加」ボタン(下図の赤矢印)をクリックします。
  5. 「ビューにフィルタを追加」画面が表示されますので、「フィルタ名」(下図の赤矢印(a))を入力後、「フィルタの種類」の「カスタム」(下図の赤矢印(b))をクリックします。
  6. 画面が下図のように切り替わるので、下図の赤枠内の項目を以下のように設定します。
    • 「除外」を選択します。
    • 「フィルタフィールド」はプルダウンリストから「キャンペーンのソース」を選択します。
    • 「フィルタパターン」にはリファラースパムの疑いのあるドメイン名を入力します。

  7. 画面下部の「ビューにフィルタを適用」セクションの「使用可能なビュー」(下図の赤矢印(a))からフィルタを適用させたいビューをクリックして選択し、「追加」ボタン(下図の赤矢印(b))を押す。フィルタを適用させたいビューが「選択したビュー」の方に移動したことを確認します。
  8. 画面の一番下にある「保存」ボタンをクリックします。
  9. 画面が下図の表示に戻りますので、リストに追加されたことを確認します。

正規表現を使ったフィルタリング。

問題点。

とりあえず前節の手順を繰り返すと、フィルタリングの対象となるアクセスを設定することができます。

しかしながら、上記の例で考えますと、仮に”12-seo.example.com”というドメインをフィルタリングした場合、

100-seo.example.com

とか、

99-seo.example.com


スポンサーリンク

といったような似たようなドメイン名についてはフィルタリングができません。

また、フィルタリングをする対象となるドメインごとに設定をするのも手間がかかります。

そこで、正規表現ですよ。

というわけで、「ビューにフィルタを追加」画面の下部にある「ビューにフィルタを適用」セクションのちょっと上にある「正規表現については、こちらをご覧ください。」のリンクをクリックします。

すると、説明画面が開きますが…

どの程度まで複雑な正規表現が書けるのか、いまいちわかりません… (´・ω・`)

この記事を最初に書いた時点(2018年12月)の使用例として”\d”を使った例の記載があるので、例えば「フィルタパターン」に

\d+-seo.example.com


スポンサーリンク

と入力してフィルタを作成しておけば、前に挙げた

100-seo.example.com

とか、

99-seo.example.com

であるとか、

12-seo.example.com

ぐらいであれば、表示させないようにすることができそうです。

実在のリファラースパムである疑いのあるドメイン名を対象にフィルタリングの設定をしてみたところ…

Google Analyticsの統計データにフィルタリング条件にドメイン名がマッチするものが表示されなくなりました。😎

まとめ

ここまで、Google Analytics上で正規表現を使ってリファラースパムをフィルタリングする方法について書きました。

今までに見かけたリファラースパムに対しては、正規表現を使わずに個別にフィルタ設定を行っていました。しかしながら、上記のようにドメイン名中に含まれる文字列のうち数字だけを変えたものが出現してからはさすがに正規表現が使いたくなっていたところだったので、Google Analyticsのフィルタ機能が対応してくれていて助かりました。

なお、この記事の設定例として使用しているドメイン名はRFC2606で定義されている架空のものです。そのまま設定をしてもおそらく効果はありませんので、ご注意をいただきますようお願いいたします。

この記事は以上です。

References / 参考文献