2007年10月31日(水) 16:50

リンクしてくれた人にAmazonリンクをあげる仕組みを作った

相互リンク以外にリンクに対して何かお返しできるものはないだろうか。
そう考えて作ったのが、AmazonアソシエイトIDを書き換える仕組みです。

やってることは簡単ですが、なかなか面白くないですか?コレ。


例えば、
どこかの太郎さんが作ったというページから、オイラのページにリンクが張られたとする。


そうしたとき、
ページのアソシエイトリンクがクリックされて報酬が発生すると、普通、それはオイラのものになります。


だけど、
ページからページに来て発生した報酬は、ページを作った太郎さんのものにしたい。
リンクしてくれてるんだから、そのお返しです。広告ならAdSenseもあるということで。


そこで、
ページからページにリンクを張る際に、つまり、ページのURLに太郎さんのアソシエイトIDをくっつけてもらって、それをページで解析してAmazonへのリンクを書き換えれば実現できるわけです。


書評ページに対する批評ページとか書きやすくなるし、とにかくなにかとブロゴスフィアではおもしろい仕組みなんじゃないかと。


具体的には、以下のようにします。


リンクしてもらう側

以下のJavaScriptコードを、<head>〜</head>に追加します。
(もちろん、別ファイルにしてもOK)

<script language="JavaScript">
<!--
window.onload = function(){
  var uri = new String(document.location);
  var sta = uri.lastIndexOf("/");
  var aid = uri.substring(sta+1,uri.length);
  if(aid.match(/\-22$/)){
    var aobj = document.getElementsByTagName("a");
    for (var i = 0; i < aobj.length ; i++){
      aobj[i].href = aobj[i].href.replace('あなたのアソシエイトID',aid);
    }
  }
}
//-->
</script>


リンクする側

例えば、


http://cinema.bayashi.jp/archives/entry/foreignfilm/2005/000460.html


上記ページにリンクするとき、以下のように、URLの最後にスラッシュをつけて、アソシエイトIDを付加します


http://cinema.bayashi.jp/archives/entry/foreignfilm/2005/000460.html/test2abctest-22


すると、なにも付けなければ wwwbayashinet-22 のアソシエイトIDが test2abctest-22 に差し換わっているかと思います。
(ページを読み込んでいる間は、元のまま)


とりあえず、必要な作業はこれだけ。
リンクを受ける側が、JavaScriptコードを実装していて、リンクする側はIDを加えるだけ。


お気楽極楽ブログの各エントリーの個別ページは全て実装しているので、リンクして試してみてください。

広まると面白いかもしれない

さらに、ここからは、この仕組みが面白いと思った人だけ読んでください。


JavaScriptのソースを読んで頂ければわかるかと思いますが、ページに含まれるアンカータグのhref属性をチェックして、アソシエイトIDがあれば書き換えるということをやっています。
このやり方だと、実はAmazonへのリンク以外でも書き換えが発生するので、この仕組みを実装した別ページにリンクしていれば、さらにその向こうのページでも、大元のアソシエイトIDが生きてきます


以下のように3つのページがあり、それぞれ別人の持ち物とします。
そして、3ページ全てでこの仕組みを導入しているとします。


ページD http://www.dddd.com/dd.html
ページE http://www.eeee.com/ee.html
ページF http://www.ffff.com/ff.html


そして、ページDからページEに以下のリンクが張られていたとします。


<a href="http://www.eeee.com/ee.html/ddd-22">ページEにリンクします</a>


ddd-22 はページDの持ち主のアソシエイトIDです。


そして、ページEにはページFに対して以下のリンクが存在しています。


<a href="http://www.ffff.com/ff.html/eee-22">ページFにリンクします</a>


ページEに貼られたページFに対するこのリンクには、ページEの持ち主のアソシエイトID(eee-22)が含まれています。


しかし、
もともとのそのURLが、ページDから出発してページEに来たときは以下のようになります。


<a href="http://www.ffff.com/ff.html/ddd-22">ページF</a>


つまり、アソシエイトIDが大元のページで踏んだものに差し換わっているわけです。
そして、ページFに辿り着いたそのページのアソシエイトIDもページDで踏んだ ddd-22 になります。


このAmazonリンクを分ける仕組みを実装したページ同士がたくさんつながると、どこのページでアフィリエイトが踏まれても、本来の意味での第一営業マンに報酬が還元されるというわけです


まだ、思いつきの勢いで組み立てた仕組みなので、抜け穴はたくさんあるかと思います。
よろしければ、ご意見ください。


また、TB等で実装のご報告もお待ちしております。


ちなみに、MovableTypeの場合、JavaScriptコードを書くときは、<head>の中ではなくて、mt-site.js の中に onload で呼び出される関数があるので、そこにコードを放り込む必要があります。
(うちのソース見てください)

このエントリーに最初のコメントを書いてみませんか?

名前  クッキーに保存 
エントリーナビ
リンクしてくれた人にAmazonリンクをあげる仕組みを作った」は、
Webの技 カテゴリーの記事です。


関連エントリー
Amazon ECS3.0をECS4.0に移行する方法
Amazon ECS 4.0メモ
plaggerのAmazonアソシエイトレポートモジュールのpatch
WebService::SimpleでAmazon Web API
Amazon A2S(ECS)のカテゴリCheat Sheet

トラックバック
このエントリーへトラックバックするURL (言及リンクのないトラックバックは無効です)