どうもWordPressのAmazonプラグインはカオスで定番がないらしい

結局のところ後日プラグインを自作した jquery-templateでamazon商品を紹介するamazonjsをリリースしました

いままでamazonの商品を紹介するときは、アソシエイトタグの入ったリンクと画像のhtmlを普通に書くということをしていたんですが、いい加減面倒くさくなってきたのでここに来てWordPressのプラグインを探してみました。

しかし、意外なことに先人の調査にもあるように

定番となりそうなプラグインがないようなのです。こまった。

カオスorz

Amazonプラグインに関しては

  • 海外で開発され日本localeに対応していない
  • メンテナンスが終了している
    • AmazonAPIの署名に対応していない
    • 最新のAmazonの規約に対応していない
    • 最新のWordPressに対応していない
  • 出力されるHTMLが気にいらない

といったことがあって、いろいろな新規プラグイン、派生プラグインが作成されているという現状があります。結果として今回自分がはまったように、「なんか結局いっぱいあってどれを使っていいかわからん。カオスすぎる。」という最大の問題にぶちあたります。

日本作のAmazonプラグインたち

日本の方がつくって、まだ(2010/10時点で)メンテされてそうなプラグインには以下のようなものがあります。いずれも現在(2010/10時点で)のAmazon APIで動作します。こだわりがなければ以下のどれかで十分要求は満たせるんじゃないでしょうか。

tmkm-amazon

原作者による更新は終了しているようですが、人気がありいくつも派生版が継続されているようなので一応記載。

  • ショートコードからhtmlに置換するタイプで、ある程度デザインしたhtmlを出力してくれる。
    • [tmkm-amazon]ASIN[/tmkm-amazon]
  • 投稿画面から商品の検索ができる。
  • 検索やデザインしたhtmlの出力の場合はプラグイン内部でProduct Advertising APIを使う。
  • PEAR/Cache_Liteでデータのキャッシュをファイルで保存、キャッシュ期間は1時間。

Simple Amazon

調べたバージョンは5.1.1。

  • ショートコードに頼らないプラグイン。内部実装としてはtmkm-amazonがベースになっているがコンセプトは違う。
  • Amazonへの商品URL(aタグ)をある程度デザインしたhtmlに変換してくれる。
  • 表示する情報量は設定画面から可能。
  • プラグインの中でProduct Advertising APIを使うのでアクセスキーなどが事前に必要。
  • PEAR/Cache_Liteでデータのキャッシュをファイルで保存、キャッシュ期間は24時間。
  • ファイルロックによるProduct Advertising APIのリクエスト制限。

AmazonLink

調べたバージョンは2.0.0 beta3。

  • 高機能なプラグイン。
  • ショートコードからhtmlに置換するタイプで、ある程度デザインしたhtmlを出力してくれる。
    • [amazon]ASIN[/amazon]
  • 投稿画面から商品の検索ができる。
  • 検索やデザインしたhtmlの出力の場合はプラグイン内部でProduct Advertising APIを使う。
  • Product Advertising APIを使わないでショートコードを単にAmazonの公式リンクツールに置き換えるモードもある。
  • テンプレートを設定画面から編集することで独自のhtmlを変更することができる。
  • データのキャッシュをデータベースのテーブルに保存。キャッシュ期間は24時間。
  • ファイルリンク(rename)によるロックファイルチェックによるProduct Advertising APIのリクエスト制限。

Mitsurin

調べたバージョンは1.1。

  • 表示する情報量は少ないがいくつかのテンプレートがありレイアウトのカスタマイズに便利なプラグイン。
  • ショートコードからhtmlに置換するタイプで、ある程度デザインしたhtmlを出力してくれる。
[amazon asin='ASIN' type='TYPE']
[amazon asin='ASIN' type='TYPE']商品の名前[/amazon]
  • いくつかの表示レイアウトパターンを持っていてショートコードのtypeへ指定可能。
  • PEAR/Cache_Liteでデータのキャッシュをファイルで保存。キャッシュ期間は24時間。

Amazon ISBN Anchor Plugin

調べたバージョンは2.0.0。

  • Product Advertising APIを直接使わないのでアクセスキーなの設定が不要なプラグイン。
  • []で表現されるショートコードではないがaタグhrefに入ったuriの表現を元にある程度デザインしたhtmlに置き換える。
    • <a href="isbn:978-4086012447">マリア様がみてる ハローグッバイ</a>
  • プラグイン内部ではProduct Advertising APIを使っておらず外部のサービスを経由している。
  • データのキャッシュをデータベースのテーブルに保存。キャッシュ期間は48時間。

リンク作成ツール

