テスト対象ページの滞在時間を計測するゴールの設定方法
2023年以降にご契約いただいたお客様の場合、「ゴール」の機能が「メトリクス」と記載されている場合がございます。
メトリクスもゴールと同様の種類をご利用いただけます。
表示されているUIが異なる場合はこちらをご確認ください。
ページ滞在時間を計測したい場合はカスタムコンバージョンゴールを設定する必要があります。この記事では、その設定例をご案内します。
キャンペーンを開き、キャンペーン名の下に表示されるメニューバーから、設定 > ゴール を開きます。
開いた画面にて、カスタムコンバージョンを計測 をゴールとして追加します。10秒から60秒まで10秒毎に計測したい場合は、6つのゴールが必要です。
必要なゴールを全て設定してから、右上もしくは一番下にある緑色の 保存 ボタンを押してください。
設定 > サマリー 画面にて発行される該当ゴールのJavascriptタグを、テキストエディタにコピーします。<script></script>の間にあるコードのみをコピーしてください。
Attention!
ゴール毎に一意のタグが発行されますので、必ず 設定 > サマリー 画面より、該当ゴールのタグをコピーしてください。
カスタムゴールのJavascriptタグを準備したら、コードエディタを開いてください。
ページ内の要素が全て読み込まれた状態で滞在時間を計測し始めるために、上記のタグと、Javascriptの発火ロジックをPOST-CAMPAIGN JSに記入します。POST-CAMPAIGN JSを開くにはコードエディタのキャンペーンJS/CSSについてをご覧ください。
Attention!
下記のコードはゴール番号が289~294となっていますが、前のステップでコピーしたカスタムゴールのJavascriptタグに入れ替えてください。
Attention!
10秒毎ではなくて、例えば20秒毎に計測したい場合は下記のコードを修正する必要があります。「>=」の後に来る数字を計測したい時間に入れ替えてください。(例えば:100は100秒です)
// カスタムゴールの発火コード
setInterval(function(){
// 10秒
if(parseInt(timeSpentOnSite / 1000) >= 10){
window._vis_opt_queue = window._vis_opt_queue || [];
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(289);});
}
// 20秒
if(parseInt(timeSpentOnSite / 1000) >= 20){
window._vis_opt_queue = window._vis_opt_queue || [];
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(290);});
}
// 30秒
if(parseInt(timeSpentOnSite / 1000) >= 30){
window._vis_opt_queue = window._vis_opt_queue || [];
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(291);});
}
// 40秒
if(parseInt(timeSpentOnSite / 1000) >= 40){
window._vis_opt_queue = window._vis_opt_queue || [];
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(292);});
}
// 50秒
if(parseInt(timeSpentOnSite / 1000) >= 50){
window._vis_opt_queue = window._vis_opt_queue || [];
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(293);});
}
// 60秒
if(parseInt(timeSpentOnSite / 1000) >= 60){
window._vis_opt_queue = window._vis_opt_queue || [];
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(294);});
}
},1000);
// 滞在時間を計測する関数コード
var timer;
var timerStart;
var timeSpentOnSite = getTimeSpentOnSite();
function getTimeSpentOnSite(){
timeSpentOnSite = parseInt(localStorage.getItem('timeSpentOnSite'));
timeSpentOnSite = isNaN(timeSpentOnSite) ? 0 : timeSpentOnSite;
return timeSpentOnSite;
}
function startCounting(){
timerStart = Date.now();
timer = setInterval(function(){
timeSpentOnSite = getTimeSpentOnSite() + (Date.now() - timerStart);
localStorage.setItem('timeSpentOnSite', timeSpentOnSite);
timerStart = parseInt(Date.now());
// Change to seconds
var timeCount = parseInt(timeSpentOnSite / 1000);
return timeCount;
},1000);
}
startCounting();
/* ---------- If tab is inactive, stop timer ---------- */
var stopCountingWhenWindowIsInactive = true;
if( stopCountingWhenWindowIsInactive ){
if( typeof document.hidden !== "undefined" ){
var hidden = "hidden",
visibilityChange = "visibilitychange",
visibilityState = "visibilityState";
} else if ( typeof document.msHidden !== "undefined" ){
var hidden = "msHidden",
visibilityChange = "msvisibilitychange",
visibilityState = "msVisibilityState";
}
var documentIsHidden = document[hidden];
document.addEventListener(visibilityChange, function() {
if(documentIsHidden != document[hidden]) {
if( document[hidden] ){
// Window is inactive
clearInterval(timer);
} else{
// Window is active
startCounting();
}
documentIsHidden = document[hidden];
}
});
}
コードを入れ終わったら、保存して終了です。