Rinkerの楽天商品検索でリクエスト回数が多すぎ問題がV1.7.7でほぼ解決しました。
Amazonと楽天、そしてヤフーショッピングの商品リンクボタンを並列できれいに表示できるWordPressの人気プラグイン「Rinker」。
アマゾンや楽天でのキャンペーン情報を自動でボタン上に表示できる機能が便利で使わせてもらっています。
Rinkerは非常に便利なプラグインなのですが、楽天アフィリエイトの機能を使った商品検索をする際に、リクエスト回数が多すぎますというtoo many requestsエラーが多発するのが評判を悪くしていました。
このtoo_many_requestsは、楽天商品検索APIを呼び出した時に返されるエラーメッセージで、楽天デベロッパーズのサイトでもエラー書式が以下のように公開されています。
類似機能のWPアソシエイトポストR2では楽天商品検索でエラーになっていなかった
Rinkerと昔から競合関係にあって類似した機能をWordPressプラグインで提供しているのが、WPアソシエイトポストR2です。
下記が、実際にWPアソシエイトポストで作成した商品リンクです。
私自身長年WPアソシエイトポストR2を使ってきましたが、RInkerとは違って楽天の商品検索を行ってもリクエスト回数が多すぎますというエラーは見たことがありませんでした。
これは楽天商品検索の実装方法がWPアソシエイトポストとRinkerで異なっていたためです。
RinkerもWPアソシエイトポストと同じ方式採用でエラーが解決
WPアソシエイトポストの楽天商品検索では、楽天のアフィリエイトIDだけでなくアプリIDも指定する必要がありました。
それに対してRInkerはバージョン1.7.6まで楽天のアフィリエイトIDだけを使って商品検索機能を提供していました。
WPアソシエイトポストやRInkerは、楽天が公開しているAPIをプラグインのプログラム内から呼び出す事で商品検索を実現し、検索された商品に対するアフィリエイトリンクを生成しています。
この楽天が公開しているAPIにはアプリケーションごとに1秒間に1回以下というリクエスト制限が設けられています。
1つのapplication_idにつき、1秒に1回以下のリクエストとしてください。
出典:楽天APIの利用制限
バージョン1.7.6までのRinkerは、楽天のアプリIDを指定していなかったので、1秒間に1回以下という制限に引っかかっていたのです。
それだけRinkerを利用する人が多いという意味でもあります。
バージョン1.7.7からはWPアソシエイトポストと同じく楽天のアプリIDも設定できるようになり、これによってブログ利用者それぞれが1秒間に1回以下のリクエストになるので、リクエスト回数が多すぎますというエラーは基本的に発生しなくなるという訳です。