ブログ記事内のリンククリックイベントをトラップして、Google Analyticsに投げるみたいなのを書いてみたら、そこそこ面白かったのでご紹介

37
 

jQuery("div.article-body a[target='_blank']").filter(function(){
    var link = $(this).attr('href');
    return !(link.match(/^http\:\/\/livedoor.blogimg.jp\//));
}).click( function(index){
    var obj = $(this);
    var name = obj.attr('href');
    var title = obj.attr('title');
    var text = obj.text();
    var alt = obj.children().filter(":first").attr('alt');

    if ( text ) name = text;
    if ( title ) name = title + '/' + name;
    if ( alt ) name = alt;
    var entry_title = obj.parents('div.article-outer-3').children('div.article-header').children('div.article-title-outer').children('h2').children('a').text() || 'noname';

    _gaq.push(['_trackEvent', '記事内リンク', entry_title, name]);
});

割と要素がキメ打ちになってしまうのでそのまま使い回せるかは微妙だけど、これはlivedoorブログ公式のテンプレにあわせたものなので、livedoorブログならそのまま使えるかもしれないし、解る人ならちょっと変えれば使えるはず。

やっていることは記事のブロック見つけたら、そのブロック内のaタグにイベントを仕込んで行くというもの。target='_blank'を指定しているのは、内部リンクは無視するためだけど、微妙なんで、別になくても良い。

_gaq.pushしていくときに使うパラメータは「記事内リンク」(固定) > 記事タイトル > リンク名なのだけど、リンク名はalt > title + url > text要素の優先順位で決定しています。これはアフィリエイトの効果測定用に頼まれてつくったものなので、そのリンク要素の性質にかなり影響されてます。普通に考えれば、alt > text要素でもいいきもする。記事タイトルは取得が若干面倒で、ここの取り方がデザインに寄って結構かわるかも。

こんなスクリプトをonloadで仕込んでおくと、Analyticsにこんな感じでデータが蓄積されます。

02

これが中分類で記事毎の数値が見れる

21

詳細はこっちで。どのリンクがどれだけ押されているか見えます。

ちなみに、自分のブログでは使ってないけど、サイドカラムに広告はってるサイト向けのスクリプトのもあります。

jQuery("div.sidewrapper a").click( function(index){
    var obj = $(this);
    var name = obj.attr('href');
    var title = obj.attr('title');
    var text = obj.text();
    var alt = obj.children().filter(":first").attr('alt');
 
    if ( text ) name = text;
    if ( title ) name = title + '/' + name;
    if ( alt ) name = alt;
    var plugin_title = obj.parents('div.sidewrapper').children('div.sidetitlebody').children('div.sidetitle').text() || 'noname';
 
    _gaq.push(['_trackEvent', 'サイドメニュー', plugin_title, name]);
});

こんな感じでとれるはずです、livedoorブログならね!