アマゾンの制限に引っ掛かった!

■ アマゾンの制限に引っ掛かった! ■

こんにちは。tanzan です。

ちょっと前にアマゾンのアフィリエイトが好調、と書いたばかりでしたが、新しいサイトを作っていたらいきなりアマゾンAPIのサイトからエラーが返ってきてしまいました。

「えええ!」

と調べてみると、「1時間に2000回以上の呼び出しがあったので停止します」ですと。

あれ?1秒間に1回の呼び出しがOKだったはず…と思って、注意書きを調べてみたらここにありました

関連部分を引用してみましょう。

「Product Advertising APIの目的は、アマゾンの商品を宣伝し、それにより、アソシエイトがアマゾンの宣伝広告を制作しアマゾンへトラフィックを誘導することによって紹介料を獲得できるようにすることです。しかしながら、一部の開発者様が、非常に大量の商品データを要求しながら、非常に少ない商品の売上額しか発生させていないことが判明しています。

Product Advertising API利用ガイドラインは、APIの公正かつ効率的な使用を促進するために設定されます。Product Advertising APIへのアクセスのために使用される各アカウントは、1時間につき2,000リクエストまでの当初利用限度が認められます。その後は、各アカウントは、30日間に発生する出荷された商品の1時間あたりの収益100円ごとに、1時間につき500リクエスト(1時間につき最大25,000リクエストまで)が受けられます。」

このような注がいつ入ったのか気がつかなかったのですが、いずれにしろ僕のサイトからの呼び出しが1時間に2000回を超えたということ。

1時間に2000回も呼び出されている、ということは、大雑把に言えば2000ページ近くが表示されていることになりますから嬉しいことですが、エラーが出てしまってはリンクも商品情報も表示されませんから元も子もありません。

そこで急きょ、アクセス数が多いサイトのトップページなどから API を呼んでいたものを、直接の固定リンクへと変更。

続いて、個別の商品ページはASIN番号を調べて、Amazonから取得してきたデータを3日間は僕のサイトのサーバー内に保存をするようにプログラムを書きました。

まだ一部のサイトでしか対応ができていませんが。

注書きをよく読むと「30日間に発生する出荷された商品の1時間あたりの収益100円ごとに、1時間につき500リクエスト(1時間につき最大 25,000リクエストまで)が受けられます。」とあります。

じゃあ、僕のアカウントでは1時間あたりの収益はいかほどかなあ、うまくしたら1時間100円を超えてくれないかなあ、と思って計算してみたら、約40円。うーん。これでは容量アップはしてもらえません。

1時間当たり100円の収益だと1ヶ月でいくら?と逆計算してみると、7万2千円。

僕の場合だと、呼び出し回数を抑えつつ、収益を今の2.5倍にしないといけません。うーん。これは頭が痛い。呼び出しを増やして利益を増やして来ていますから。

とりあえず、アクセス数の多いサイト数ヵ所に応急的な対応を施し、一晩寝てから様子を見てみると、まだおかしい。しかも、夜中に相当数のアクセスが。それで気がつきました。

「これはクローラーだ!」

検索エンジンや、検索エンジンを装ったところがWEBの情報を集めるために送り込むクローラー。ロボットとも言いますが、そのアクセスが集中し、僕のサイトのページを読み込むたびにアマゾンAPIにリクエストが送られていた模様。

どうりで1時間に2千回の呼び出しなんて不自然に多いと思いました。

でも対策は?

これまた困りました。検索エンジンを閉めだしてしまうわけにもいかないし、のさばらせておくわけにもいかないし。

そこで僕のサーバーの方にデータが保管されているページに関してだけ検索エンジンのアクセスを許可し、データが保管されていないページに関しては、検索エンジンをはじくように変更。

アクセスの多いサイトから順次対策をとって行ったら、問題発生から丸1日以上たってやっとエラーが出る頻度が減ってきました。やれやれ。