function.phpでアソシエイトリンクを生成
Associates Link Builderの代替案

先日「Associates Link Builder」で情報を表示されない場合の対策を考え、うまいこと動いていると思っていたら、ますます表示されないページが増えてきた。お行儀が良くない対策だと自覚していたので仕方がないなと思い、JavaScriptによる強制再読み込みをオフにして手動で何度も再読み込みしてみたのだが、それでも表示されない。
Amazonのトラブルかなと思って調べてみると、そもそもの原因が判明。あまりにも売り上げが少ないので、「もっと売れるようになってから利用してね」ということらしい。

売上実績の発生がない場合は、PA-APIの利用開始はできません。
また、発送済み商品売上が過去30日以内に発生していない場合、PA-APIをご利用いただけなくなる恐れがございます。

なお 、Amazon Link Builder(WordPressプラグイン)のご利用についても、先に挙げた条件が適用となり、売上実績が必要となります。

アソシエイト・セントラル – ヘルプ
「Associates Link Builder」管理画面
売り上げが悪いと記事投稿画面で検索すらさせてもらえなくなる。世知辛い。

仕方がないのでAmazon標準のリンク作成ツールで置き換えようかと思ったが、利用しているページが多いので一つ一つ記事を修正するのは大変めんどくさいので、Associates Link Builder用のショートコードはそのままに、APIを利用せずにリンクを生成するようにfunction.phpに以下のコードを追加。

必要なのは商品コードである「asins」だけ。
「store」は複数のアソシエイトIDを使用していなければ不要。
「title」はほとんどの人は使用していないと思うが、商品紹介時にちょっとしたコメントを表示するのに使用していたので、そのまま活用。
これらの変数を含めたHTMLコードを作成すれば完成。プラグインを停止しなくてもfunction.phpに記述した方が優先されるようだが、停止しておいた方がすっきりする。
標準で使用していない項目を増やせば、任意の情報、例えば商品名を「title」、著者名を「author」などとして設定可能。
再びAPIが利用できるようになったらプラグインを有効にして、function.phpから上記のコードを削除すればよい。

APIを利用すると、その時の値段や在庫状況など親切な情報を表示させられるが、現在の利用規約に引っ掛かる程度の売り上げしかない当サイトのような場合は、詳細な情報の有無で売り上げに影響はないと思う。

ちなみに出力するリンク先や画像のURLはいくつかの商品をアソシエイト標準のリンク生成ツールで作成し、共通する部分だけを利用しているので、出力後のURLに自分のIDがちゃんと関連づけられているか、Amazonアソシエイトの「リンク動作確認ツール」で確認しておいた方がいいです。

Update:

Tips

Text by pushman