はてなダイアリー編集画面のリンク元を集計するブックマークレット (簡易アクセス解析)
現在,当サイトのリンク元は,googleだけで1日300件ぐらい。
目を通しきれなくなってしまった。
使い慣れたアクセス解析を導入する事も考えたのだが,はてなの詳細編集画面以外にさらに別の画面を開くのが面倒くさい。
そこで,集計機能を持つブックマークレットを作り,はてなの記事編集画面を開いたままでリンク元の統計を取れるようにした。
(1)
まず,自分のブログのトップページを開いている時に,最新記事の詳細編集画面へジャンプするというブックマークレット。
javascript:(function(){var base=location.href; var lastdate=document.getElementById("days").getElementsByTagName("a")[0].href.split("/")[4]; location.href=base+"edit?date="+lastdate;})()
javascript: 以降の文字列を1行につなげて,ブラウザのブックマークツールバーに追加。
(2)
次に,(1)で画面遷移したら,きょうのリンク元の合計数をドメインごとに集計する。
javascript:(function(){var g="getElementsByTagName"; var lis=document.getElementById("referer-list")[g]("li");var lnum=lis.length-1;var regdomarr=new Array(); var domnumarr=new Array();var domstr="";for(var i=0;i<lnum;i++){domstr=lis[i][g]("a")[0].href.split("/")[2]; if(!(domnumarr[domstr]>0)){regdomarr.push(domstr);domnumarr[domstr]=1;} else{domnumarr[domstr]++;}}var res="<table border=1><tr><td align=right>集計結果<td>"+regdomarr.length+"ドメイン<br>"; for(var j=0;j<regdomarr.length;j++){domstr=regdomarr[j]; res+=("<tr><th align=right>"+domnumarr[domstr]+"<td>"+domstr);} document.body.innerHTML+=res+"</table>";})();void(0);
DOM操作で,画面の最下部に下図のようなテーブルが追加される。
(3)
次に,そのままの画面で,自分が見たいURLリンクだけを抽出する。
javascript:(function(){var arrdeny=["google","search","keyword"]; var g="getElementsByTagName";var d=document;var lis=d.getElementById("referer-list")[g]("li"); var lnum=lis.length-1;var domstr="";var linkstr=""; d.body.innerHTML+="<pre><ul>";L:for(var i=0;i<lnum;i++){linkstr=lis[i][g]("a")[0].href; domstr=linkstr.split("/")[2];for(var j=0;j<arrdeny.length; j++){if(linkstr.match(new RegExp(arrdeny[j]))){continue L;}}d.body.innerHTML+="<li><a href="+linkstr+">"+linkstr+"</a>";} d.body.innerHTML+="</ul></pre>";})();void(0);
これはちょっと動作が重い。
arrdeny配列中で,除外する文字列を指定している。
これら3つをブラウザのツールバーにお気に入り登録しておけば,ブログトップページを開いてから3クリックで,アクセス解析の最新状況確認みたいな事ができる。
(Firefoxのみで動作確認済)
しかも,記事の編集画面から移動しなくて済む。ここが手間いらず。
時間の節約になるので,ちょっと使い続けてみよう。
参考:
はてなブックマークレット
http://www.hatena.ne.jp/tool/bookmarklet
ブックマークレットの作り方
http://www.catch.jp/wiki/index.php?Bookmarklet%A4%CE%BA%EE%A4%EA%CA%FD
また,コード量を短くするために下記のエントリーの内容を使った。
JavaScript ショートコーディングの10のコツ
http://d.hatena.ne.jp/language_and_engineering/20081009/1223469525