アカベコマイリ

HEAR NOTHING SEE NOTHING SAY NOTHING

WordPress で Amazon

ブログで書評などを行う場合、購入への導線として Amazon リンクを貼るのが一般的だと思うので、当ブログでも Amazon 系プラグインを導入とアフィリエイト登録を行ってみた。

Amazon API の仕様変更による影響で WordPress の Amazon 系プラグインは混沌とした状態になっている。また、アフィリエイト登録サイトは日本向けにローカライズされておらず手続きは実に面倒だ。

紆余曲折を経て何とか立ち上げに成功したので日本で WordPress を使った Amazon アフィリエイトを行ってみたいという人のために導入手順をまとめてみる。

アフィリエイト登録

アフィリエイト登録は、Amazon アソシエイトで行える。日本語のサイトで、説明も親切なので戸惑う事はないだろう。

Amazon Web Service の登録

Amazon の機能は、Amazon Web Service として運用されている。アフィリエイトではAmazon の API を利用するので、このサービスへ登録し、アクセスキーと秘密アクセスキーを取得する必要がある。

このサービスの登録手順は、以下のページが参考になる。

ただし手順どおりに入力しても登録エラーが発生する場合がある。

登録フォームには郵便番号欄があるのだが、日本のフォーマットである 7 桁の番号は受けつけてくれない。仕方がないので先頭 3 桁だけを入力すると無事に登録できた。

AmazonLink の導入

WordPress 用の Amazon 系プラグインはかなりの数がある。しかし大半が、日本語の扱いや Amazon.jp 対応、Amazon API の仕様変更対応などに問題を抱えている。

様々なプラグインを試した結果、最終的に AmazonLink に落ち着いた。

上記のページにインストール手順が掲載されているので、それに従う。

プラグインの導入に成功したら、WordPress の設定から AmazonLink を選び、アフィリエイト登録時に発行されたトラッキング ID と、Amazon Web Service へのアクセスキー、秘密アクセスキーを設定するだけで、使用準備が整った。

AmazonLink の使用方法

AmazonLink を使用する場合、WordPress の投稿画面で本文に以下のコードを挿入する。

[amazon]番号[/amazon]

番号とは、Amazon の商品ページ内の ASIN 欄にある B001DZGGM2 のような形式の文字列である。

上記のコードの番号をこの文字列に置き換えるだけで、アフィリエイト情報を含んだ Amazon 商品ページへのリンクが生成される。

例えば下記のコードを埋め込むと、その下の Amazon リンクになる。尚、サンプル中のコードが AmazonLink で変換されるのを避ける為、タグ内の文字の先頭は全角にしている。

[amazon]B00005IEHH[/amazon]

AmazonLink テンプレート

AmazonLink はテンプレートと呼ばれる機能により表示内容を自由にカスタマイズできる。

テンプレートは AmazonLink に定義済みのキーワードと HTML を組み合わせて作成する。簡単な制御構造を持っており、Amazon からデータ取得が失敗した時の分岐なども可能。

詳しくは AmazonLink 制作者であるよしとも氏のブログを参照の事。よしとも氏のブログにある 2009/9/5 のエントリでサンプル コードが公開されている。

GPL ライセンスで改変自由との事なので、以下に、私のブログで使用しているコード ( よしとも氏のコードを若干変更したもの ) を紹介しよう。

<table class="amazonLink">
    <tr>
        <td colspan="2">
            <strong><span class="itemName"><a href="[DETAIL_PAGE_URL]" target="_blank">[ITEM_NAME]</a></span>
[IF_AUTHOR/]
            <span class="author">[AUTHOR]</span>
[/IF_AUTHOR]
            </strong><br />
[IF_PUBLISHER/]
            発売:[PUBLISHER]
[IF_RELEASE_DATE/]
             [RELEASE_DATE]
[/IF_RELEASE_DATE]
[/IF_PUBLISHER]
        </td>
    </tr>
    <tr>
        <td rowspan="2" width="[MEDIUM_IMAGE_WIDTH]" valign="top">
            <a href="[DETAIL_PAGE_URL]" target="_blank"><img src="[MEDIUM_IMAGE_URL]" width="[MEDIUM_IMAGE_WIDTH]" height="[MEDIUM_IMAGE_HEIGHT]" alt="『[ITEM_NAME]』の商品写真" /></a>
        </td>
        <td valign="top">
[IF_CREATOR/]
            <ul class="creator">
[CREATOR/]
                <li>[CREATOR_ROLE]:[CREATOR_NAME]</li>
[/CREATOR]
            </ul>
[/IF_CREATOR]
        </td>
    </tr>
    <tr>
        <td valign="top">
[IF_REVIEW/]
            平均評価:<img src="Rating_[AVERAGE_RATING].gif" alt="[AVERAGE_RATING]">
            <ul class="evaluation">
[REVIEW/]
                <li><img src="Rating_[REVIEW_RATING].0.gif" alt="評価:[REVIEW_RATING]"> [REVIEW_SUMMARY]</li>
[/REVIEW]
            </ul>
[/IF_REVIEW]
        </td>
    </tr>
    <tr>
        <td valign="bottom" colspan="2">
            <span class="powerdBy">[POWERD_BY]</span>
        </td>
    </tr>
</table>

このテンプレートではアーティスト名が取得できないようである。あとで PHP 部分と Amazon API について調べて原因を突き止めたい。

評価マーク

このページのテンプレートのサンプル コードをコピペしても評価部分の★マークが表示されないと思う。★マークはサンプルコード中の Rating_[AVERAGE_RATING].gifRating_[REVIEW_RATING].0.gif 部分となる。

AVERAGE_RATING は平均評価をあらわす数値が格納される。範囲は 0.0 ~ 5.0 で 0.5 刻みの値が指定される。それに合わせて合計 11 枚の画像を用意する。例えば

  • 1 なら★が一つ
  • 1.5 なら★と半分の★が並んだ画像

というようにする。Amazon 自体が使用している★マーク画像も 0.5 刻みになっているので 0.2 のような中途半端な値が指定されることはなさそうだ。

用意した 11 枚画像を適当なフォルダにアップロードし、テンプレートのリンク部分を対応させれば無事に★が表示される。

REVIEW_RATING はユーザ評価で、0 ~ 5 までの数字が入る。既に用意した画像を流用するため [REVIEW_RATING] の後に .0 を付与して 0.01.0、... 5.0 までの 6 枚の画像が選ばれるようにする。

2016/4/25
現在は AmazonLink から Amazon JS へ移行している。よってこの記事の内容が有効であることを保証しない。