WordPressでAmazonのリンクを貼り付けたいときは、どうするか。

WordPressでAmazonのアフィリエイトを使って商品を掲載しようとしたとき、方法はいくつかあります。おおまかには、WordPressのプラグインを使う方法とhtmlを貼り付けるもの。後者はさらに、ウェブ上のサービスを使って生成する場合と、自分で作る場合にわけられます。自分で作る場合はAmazonのAPIを使うこともできるし、手作業で作ることもできます。というふうにいろんな方法があるのだけど、結論から言うと「これで間違いなし」と言えるようなイチ押しはないです。だから、どの方法をとればいいのか結構悩んでしまうのです。
WordPress程のメジャーなシステムでプラグインとしてAmazonのリンクを扱える決定的なものがないというのはちょっと予想していませんでした。Amazonからデータを取得して整形することは簡単にできるようになっているので、当然「これは定番」というようなものがあると決めてかかってたのです。
なぜ決定的なものがないかというと、「かつてはあったけれど、開発が停止してしまった」かららしいです。確かに継続的なサポートが難しいのはわかりますし、無理もないとも思います。Amazonが公式プラグインを作ってくれればうれしいけど、そこまでは求めすぎか…。あるいは、どこかの会社で相応なサービスはしてくれないかな。

さて。
こういうような迷いにはやはり偉大な先人がいて、検証や考察をしてくださってます。

  1. amazonアソシエイトを始めてみる-登録編- ? atl*weblog
  2. amazonアソシエイトを始めてみる-リンク生成サービス編- ? atl*weblog
  3. amazonアソシエイトを始めてみる-wordpress plugin編- ? atl*weblog
  4. amazonアソシエイトを始めてみる-結局どうしたの編- – atl*weblog

私もほぼ同様の道筋を辿りました。
サービス停止や仕様の変更といったリスクを回避できるのはAmazon標準の商品リンクですが、デザイン的にちょっとなじめないし情報は見づらいし、で却下。ちなみにわたしはhtml的にvalidじゃなくなってしまうことはもはや気にならなくなりました(かつてはすごく気にしてました)。

わたしが次に考えたのはWordPressのプラグインでした(atl*weblogさんとは異なる順)。しかし日本語対応の壁が高かったり更新が停止してたりデザイン的に手を加えたくなったりで、安心して任せられるものは見当たらなかったというのが実情。どれかを選んで使い始めても、将来開発が停止したらかなり面倒なことになります。

続いて、ウェブ上のAmazonリンク生成サービスを検討しました。小粋空間: Amazon アソシエイト作成支援ツール一覧にあるようにたくさんありますが、すでにサービスが終わってたり継続使用に不安が漂うものもあります。実質、amazletG-Toolsのどちらか、でしょう。
実はG-Toolsは以前P_BLOG時代に使っていまして性能面にはほぼ満足していたのですが、いつの間にか価格表示ができなくなってしまいました。価格を表示するためには、現在のAmazonの価格との乖離を防ぐためか動的に情報を取得・更新する必要があるのですが、そのあたりの仕組みがばっさりと削られてしまったようです。この変更についてはサイトに情報は見つけられず、そういう意味でも残念です。

ということで、わたしもatl*weblogさんと同じくamazletのお世話になることとしました。また、わたしも「target=”_blank”」が不要でしたので、atl*weblogさんのグリモンスクリプト「no blank amazlet」を使わせていただくことにしました。

が、残念なことに「no blank amazlet」はわたしの環境(SnowLeopard + Safari 4.0.3 + GreaseKit 1.7)では動作しませんでした。コンセプトをありがたく拝借して自分で書き換えることとし、ついでに下記の変更も盛り込むことにしました。

  • 「target=”_blank”」が不要(atl*weblogさんと同じ)
  • 画像にドロップシャドウをつけたい
  • 「売り上げランキング」不要
  • 画像にtitle属性をつけたい
  • すぐにコピーしたいので「商品情報リンク (レビューなし/スタイルなし)」テキストを選択状態に
  • 不要な項目を非表示にしたい

本当は値段も掲載したいところですが、規約上できないので見送りです。どうしても金額が必要なときは、記事中で触れるようにすればいいでしょう。

// ==UserScript==
// @name           no blank amazlet plus
// @namespace      https://www.aynimac.com/
// @description    no blank amazlet plus (based on http://weblog.atl-r.net/blog/amazon_affiliate_end/ )
// @include        http://app.bloghackers.net/amazlet/*
// ==/UserScript==

