Amazonjsでprovided in the request for ItemIds is invalid や throttling in the API エラーが出るときの対処法

2020年9月29日ITamazon,wordpress,ブログ

なんか最近ブログのテコ入れをしてるカラスです。

いくつかのページでAmazonjsを利用した商品リンクが吹き飛んでるのを観測しました。

The value [商品のASIN] provided in the request for ItemIds is invalid.

というエラーが出ています。

ちなみに過去にPA-API v5への移行でやらかしてるのは記事にしてあります。

相当前なのでもう関係ないでしょう

どんな感じのエラーが出るの?

管理者状態で自分のブログを見ると、以下のように全部のamazonリンクが死亡しています。

で、症状としてはアイテムIDが無いとかそんな感じです。

原因について

これ、何度か見ているとたまにAPI throttlingというエラーに切り替わる事があります。

これはAPI呼び出しすぎというやつです。

で、僕のブログはおかげ様で継続してAmazonアフィリエイト売り上げがあるので、Amazon側からAPIを止められているという事もありません。

どうやら、一ページあたりの商品数が多すぎるようでした。

詳細がアマゾンマーケットプレイスwebサービスのドキュメントに乗っています。

https://docs.developer.amazonservices.com/ja_JP/dev_guide/DG_Throttling.html

簡単に言うと、一回のリクエストの最大数は15になっているみたいです。つまり、一ページから15個以上の商品をAmazonJSで呼び出してしまうとエラーが出る様子です。

これ、何回かに一回throttlingエラーが出なければ気付けなかったかもしれません。

対処法

途中で改ページを挿入して、表示するAmazonリンクを少なくすると、問題なく表示されるようになりました。

今までは一枚ページにこだわっていましたが今後はAmazonリンク次第でページ数を増やした方がよさそうですね。

なんとなくですが、商品リンクが10個を超えると怪しくなるようです。

在庫切れのリンクが混ざっているとこの数がさらに少なくなってるような気がしますが気のせいかもしれません。

その他の対処法

理由はわかりませんが、古いamazonJSで使っていたtitle=""などを削除しまくると表示されるページもありました。

理由が分からないので一応紹介だけ

まとめ

自分のブログはもっとよく見よう

古いページのAmazonリンクが切れてる事があるよ

どうやら一ページあたりのAPIリクエスト制限が渋くなっているよ

広告