そこそこ優秀なアクセス解析ツール、Matomo。食わせたログに Bot が入っていて、それを除外してデータを見たいと思っても、一筋縄では行かない。グローバル設定で User Agent の文字列で除外する項目があるが、それに登録しても、データが反映されてしまう。これを何とかする方法は無いだろうか。
グローバル設定
Matomo は複数のサイトを管理できるのだけど、それら全てに適用させる設定がある。ログインし、上部のギアアイコンから、Websites -> Settings -> Global list of user agents to exclude で、テキストエリアのフィールドに一行ずつ登録する。
1 2 3 4 5 6 7 8 |
bot FeedBurner WordPress Yahoo! DuckDuckGo Bing Jetpack |
これで新しく入ってきたログに対してはフィルターされるっぽい。しかし、既存のデータに対しては適用してくれない。
Dashboard -> View -> Visitor Log からも Bot: ...
のエントリーが並ぶ。
で、軽く調べてみたが、ユーザーエージェントでフィルタリングする機能がない、みたい。(参考: Best way to filter out visitors without Javascript activated in the PHP tracker) セキュリティホールを探るようなボットの動きをトラックする情報も保管しつつ、オーガニックなアクセスとの切り替えというのができないっぽい。
ただ、色々いじくっていて、それっぽい機能を見つけた。
セグメントの追加
上部に All Visits というプルダウンメニューがある。
ここから Add New Segment をクリック。ポップアップのフォームで Name は Organic など適当に入れ、Action in Visit をCustom Variable name 1 (scope visit) を選択。次にすぐ右隣のプルダウンは is を選び、次のインプットフィールドに Not-bot を入力し、Save & Apply を押す。
で、All Visits のところを Organic (追加したセグメント名) にすると、Bot とマークされているエントリーは消える。ただ、Non-bot でも、Jetpack のモニタリングや WordPress のピングバックのアクセスが入ってるので、Matomo 側で認知できていないものなどは完全に除外できてはいない。
なぜユーザーエージェントでフィルタリングする機能を設けていないのか謎。Custom variable name とか、名称としてわかりにくいし。あと、Bot の判定の個別設定も見たところない。んー。
あと、毎回セグメントを選択しなければいけないというのが難点。最初にページを開いて、セグメントを選択しなければならないので、データのロードが2回行われることになり、1回ロードするだけでも重いのに、これを最低2回行うのは、結構な時間の浪費だ。これを日常的に頻繁に行うとなると苦痛が予想される。
所感
ちょっと使ってみた感想として、Matomo が使用するデータベースの量も結構かさばるし、できるだけ肉を削ぎ落とした使い方をするのが無難かな、という印象。CSS ファイルなどの静的コンテンツへのアクセスや、BOT を除外してデータを軽くして、それらは AWStats に任せる。情報の詳細度を含めた機能的には Google Analytics のほうが優れているをのだけど、JavaScript を切った訪問者のトラックができるというのが最大の強み。そして、自分で運用できるのでプライバシーの観点からサードパーティサービスに頼りたくない人向け、といった感じだろうか。