農場主の日常

なんちゃってエンジニアの日常をつらづらと

Amazon APIの仕様変更への対応

 更新再開したこのブログ、NP_Amazonの画像が出ない問題は、以下のAmazon APIの仕様変更に起因する。
"2019/01/23 - Product Advertising API 利用ポリシーの変更について 変更内容について Product Advertising API (以下PA-API)ではこれまで全てのお客様に初期状態にて1秒間に1リクエストのサービス提供をしてまいりました。 2019年01月23日よりこの条件を変更し、過去30日以内の発送済み売上商品が発生している場合、1日のリクエスト上限を8,640リクエストとし、追加の日次リクエスト可能数の上限を毎日動的に変更する下記仕様といたします。 初期リクエスト可能数 : 1日あたり 8,640リクエスト(API利用開始より60日間) PA-APIより取得した商品リンクより発生した、過去30日間の発送済み商品売上$0.05(日本円で約5円)ごとに1リクエスト追加 1日の最大リクエスト可能数は、1日あたり864,000リクエスト 売上実績の発生がない場合は、PA-APIの利用開始はできません。 また、発送済み商品売上が過去30日以内に発生していない場合、PA-APIをご利用いただけなくなる恐れがございます。 なお 、Amazon Link Builder(WordPressプラグイン)のご利用についても、先に挙げた条件が適用となり、売上実績が必要となります。"

アソシエイト・セントラル
 要は、リンクから商品が売れてないサイトの場合、APIを使用不可とするよ。
 1日に使用できる回数も、売り上げに伴って調整するよということ。うちのサイトの場合、買ったもののデータベースとして使用していたので、売り上げはほぼ0。なので、絶望的ということに。
 というわけで、楽天に乗り換えることを検討した。

楽天のAPIはどうなのか?


 少し間が開いたけれど、最後の大幅更新は2015年。この時、自作プラグインのNP_Rakutenは当時の最新のAPIに合わせて改造した。
 楽天APIのアクセスは、配布されていたSDKを利用して作成した。
楽天ウェブサービス: SDK一覧
 調査してみると、2015年のものが最新で、私がアップデートしてから1回バージョンアップしたようだ。だけど、更新履歴を見る限りは影響がないので、このまま動作しているSDKを更新せずに使用することにする。
 そして利用規約を確認。
楽天ウェブサービス: 楽天ウェブサービス規約 | ご利用ガイド
 Amazonと大きく違うのは、価格とか在庫状況を表示するのに、情報を取得したタイミングを表示する必要がないということ。この表示は変更するか。
 アクセス頻度は1秒1回。プラグインでは情報を最低1時間キャッシュするようにしているので、まあ大丈夫だろう。
 また、2015年の更新当初から、ロゴが変わったようだ。NP_Rakutenのロゴは楽天Webサービスのロゴだったので、これは変更が必要なようだ。

 ありがたいことに、パラメータは以下のリンクで確認可能。
楽天ウェブサービス(RAKUTEN WEBSERVICE) : APIテストフォーム

更新の方針


 NP_Amazonでは主に本とかCD、DVDの紹介だったので、楽天Books APIを使用することを検討した。
 しかし、楽天Books APIはAmazon APIなみに商品の詳細情報を得られたのだけれど、肝心の商品コードをとることができない。
 NP_Rakutenは、商品コードをキーに使うので、これが得られないと同じように使用することはできない。
 そこで、これまで通り楽天商品検索APIを使用して、楽天Booksの場合にはショップコードに「book」を、電子書籍がある場合には楽天Koboのリンクを作るためにショップコードに「rakutenkobo-ebooks」を指定することにした。
 更新の手順として
  • 非公開の管理ページで、NP_Amazonのタイトルで楽天Booksを検索。商品コードを入手
  • 書籍の場合、同様に楽天Koboを検索し、商品コードを入手
  • それ以外は、楽天商品検索で商品コードを入手
  • ブログ本文のNP_Amazonのタグを、上記のNP_Rakutenのタグに張替え

 更新前が大体280件くらいるが、地道にすべて張り替える。日曜日までにこれをすべて完了した。

その他の修正


 その他、以下のような見た目の改造を行った。
  • NP_Rakutenの表示内容を変更。
  • CSSを少しいじって、上下のスペースを調整。
  • 右の商品リストのタイトルの長さを短縮表示に
  • 商品画像の幅を固定。

 また、楽天の商品でタイトルが出ていなかったものがいくつか。これは、2015年のサイトの移動時に、移行あるいはNP_Rakutenのバージョンアップに失敗したもの。
 これは、バックアップデータからデータを入れなおして復活。
 どっちにしろ、楽天からお店撤退してしまったものばかりだから、商品コードを変更してもいいんだけどね。
 こういうことがないように、リンク切れの場合にはほかの商品を検索してデータベースをアップデートするようにすればいいのかもしれない。
 また、トップページから、Amazonの商品リンクを削除して楽天のみに変更。ついでに、あまり意味のなかったGoogleMapsへのリンクも削除。
 これは多少ページの読み込みに効果がある。

残っている問題点


 NP_Rakutenのリンクで、画像が正常に出ていないものがある。
 これは、画像のリンクが残っていて、1x1pxの画像がセットされてしまうため。商品検索数が0の場合には置き換える処理を行っているんだけど、これがうまく動作していないらしい。
 とりあえずこれは保留にして、次のプラグインの調整を行いたいと思う。


関連記事[GoogleMaps rakutenkobo-ebooks SDK

コメント


コメントはありません。



コメントの追加


トラックバック

このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。

↑ PAGE TOP