プラグインを使わずに外部のサービスで対応することもできます。外部のリンクサービスを使うメリットとしては自分のブログサーバに負荷を与えない点です。

例えば現在だと、Amazonには公式のリンク作成ツールがあります。
https://affiliate.amazon.co.jp/gp/associates/join/links.htmlX108X
デザインとかどうでもいいから、アフィリエイトしたいというならこれで十分じゃないかと思いました。公式なものだから安心感もあります。

それ以外だと、

がメジャーなようです。

Amazon公式以外のリンクツールを使う場合の問題としてはそのサービスが落ちてしまったり、終わってしまうと使えなくなってしまう点です。

マクロ

今まで自分がやっていたように機械的なhtmlをつくるだけなら、以下のようなマクロを使うのもありということにも気が付きました。

ただタグをいれるだけなら AddQuicktag プラグインをつかって以下のようなタグを追加してasinだけ置き換えるとかでも今のhtml書くのが面倒という不満も少しは解消できます。

<a href="http://www.amazon.co.jp/exec/obidos/ASIN/{asin}/makotokw-22/ref=nosim" target="_blank"><img src="http://images-jp.amazon.com/images/P/{asin}.09.MZZZZZZZ.jpg" alt="" border="0" /></a>

Product Advertising APIの規約

ずいぶん前にAPIを調べたことがあってデータは24時間しかキャッシュしてはいけないことは知っていたのですが、最新のProduct Advertising APIの規約を読んでいたところちょっと気になることが・・・

  • 価格や発送時期の表示は一時間以内に更新するか、もしくは取得した時間を横に記載すること
  • Product Advertising APIから取得したURLは改変しないこと
  • Product Advertising APIに指定したアソシエイトタグとアクセスキーの所有者(メールアドレス)は同じであること

価格を表示可能なプラグインもあるんですが、tmkm-amazon以外は24時間キャッシュを意図した実装になっているし、そもそもWordpress側でページキャッシュされてしまうとプラグインの介入する余地はなくなるので(ajaxなどで動的に更新しない場合は)、ブロガーが自己責任を覚悟で表示することになります。

次にProduct Advertising APIを使う場合、自分のアソシエイトタグを追加したい場合は自分で取得したアクセスキーを使ってProduct Advertising APIを実行する必要があります。外部のサービスをつかっているものが実際どういう仕組で動いているのかわかりませんが、普通の契約でProduct Advertising APIを使っているだけだとしたら、そこで取得したデータの商品URLを自分のアソシエイトタグに置き換えることは厳密には規約違反ということになるように見えます。Amazonとしても販売促進になっていることは確かなので実際にはそこまで厳しくはしておらず容認の方向なのではないかと想像していますが、急に制限されたらどうしようとか不安な気持ちにはなります。

個人的な結論

  1. デザインとかどうでもいいならプラグインは使わないでAmazonの公式のリンク作成ツールを使う
  2. デザインやアソシエイトタグを気にする場合、API規約を考えると内部でProduct Advertising APIを使っていうプラグインを使う、ただし価格を表示する場合は注意
  3. デザインを自由に変更したいなら、AmazonLinkプラグインを使う、レイアウトだけ変えたいのならMitsurinプラグインをつかう
  4. Amazonのリンクツールのデザインは嫌だが、そこまでのデザインは必要なくブログのパフォーマンスを気にする場合はマクロを使う
  5. それ以外どうしても満たしたい要求がある場合には、プラグイン作者に依頼するか、既存のプラグインを改変するか自作する

あくまで個人的な結論ですが、まずは一番信頼性の高い本家Amazonの公式リンク作成ツールで問題ないか検討すべき。次に公式リンクで満足できない場合は、デザインが嫌だとかもっと簡単に追加したい、という要求になってくると思います、どちらの要求度が高いのかをよく見極める必要があります。これらを解決する場合はProduct Advertising API規約を考えると外部のリンクツールより、Product Advertising APIを直接つかうプラグインを選択したほうが良いと思います。

デザインに関しては独自テンプレートを持っているAmazonLinkプラグイン、レイアウトパターンを持っているMitsurinプラグインが自由度が高いです。ある程度のスキルがあって簡単に追加したいという要求を満たすならマクロをつかうという選択肢がありなかなと。

で自分の場合、デザインの統一には気をつかっているのでAmazon公式リンクは使いたくなく、アソシエイトタグは埋め込みたいのでプラグインを使いたいんだけど、自分の欲しい機能を満たすものがないので4か5を選択しそう。

というか今回はじめて日本語プラグインがまとまっている http://wppluginsj.sourceforge.jp を知りました・・・・

結局のところ後日プラグインを自作した jquery-templateでamazon商品を紹介するamazonjsをリリースしました