2007-07-23

「ニコニコ動画のAmazon売り上げを鵜呑みにするのは危険」について

ARTIFACT@ハテナ系 - ニコニコ動画のAmazon売り上げを鵜呑みにするのは危険を読んで気になったこと。
予約とかキャンセル分とかも、もちろんあるとは思うけど。

やってる人なら分かると思うけど、Amazonのアフィリエイトは紹介した商品以外にも、ついでに売れた商品も売り上げとしてカウントされる。アフィリエイトID付きのリンクを介してAmazonにアクセスして1日以内に注文された商品が紹介料の対象になる。で、ある程度PVが多くなってくると、特定の商品を紹介しなくても単にAmazonにアフィリエイトID付けてリンクするだけで関係のない商品も結構な数売れるようになる。本を紹介しただけなのにDVDレコーダーが売れたりすることもある。

で、ニコニコ動画の場合だけど、ユーザー数やアクセス頻度が多くなればなるほど、元々購入予定だった商品にニコニコ動画のアフィリエイトIDが付く確率が高くなるわけなので、その部分の(元々売れるはずの商品の)売り上げについては「ニコニコ動画が売り上げに貢献した」とは言えないんじゃないかな。ニコニコ動画のユーザーがどれぐらいAmazonで買い物をするのか、という指標にはなるけども。

FirefoxやOperaの検索窓にはAmazonの検索ボックスが付いていて、デフォルトでAmazonのアフィリエイトIDも付いているけれど、Firefoxの検索ボックス経由でアニメDVDを買ったとしても「FirefoxがアニメDVDの売り上げに貢献しました」とは言わないよね。もしもGoogleの検索結果にAmazonのアフィリエイトIDがくっついていたとしたら「総取り」してしまうだろうし、IEにAmazonショッピング機能が付いてたら、アフィリエイトとかほとんど意味無くなる。ユーザーは単に手近なリンクを介して商品を購入しているだけで、それがきっかけで消費行動に結びついているとは言えない、と思う。

もちろんニコニコ動画が売り上げにプラスになったりマイナスになったりするのはあると思うけど、そういった影響とは関係なく、PVの多いサイトにAmazonのリンク張ってれば売れる物は売れる。数字を出して「ほら、売り上げに貢献してますよ」とアピールするのが目的なのだから、多少の誤解も計算の内だとは思うけれど、経済効果何億円とかそういういい加減な計算がまかり通るようになってしまうとすれば、それは「危険」だと思う。それから紫色の物を口に押し当てたハッカーがニコニコ動画ばかり見ているのも人類にとって多大な損失だと思う。こちらの問題についてはまた後日書くことにする。

2007-07-12

livedoor ReaderにはてなスターをくっつけるGreasemonkeyスクリプト

の、雛形。
http://la.ma.la/misc/userjs/ldr_with_hatenaster.user.js

(function(){
    var w = typeof unsafeWindow != "undefined" ? unsafeWindow : window;
    var initialized = false;
    var s = document.createElement('script');
    s.src = 'http://s.hatena.ne.jp/js/HatenaStar.js';
    s.charset = 'utf-8';
    document.body.appendChild(s);
    var t = setInterval(function(){
        if(w.Hatena){
            init();
            initialized = true;
            clearInterval(t);
        }
    }, 100);
    function init(){
        w.Hatena.Star.EntryLoader.headerTagAndClassName = ['h2', 'item_title'];
        w.Keybind.add('H', function(){
            new w.Hatena.Star.EntryLoader();
        });
    }
})();


Shift + Hを押すと現在見てる記事にスターを表示。JSON API直接叩いてもいいけど、仕様変更に対応しやすいように。

2007-07-10

Fastladderを使い始めた

livedoor Readerの海外版のFastladderがリリースされました。
どうやって使おうか微妙に悩んでたのだけれど、シンプルにFastladderに興味のある人のOPMLをインポートしまくって、livedoor Readerで購読しているフィードをFastladderから削除することにした。(逆でもいいけど既読管理とかあるので、追加分をFastladderに寄せた)

livedoor Readerで既に購読しているフィードのURLを保存する

livedoor Readerでスクリプトを実行する。Firebugとか、javascript:を付けてアドレスバーに貼り付ける。「既読フィードも表示」の状態で実行する。

feedlinkをJSONで保存
prompt("これをコピーする",subs.model.list.pluck("feedlink").toJSON());

サイトURLをJSONで保存。
prompt("これをコピーする",subs.model.list.pluck("link").toJSON());

Fastladderからlivedoor Readerで既に購読しているフィードを削除

こちらも「既読フィードも表示」の状態で実行。

フィードURLを一括で削除
(function(){var c=prompt("さっきの貼り付ける");if(!c)return;var d=eval(c);var m={};d.forEach(function(s){m[s]=1});var total=0;var p=0;var wait=100;subs.model.list.forEach(function(s){if(m.hasOwnProperty(s.feedlink)){new API("/api/feed/unsubscribe").post({subscribe_id:s.subscribe_id},function(){p++;message(total-p)});total++}}.later(wait+=100))})();


RSSとAtomを重複して購読してたりするのが多いので、それも削除する。サイトURLが同じフィードを一括で削除。ただし検索結果のフィードなんかでトップページのURLが同じになってるのがあるので、フィードに?を含まないものに限定して削除。

(function(){var c=prompt("さっきの貼り付ける");if(!c)return;var d=eval(c);var m={};d.forEach(function(s){m[s]=1});var total=0;var p=0;subs.model.list.forEach(function(s){if(m.hasOwnProperty(s.link) && s.feedlink.indexOf('?')==-1){(function(){new API("/api/feed/unsubscribe").post({subscribe_id:s.subscribe_id},function(){p++;message(total-p)})}).later(100*total)();total++}})})();


最初に試したときにブラクラになったのでウェイトを入れるようにした。ウェイト入れる位置違うけど、まあどちらでも動く。OPMLを使ってここら辺の操作を簡単にできるようにしておけばそれなりに需要があるような気がする。OPMLの差分を取ったり重ね合わせてレートを決めたり。

購読フィードは合わせて7000件ぐらいになった。

2007-07-04