先日8月3日についにconeco.netの商品検索APIがサービスを終了しました。リクエスト制限もゆるく使い勝手が良かったのですが残念です。
で、今生き残っている商品検索APIはどれなのか調べてみました。
Amazon Product Advertising API
利用料 | 無料 |
レスポンス形式 | JSON, XML |
検索対象サービス | http://www.amazon.co.jp |
リクエスト制限 | 1時間に3600回以下(制限の緩和施策あり) |
アフィリエイトの利用 | ◯ |
Amazonの検索APIです。国内最大のECサイトと言っても過言ではありませんが、AmazonのAPIを使用するには結構骨が折れます。タイムスタンプや署名・クエリの並びまでもがガイド化されています。ですがリクエストは「1時間に3600回以下」であるため突発的なリクエスト増加にも対応できそうです(1秒一回の表記もあり)。APIを使用して得たアフィリエイト収益に応じて最大「1時間に36000回以下」までにリクエスト数を増やすことが出来ます。計算式は
[リクエスト数の上限 / 秒] = 1 + [ (過去30日間の配送済み商品売上実績/460,000円)の小数点以下を四捨五入した数 ]
となります。最大10リクエスト/秒 にするためには4,140,000円の売上が必要になります。紹介料ではなく売上ですから電化製品など高い商品を紹介するサイトであればそう難しくはありませんが、CDや雑貨などは上限に達するのはかなり難しいかもしれません。
Amazonなのでアフィリエイト的には収益化しやすいですね。
楽天WEB Service
利用料 | 無料 |
レスポンス形式 | JSON, XML |
検索対象サービス | http://www.rakuten.co.jp |
リクエスト制限 | 1秒に1回以下(制限の緩和施策あり) |
アフィリエイトの利用 | ◯ |
楽天市場の検索APIです。リクエスト構造の制限が緩くすぐにIDも発行してもらえるので楽です。販売開始時期などの検索パラメータが無いため、新着商品が検索しづらいのが玉に瑕です。リクエスト数制限は1秒に1回以下としか書いていないので突発的なリクエストには弱そうです。
リクエスト制限は厳しいですが、楽天は自社の商品情報を24時間キャッシュすることを許可しています。つまり24時間以内の商品情報であれば自分のサーバーキャッシュから情報を取り出してもいいのです。訪問者数の少ない深夜に当日の商品情報のキャッシュをある程度構築するのもいいかもしれません。
Amazonに次いで大きな市場ですから検討してみましょう。
Yahoo! ショッピングAPI
利用料 | 無料 |
レスポンス形式 | JSON, XML |
検索対象サービス | http://shopping.yahoo.co.jp |
リクエスト制限 | 1日50000回以下(制限の緩和施策あり) |
アフィリエイトの利用 | ◯ |
楽天同様Yahoo!アカウントがあればすぐに利用可能なAPIです。「爆速JSONP」というYahoo!のフレームワーク(Mustache.js入り)によりjavascriptの知識が皆無でも簡単に利用できるようになっていたりと、よりカジュアル利用に特化しているように感じます。API制限も1日50000回と厳しい条件です。
非営利目的での利用が条件ですがアフィリエイトは利用可能です。矛盾している気がしますが法人組織的な利用は申請が必要と言いたいだけなのかも。交渉次第でAPI制限を増やすことも出来ますが実績が伴います。
爆速JSONPを使えばセットアップは簡単なのでテストなどに向いてそうです。
Value Commerce API
利用料 | 無料 |
レスポンス形式 | JSON, XML |
検索対象サービス | Yahoo!ショッピング, Amazon, 楽天, その他多数企業 |
リクエスト制限 | 1秒10回以下 |
アフィリエイトの利用 | ◯ |
アフィリエイト専用です。大手ショッピングサイト他、多数の広告主が参加しています。商品を検索というよりも商品の広告を検索して掲載するイメージでしょうか。機能やリファレンスは十分ではありませんが、リクエスト数制限が1秒10回と他のサービスと比べて緩いので掲載しました。
まとめ
これらのサービスで一番困るのがリクエスト制御です。突発的なアクセスに対してどのような制限が有効なのかを考える必要があります。1秒10回でも正直言って厳しめのリクエスト制限です。coneco.netがいかに偉大だったことか。これらを考慮すると楽天市場のデータを一部キャッシュして利用する方法を利用するのが一番クライアント的にもデベロッパー的にも優しいのではないでしょうか。公式に許可していますので心置きなくキャッシュして効率よくAPIを利用できます。