ダブル計測の新手法
Post date: Apr 22, 2010 3:38:56 PM
SiteCatalystで複数のアカウント(Report Suite)にデータを送信する新しい方法が分かったので、紹介します。
その前に既知の方法から。
MST(マルチスイートタギング)
s_code.jsの冒頭でRSIDをカンマで続けて記述します。
var s_account="mainrsid,subrsid"
二つ目以降のコールは単価が半額になるので手軽でお得ですが、全く同じデータが同時に送信されます。
ダブルタギング
アカウント(RS)毎に異なるカスタム変数をセットしたい場合は、計測用タグとJavaScriptファイルをダブルで入れます。Google Analyticsでも同様ですね。それぞれ自由なカスタマイズができますが、イベントハンドラやCookieの処理を共有することになるので、若干の制約を受けます。また、コール数は半額にはなりらず、2倍になります。
このダブルタグ方式のデメリットは、計測用JavaScriptファイルのロード時間やJavaScriptの処理時間が2倍になり、ユーザーにとってのパフォーマンスが低下する点です。
また、JavaScriptファイルやその中のプラグインを複数分管理したり、リリース時の動作確認の作業量が増える、という管理上のデメリットもあります。
知られざるワンタイム方式
カスタマイズ性を損ねることなく、サブのアカウントで一部の変数のみを簡単に計測したいと思い、Twitterで質問してみたところ、Andreasが良い方法を教えてくれました。
一時変数を使って送信する方式で、下記のようにJavaScriptで記述します。
s.sa('subrsid');
var s2 = {
prop1 : 'test',
pageName : 'top'
};
s.t(s2);
s.sa()で一時的にレポートスイートIDを変更してから連想配列に変数をセットし、s.t()にその連想配列を渡して、SiteCatalystサーバーへのコールを発生させます。
注意点
ドメイン名でRSIDを切り替えるdynamic account機能をoffにしておく必要がある。
このサブ用のコール発生時にもs_code.jsのdo_Plugins()関数が実行されるため、ドメイン名などで分岐し、共通処理と固有処理を分ける必要がある。
dynamic account機能を使う場合の完全なタグのサンプルは、下記のようになります。
<script type="text/javascript src="s_code.js"></script>
<script type="text/javascript>
s.prop1 = 'main';
s.pageName = 'Home';
s.t();
//ここまでがメインRS用の処理(いつもと同じ)
//以下はサブのRS用。上で定義した変数は影響しない
s.dynamicAccountSelection = false;
s.sa('subrsid');
var s2 = {
prop1 : 'sub',
pageName : 'top'
};
s.t(s2);
</script>
実例はこの辺を参考にどうぞ:楽天カード