小ネタです。
どうもGoogleアナリティクスのキャンペーン管理は、よくできているようで、いまいちだったりします。いくつかある不満のうちの1つは、utm_sourceなどのキャンペーンパラメータを使うと、リファラー情報(参照元URL)が取得できないという点が挙げられます。
以前、utm_系のパラメータを短い1つのパラメータで代用する方法 その2という記事で、対処方法の一つのやり方を書きましたが、今回ちょっと別の方法で対処してみます。
方法としては簡単です。
表示されているURLに「utm_source」が含まれていたら、_trackEventを呼び出して、utm_sourceの値とセットで、リファラー情報までイベントとしてデータ取得してしまおうというものです。
■サンプルコード
window.onload = function(){
//キャンペーン時リファラー取得
var paramReg = /utm_source=[^&]*/;
if(location.search){
var utmParam = (location.search).match(paramReg)[0];
var ref = (document.referrer).replace(/^http(s)?:///, "");
if(utmParam && ref !=="" ){
//同一ドメインのリファラーは除外
var hostName = location.host;
if(!ref.match(hostName)){
_gaq.push(['_trackEvent', 'campaignRef', (utmParam.replace(/^utm_source=/, "")), ref]);
}
}
}
}
//キャンペーン時リファラー取得
var paramReg = /utm_source=[^&]*/;
if(location.search){
var utmParam = (location.search).match(paramReg)[0];
var ref = (document.referrer).replace(/^http(s)?:///, "");
if(utmParam && ref !=="" ){
//同一ドメインのリファラーは除外
var hostName = location.host;
if(!ref.match(hostName)){
_gaq.push(['_trackEvent', 'campaignRef', (utmParam.replace(/^utm_source=/, "")), ref]);
}
}
}
}
utm_sourceじゃなくて、utm_contentとセットでデータ取得したいという場合は、3行目と11行目の「utm_source」を「utm_content」に変更すればOKだと思います。
「戻る」ボタンとか使われるとデータが重複して送信されます。なので、指標としては「イベント数」ではなく、「ユニークイベント数」を見るようにしてください。
基本的にキャンペーントラッキングでリファラーを知りたい時は、キャンペーン管理が面倒すぎて、utm_content等でうまくURLとマッチングできる情報を入れられなかった場合か、自動配信系のサービスで、そもそもどこに広告が配信されるか分からない場合かなと思います。
そのような場合は、今回の方法でリファラー情報をサクっと取得しちゃえば良いと思います。「仕様です。」って言って逃げるよりかは。