Yahoo Overtureでリスティング広告を入稿すると、サイトが存在するか・内容が適切かどうかをチェックするためにクローラーが巡回してきます。このクローラー、入稿したキーワード分だけアクセスをしてくるので、大量にキーワードを登録すると、それだけの数のアクセスが来ることになります。つまり、1万キーワード入稿すると、1万回クローラーが来ます。しかも1秒間に数十アクセスのスピードで。
これだけアクセスが来ると、貧弱なサーバでは捌ききれずロードアベレージが上がって、最終的にはサーバが落ちることもあります。本来アクセスして欲しいユーザが、広告審査のためにアクセスできなくなったら、これは本末転倒…。というわけで、Overtureクローラーを弾きましょうというお話です。
Overtureのクローラー回避
クローラーについて
Yahooのヘルプページを見ると
スポンサードサーチのクローラーのIPアドレスは以下のとおりです。
124.108.66.79
124.108.66.80
124.108.66.81
124.108.66.82
124.108.66.83
124.108.66.84
124.108.66.231
124.108.66.232
124.108.66.233
124.108.66.234
124.108.66.241
124.108.67.241※IPアドレスは予告なく変更される可能性があります。
※ユーザーエージェント情報は非公開です。
※広告審査の公正性を図るため、クローラーの頻度や仕様に関しましては開示しておりません。
とあり、ユーザーエージェントを非公開にしています。が、実際にアクセスしてきているログを見ると
- Mozilla/5.0 (compatible; Yahoo!-AdCrawler; http://help.yahoo.com/yahoo_adcrawler)
- Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) RPT-HTTPClient/0.3-3E”
この2つがYahooから来ていることが分かります。他にもあるかもしれません。なお、上記で公開しているクローラーのIPアドレス以外からも来ているので、もしかしたらヘルプページの情報が古いのかも知れません。(なおRPT-HTTPClientはYahooOverture専用のものではなく、他のサービスでも利用されているHTTPパッケージです)
(*)インタレストマッチのクローラーは別途あります。インタレストマッチのクローラーについてを参照してください。
実際に回避する方法
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} Yahoo!-AdCrawler [OR] RewriteCond %{HTTP_USER_AGENT} RPT-HTTPClient RewriteRule ^.*$ yahoo_overture.html [L]
色々と試しましたが、これが現状ベターかなと思います。
完全にアクセスを拒否するのではなく、Overture用に静的なHTMLを用意しておき、そこへmod_rewriteを使ってリダイレクトするという方法です。
ただ、このクローラー…本当に中身を見ているかどうかは疑問です。中身からっぽのHTMLを返したり、アクセス自体を拒否しても広告の審査が通っている現状。調べてもあんまり情報出てこないし、実際どうなっているんだろうか謎です。