/* UTF-8 */

(function(){
    ne=document.getElementsByClassName('amazlet-box');
    ne[0].style.display="none";

    // 「コピー ( IEのみ )」「戻る」ボタンを非表示に
    ib=document.getElementsByTagName('INPUT');
    for (i=0; i<ib.length; i++) {
        if ((ib[i].value == 'コピー ( IEのみ )') || (ib[i].value == '戻る')) {
            ib[i].style.display="none";
        }
    }

    // 使用しないテキストエリアを非表示に、表示するものは内容を置換する
    ta=document.getElementsByTagName('TEXTAREA');
    for (i=0; i<ta.length; i++) {
        if (i<2) {
            ta[i].style.display="none";
        } else {
            ta[i].value = replaceTextareaValue(ta[i].value);
        }
    }

    // 「レビューなし/スタイルなし」の文字列を全選択する
    ta[4].focus();
    ta[4].select();


    // テキスト置換関数
    function replaceTextareaValue(value) {
        var oStr = '';
        if (value.length) {
            oStr = value;
            // 「target="_blank"」削除
            oStr = oStr.replace(/ target=\"_blank\"/g,'');
            // 画像にドロップシャドウを追加
            oStr = oStr.replace(/_.jpg/g,'_PA10,6,6,8_.jpg');
            // 「売り上げランキング」削除
            oStr = oStr.replace(/売り上げランキング: \d+/,'');
            // img要素にtitle属性を追加
            oStr = oStr.replace(/alt=\"(.+?)\"/,"alt=\"$1\" title=\"$1\"");
        }
        return oStr;
    }

})();

で、こんなふうに。 🙂

バクマン。 5 (ジャンプコミックス)
大場 つぐみ
集英社 (2009-11-04)

(↑ 作者名が原作しか出てないですが…。)

しかし昨日テストしているときに、amazletで一部の商品ページからブックマークレット経由で直接にはリンクを作れないことがありました。今もう一度チェックしてみると昨日ダメだった商品もうまくいくようになってるな…。タイミングが悪かったのか、何か勘違いしてたのか。
様子を見てみます。

2009.11.13追記:やっぱりAmazonの商品ページからAmazletブックマークレットを実行してもうまくリンクを生成してくれないときがあります。上の「バクマン。」でもダメなときがありました。 🙁 なんだろう…?)

6 thoughts on “WordPressでAmazonのリンクを貼り付けたいときは、どうするか。

  1. このプラグインは知りませんでした。新しいし、「ショートコードの利用」など先進的で期待できそうですね。
    ただ、やはり独自コードを使うプラグインである以上、開発が停止した場合のリスクはついてまわりますが。
    ともあれ今度試してみます。お知らせ感謝です。

  2. 私も以前は自前でAmazonの価格表示をやっていたのですが、
    Amazon APIで認証が必要になった時点でAPIの仕様も変わって、
    以前の方式では価格表示ができなくなりました。
    その影響で価格表示がなくなったサービスが多いのかと。

    あと、以前、Amazonから価格表示に関して怒られた、というより
    アカウント停止寸前までいったこともあります。

    理由は同じエントリーの中で楽天のお店といっしょに紹介したせいでした。
    価格を入れた場合、他社との比較ではマーケットプレイスの価格も表示が必要だそうです。
    また、価格が変動する旨をページ内に明文化しておかないといけないとのこと。
    いずれにせよ、価格表示については、かなりAmazonはシビアな対応でした。

    そのあたりがやっかいなので、最近はAmazonの価格はサイトに埋め込まないように
    しています。
    ご参考まで。

  3. > MacBSさん
    価格表示はデリケートですよね。きっちりと規約を守って継続的に表示できるのであればそれが一番いいと思って検討したのですが、トータルで考えて見送ったほうがいいかなというのが今回の結論でした。
    安易に考えていただけに、価格表示だけでなくAmazonのリンク作成もけっこう面倒だなぁというのも正直なところです…。 😮

  4. ピンバック: Wordpressでアマゾンの製品情報を載せたい « シニカルエンジニア

  5. ピンバック: Tweets that mention AYNiMac ? WordPressでAmazonのリンクを貼り付けたいときは、どうするか。 -- Topsy.com

コメントは受け付けていません。