[ga]utm_系のパラメータを短い1つのパラメータで代用する方法 その2


久しぶりにGAネタです。
以前、utm_系のパラメータを短い1つのパラメータで代用する方法 を書きましたが、
これだとファイル内に設定が必要なので、ちょっと面倒かなと思います。
個別設定をなくすために、一つのパラメータをディリミタで区切って、2つ分の情報を付与する方法で作り直しました。

また、utm_系のパラメータを使った場合、GA側ではリファラーを見れなくなるという素敵な仕様なので、utm_contentなどに、どのページで使われているかの情報を付けなくてはいけません。ということは、自動配信系の広告の場合はどのページからやってきたのかを追えなくなってしまいます。

なので、utm_mediaとutm_campaignにはリファラー情報を自動付与するようにしました。
utm_sourceとutm_campaignについては一つのパラメータにディリミタ(_)を挟んで入れるようにします。
例えば、?gaParam=yahoo_ sale
というパラメータを付与した場合
utm_source : yahoo
utm_campaign : sale
utm_media : リファラー元ドメイン(ない場合はnoRef)
utm_content : リファラー元URL(ない場合はnoRef)

と付きます。

例:
http://tanakanakana.happy888.net/ga_rd2/index.html?gaParam=yahoo_sale

リダイレクト先:

http://tanakanakana.happy888.net/ga_rd2/index.html?utm_sorce=yahoo&utm_campaign=sale&utm_media=web-analytics-or-die.org&utm_content=web-analytics-or-die.org/

これだと 管理も楽で良いかもって思っています。
ソースコードは↓です。

ga_rd2.js

var _ga_url = {

  //パラメータを取得
    getQuery : function(name){
        if(location.search){
                var query = location.search;
                query = query.substring(1,query.length);
                var qArray = [];
                qArray = query.split("&");
                for(var i=0;i<qArray.length;i++){
                    var param = qArray[i].split("=");
                    if(param[0] === name){
                        return param[1];
                    }
                }
            }
        },

    //リファラーを取得
    get_ref : function(){
      var ref = (document.referrer).replace(/https?:///, "")
      var ref = ref.replace(/?.+$/, "")
      if(ref){
        return [ref.split("/")[0], ref]
      }else{
        return ["noRef", "noRef"]
      }
    },


    //パラメータの設定
    get_param : function(str){
          var param_arr =  (this.getQuery("gaParam")).split("_");
          var ref_arr = this.get_ref()

          //各変数を設定
                var u_source = "?utm_sorce=" + param_arr[0];
                var u_media =  "&utm_media=" + ref_arr[0];
                var u_campaign = "&utm_campaign=" + param_arr[1];
                var u_content =  "&utm_content=" + ref_arr[1];

                return (u_source + u_campaign + u_media + u_content)
        },
//GAコードの生成(標準のものから変更しています)
  ga_script : function(){
          document.write ("<script type='text/javascript' src='/js2/gaPlugin.js'></script><script type='text/javascript' src='/js2/gaConf.js'></script>");
  },
    main : function(){
        param = this.getQuery("gaParam");
            if((!(location.search).match(/utm_/)) && param){
          utm_param = this.get_param(param);
          //alert(utm_param);
                red_url = ( location.pathname + utm_param);
             location.href = red_url
            }else{
          this.ga_script();
        }
        }

}

_ga_url.main();

ちなみに、gaParamというパラメータを持った場合はGAコードを読み込まないようにしています。これであれば、間違いなく2重でカウントするということはなくなります。