Amazon国別サイト横断検索のために - Amazon Product Advertising API (その2)

前回Amazon Product Advertising API が利用可能になったのだけれど、主に利用可能なリクエストパラメータについてまとめとく。

Amazon Web サービス入門(Product Advertising API)」が整理されていて良いのだけど、少し古い部分があるのと、自分で使いやすい形にまとめたいので、「Developer Guide (API Version 2011-08-01)」を元にして整理する。

基本パラメータ

オペレーションに関係なく指定するパラメータ群で、検索条件等のパラメータに依らず決まる。

基本パラメータ
項目 説明 参考URL
ベースURL パラメータでは無くてアクセス先URLのベース部分(endpoint)。URLによってAmazonの国別サイト(現在9か国)を切り替えられる 日本の場合:http://ecs.amazonaws.jp/onca/xml Anatomy of a REST Request
Service 利用サービス名を指定。基本的には固定 Service=AWSECommerceService Required Parameters
AssociateTag Amazonアソシエイト用のIDを指定 AssociateTag=XXXXX-22 Required Parameters
AWSAccessKeyId 利用者のAccess Key IDを指定 AWSAccessKeyId=XXXXXXXXXXXXXXXXXXXXX Required Parameters
Version APIバージョンを指定 Version=2011-08-01 General, Optional Parameters
Operation 実行する処理を指定する。主なものは (ItemLookup:ASINなどで商品を検索), (ItemSearch:商品名や著者名でキーワード検索), (SimilarityLookup:関連商品の検索) がある。 Operation=ItemSearch Operations

ここまでをまとめると以下のようになる。

http://ecs.amazonaws.jp/onca/xml
?Service=AWSECommerceService
&AssociateTag=XXXXX-22
&AWSAccessKeyId=XXXXXXXXXXXXXXXXXXXXX
&Version=2011-08-01
&Operation=ItemSearch

これ以外にも、Common Request Parametersを見ると、結果として取得するデータのコンテンツタイプを指定するためのContentType(Styleと併用か)等がある。

Operation=ItemSearch のパラメータ

キーワードなどを指定して商品検索を行う。今回はこれを主に使うことになるはず。使えるパラメータの説明は「ItemSearch」を見ればよいけど、主なものをまとめておく。

検索条件指定パラメータ

検索条件指定パラメータ
項目 説明 参考URL
SearchIndex (必須)検索対象のカテゴリを指定する。All, Books, Electronics, Software などが指定可能で、指定した値(カテゴリ)によって追加パラメータで使用可能なものが変化する。また、指定可能な内容がlocaleによっても変化するのでやっかい。 SearchIndex=Books
Search Index and ItemSearch Parameter Combinations
Search Index Support by Locale
Common ItemSearch Parameters
BrowseNode カテゴリ内の詳細なジャンルをブラウズノードIDで指定する。カテゴリトップレベルのIDからして国毎に異なる。BrowseNodeLookupオペレーションを利用することで、ブラウズノードIDの構成と値を取得可能だが、今回の目的には過剰か。 BrowseNode=465610 Browse Node IDs
Keywords 検索キーワードを url encode して指定する。キーワードの検索対象は商品のタイトルだけでは無く説明文やアーティスト名などが様々なものが検索対象となる。全てのSearchIndex指定で利用可能なので、これが基本パラメータとなる。 Keywords=harry+potter Search Index and ItemSearch Parameter Combinations
Title タイトルを対象にして検索する。Keywords と異なり、あくまで title だけが対象となる。 Title=harry+potter Search Index and ItemSearch Parameter Combinations
MerchantId 出品者を表すID。デフォルトでは全ての出品者の商品が対象となるが、「Amazon」を指定することでAmazon出品の商品のみが扱われる。 MerchantId=Amazon ItemSearch
Condition 対象商品の状態を表すパラメータ。デフォルトは"New"で新品のみ。中古品を入れたい場合は"All"を指定する。 Condition=All ItemSearch
Availability 在庫の存在する商品のみを対象とする場合に指定する。MerchantId や Conditionと組み合わせて使用する必要がある。(Condition=Newではダメ) Availability=Available
ItemSearch
Availability Parameter

他に色々と検索に使えそうなものがあり、例えば以下のとおり。(利用可能なカテゴリに注意する必要はある)

Manufacturer=任天堂
Brand=任天堂
Publisher=講談社
Author=諸星大二郎

また、Books でしか使えないが Power Search というパラメータ指定方法もある。

検索結果制御パラメータ

検索結果制御パラメータ
項目 説明 参考URL
ItemPage 検索結果のページ数を指定する。現在のAPI仕様では最大で10ページまでの指定しかできない様子。 ItemPage=ページ番号
Paging Through Results
Maximum Number Of Returned Pages
Sort 結果のソート条件を指定する。指定可能な値は商品カテゴリー毎に異なる。Books の場合、(daterank:発売日順(降順)), (titlerank:アルファベット昇順)など。locale毎に異なることに注意する。 Sort=pricerank
Sorting Results
ItemSearch Sort Values By Locale
ResponseGroup 取得対象情報を<グループ1>,...,<グループn>の形式で指定する。デフォルトは Small 指定と同じ。 ResponseGroup=Request,Images,Reviews Response Groups

結果の内容は必要なものに絞り込む方が良いわけで、ResponseGroupで取得対象を適切に指定する必要がありそう。主なものは以下の通り。

  • Request:リクエスト情報
  • ItemAttributes:商品の詳細情報
  • Images:商品の画像
  • Similarities:関連商品
  • BrowseNodes:ブラウズノード
  • Small:「ASIN」や「Title」の他に「Manufacturer」や「Role」など「ItemAttributes」を指定した時に取得できる情報の一部を取得。
  • Medium:「Small」に加えて画像や販売に関する情報を追加して取得できるように設定されたグループ。
  • Large:「Medium」に加えてレビューなど関連情報を取得できるように設定されたグループ。
  • OfferSummary -or- OfferFull:商品販売情報


あとは、色々と組み合わせで最適なものを選択することになる。相変わらず長くなったので、実際に触ってみての覚書は別に分けることにする。