xその他‎ > ‎

外部リンク計測には、pageviewとeventの併用を



外部リンクの計測には、trackPageviewとtrackEventの併用がお勧め。

それぞれの利点

trackPageview(好きな名前を入れておく)
pageTracker._trackPageview("/outbound/" + this.href.replace(/https?:\/\//,'');みたいな形(参考: バーチャルペ-ジビュー)
セッションが継続したとして、その前後ペ-ジとの関連が計測ができる
  • 離脱率で、外部からの復帰率が分かる。
  • ペ-ジ滞在時間の指標から、外部離脱からの復帰時間が分かる
  • もちろん、外部への離脱回数がわかる。(コンテンツサマリで前(当)後のペ-ジのイメージもつかめる
  • ページ計測なので、ゴールの設定にも組み込める。

離脱率は、そのまま外部への離脱(して還って来ない)率。平均ペ-ジ滞在時間は、離脱からの復帰時間。

trackEvent(category, action, label, value)

イベントが起きたセッションを軸に分析できる
  • クリックされたセッションに対象を絞る事が可能。(利用状況を使う)
    • セッションとしての指標が見られる
  • eコマ-スとのクロスも可能。
    • 試してないけど、有用そう。
  • どのペ-ジからの離脱かが分かり易い。
    • ラベル(label)にペ-ジ名を入れておけばよい。
    • valueに経過時間を入れておけばいい
どのペ-ジからの離脱か?は、pageviewでもコンテンツサマリ-でcheck可能。
左は、外部離脱までの平均時間。 右は、外部離脱が起きたページと、その時のセッションに関する指標。

測定用コード

asyncでのコ-ド(JQuery使用,時間関連の変数を設定する場合にはclosureを使う?)
 function get_outbouund_link(){
    try{
       var as = jQuery("div.post a");
       var ret = [];
       for(var i=0,L=as.length;i<L;i++){
       var u = "^https?://" + document.location.host;
     if(!as[i].href.match(u)){
       ret.push(as[i]);
     }
}
       for(var i=0,L=ret.length;i<L;i++){
         jQuery(ret[i]).bind("click",
                   (function(){
                     return function(){
               _gaq.push(["_trackEvent",
                                  "outbound_link",
                                  this.href,
                                  document.location.pathname,
                                  Math.round(((new Date()).getTime() - startTime)/1000)
                                 ]);
                       _gaq.push(["_trackPageview",
                                   "/outbound/" + this.href.replace(/https?:\/\//,'')]);
      };
                   })()
         );
       }
      return true;
    }catch(err){
      //return false;
      _gaq.push(["_trackEvent("Error", "outbound", document.location.pagepath,1);
       return;
    }
  }


//asyncを使わない形 
function get_outbouund_link(pageTracker){
    try{
   var as = jQuery("div.post a");
   var ret = [];
   for(var i=0,L=as.length;i<L;i++){
            var u = "^https?://" + document.location.host;
     if(!as[i].href.match(u)){
       ret.push(as[i]);
     }
   }
  for(var i=0,L=ret.length;i<L;i++){
     jQuery(ret[i]).bind("click",
(function(pageTracker){
   return function(){
            pageTracker._trackEvent(
                                      "outbound_link",
                                      this.href,
                                      document.location.pathname,
                                      Math.round(((new Date()).getTime() - startTime)/1000));
                             pageTracker._trackPageview(
                                      "outbound/" + this.href.replace(/https?:\/\//.''));
      };})(pageTracker)
           );
  }
  return true;
    }catch(err){
        pageTracker._trackEvent("Error", "outbound", document.location.pathname, 1);
  return false;
    }
}
(エラー処理は、実際には入れてないけど、こうした方がいいかもと思って、今書いた)




Comments