コンテンツ単位でボットからのアクセスを無視する
自身のサイトに訪れたユーザのアクセス情報をイベント単位で取得し、レポートを作成したり、Mixpanelを使用するとき、
クローラなどのボットが凄まじいノイズっぷりを発揮し、
レポートがメチャクチャになります。
サイト単位やページ単位でボットのアクセスをスルーする場合は、"robots.txt"ファイルを作成すればOKですが、検索結果から消滅されると困ります。
"robots.txt"については参考URLを参照してください。
そこで別の手段として、さらに細かいコンテンツ単位で指定する場合や、
"robots.txt"ファイルを無視するボット対策として、
ユーザエージェントで判断する方法があります。
例えばGooglebotの場合は、ユーザエージェントに"Googlebot"が含まれるため、 以下のコードで簡単にスルーできます。
if !request.env["HTTP_USER_AGENT"].match("Googlebot") # TODO: end
同様の方法で"libwww"も簡単にスルーできたりします。
ちなみにGoogleアナリティクスには、ロボットをフィルタリングするための設定があるようですね。