数週間前のことである。僕のブログに貼ってあるAmazonへの商品リンクが、すべての記事で表示されなくなってしまった。AmazonJSというプラグインを使っているのだが、くるくるが回ったままになってしまう。

調べてみると、Amazonアソシエイトでは、30日以内に売り上げが発生していない場合、PA-APIが利用できなくなる、という規約変更がさり気なく行われていたことがわかった。PA-API (Product Advertising API) というのは、ASINを渡すことによって、商品タイトルや値段、画像のURLなどを返してくれるサービスである。

もちろん、PA-APIを使わずともAmazonアソシエイトのリンクを貼ることは可能であるが、その莫大な手間を考えればAmazonJSやRinkerなどのプラグインを使わずに商品リンクを貼ることは現実的とは言えない。

おかげさまで先日売り上げが発生したため、AmazonJSはまた正常に動くようになった。だが、また30日間売り上げが発生しないことがあれば、同じようにエラーになってしまうということだ。これはマズい。ということで、今回は、回復するまでの間に僕が行った緊急の対策を紹介しようと思う。

AmazonJSの場合は、amazonjs asin="xxx"というショートコードを設置することになるわけだが、ひとまずプラグインを停止してしまおう。

続いて、functions.phpにオリジナルのショートコードを設定する。ちなみに、AmazonJSのプラグインを停止せずに以下を設定すると、あまり喜ばしくないことが起こるだろう。

記事内のショートコードのパラメーターとして、asinだけでなくtitle1を設定する。title1が存在しない場合は「Amazonで検索: 関連商品」と表示されるようになっている。AmazonJSで使っていた"title"をそのまま使いたければ、"title1"にする必要はない。その辺は適宜。

ひとまず、超突貫工事ではあるが、これでなんとか商品ページへのリンクを貼り続けることができた。AmazonのURLの簡易的なフォーマットは次のとおりである。
www.amazon.co.jp/exec/obidos/ASIN/[ASIN]/[トラッキングID]/

以後余談である。今回のことで、AmazonJSからRinkerへの乗り換えを検討することになった。というのも、Rinkerにはキャッシュ機能がついているため、APIが切れてもなんとか使えるというのだ。それだけでも乗り換える価値がありそうだ。

また、カスタム投稿タイプみたいな感じて商品リンクをWordPress上で一元管理しておき、ショートコードにはそのpost_idを入れるという仕様である。post_idは複数の記事で使いまわすこともできるし、アフィリエイトしまくりな人には確かに便利かもしれない。しかも、Amazonだけでなく、楽天やYahoo!への検索リンクも自動生成してくれる。

しかし一方で、ちょっとしたものをサクッと紹介したいようなときでさえも、毎回商品リンクを新規作成しなければならず、ショートコードにASINを入れるだけのAmazonJSと比べると、これが結構手間なのだ。いくつかの記事で試してみたのだが、やっぱり手間である。以下Rinkerを使った商品リンクの見本(画像)である。

まあまあいい感じに見えるが、Rinkerへのクレジットが入っていることや、Yahoo!ショッピングの表記が間違っていること(!が存在しない)、ボタンの色が主張しすぎていることなどが嬉しくなく、すぐに使用をやめてしまった。クレジットを消したり、その他カスタマイズするためには、プラグインの制作者に寄付をしなければならないそうだ。まあ、ソースコードをいじればどのようにもカスタマイズできそうだが、そこはルールに従っておくべきだろう。

それで、結局のところ、AmazonJSを使い続けることにした。自分でカスタマイズしてあるだけあって、無駄のないデザインである。

気づいた方もいるかもしれないが、右下のAmazonロゴは画像ではなく、Font Awesomeである。

また、楽天へのリンクもないよりあった方がいいかと思い、これまた突貫工事で作ってみた。rakuten url="xxx" title="xxx"というショートコードによって、以下のように表示させるように設定した。URLは楽天アフィリエイトのウェブサイトからでコピペしなければならないが、楽天へのリンクは必要性があるときだけ設置すればいいという結論に至った。アフィリエイト界隈では、Amazon、楽天、Yahoo!へのリンクが必須だと言われているが、そんなの関係ない。おれはAmazon派だ。

functions.phpに設定する内容は次のとおりだ。先ほどのAmazonの非常用のものとだいたい同じである。

ということで、今回はAmazonのPA-APIが切れてしまったことで、Amazonへのリンクについて考察した話でした。参考にしていただければ幸いです。

これまた余談ですが、僕のポリシーとして、僕のブログをアフィリエイトでギラギラな感じにしたくないというのがある。もちろん、僕が本当にお勧めする上質な商品については、ちゃんと紹介したいし、するべきだと思う。一方で、昨今ネットを検索すれば、適当なまとめ記事やランキング記事ばかりが出てきて、どの記事も似たり寄ったり、本当に知りたい情報が逆に見つけにくいと思うことが多くなったように感じる。

それではいけないと思う。YouTuberが動画で語るように、ブロガーはテキストで語らなければならない。文章よりもリンクの方が主張しているような記事は、絶対に書きたくない。

余談は以上です。読んでいただきありがとうございました。