概要
Googleアナリティクス(Google Analytics:GA)で、1ページに滞在している時間を正確に計測する方法をご紹介します。
実現する設定
- GAの仕様で1ページのみ閲覧したユーザー(直帰者)は、滞在時間を計測できません。
- そこでGoogleタグマネージャ(GTM)を使用して、滞在時間を10秒ごと(最大5分:30回)にイベント計測します。
- javascriptでも実現できますが、GTMを使うことで比較的、設定を容易にします。
- 最終的に、ページ訪問から10秒経過するごとにイベントログを飛ばすように設定します。
設定手順
1.GTMアカウントを発行
2.GTMタグをページに設置
一般的な方法なので、他の詳しく解説しているサイトをご覧ください。
3.GTMを設定
マクロ
マクロを3つ作成します。
マクロ:gtm_timerElapsedTime
GTMから発生する変数の「gtm.timerElapsedTime」を取得するマクロです。
後述のタイマートリガーを使うと取得可能になります。
マクロ:cjs_経過時間
時間をミリ秒を秒に変換するカスタムjavascriptです。
function() { return Math.floor({{gtm_timerElapsedTime}} / 1000); }
マクロ:cjs_経過時間(3桁5秒切下)
経過時間(マクロ:cjs_経過時間)をフォーマット化(3ケタ&5秒切り下げ)するjavascriptです。
function() { var str = String(Math.floor({{cjs_経過時間}} / 5 ) * 5); while(str.length < 3) { str = "0" + str; } return str; }
トリガー
トリガーを1つ作成します。
タイマーイベントで10秒ごと(10000ミリ秒)ごとに最大30回(5分)発火するトリガーです。
ページの経過時間を測る「gtm.timerElapsedTime」が利用可能になります。
タグ
GAのイベントタグを1つ作成します。カテゴリ、アクション、ラベルは以下のように設定します。
- カテゴリ:「滞在時間」固定文字列で滞在時間
- アクション:「{{cjs_経過時間(3桁5秒切下)}}秒」滞在時間をフォーマット化した秒数
- ラベル:「{{cjs_経過時間}}秒({{gtm_timerElapsedTime}}ミリ秒)」滞在時間のフォーマット化前の秒数とミリ秒(エラーチェック用)
4.GTMにてプレビュー
GTMでプレビュー(デバッグ)モードで動作を確認します。
デバッグは、該当のブラウザのみで動作確認するモードです。
gtm.timerというイベントが発生し、作成したタグが発火しているか確認します。
5.GA計測確認:GAリアルタイムイベントにて確認
設定したページにアクセスして正しく動作していることを確認します。
GAのリアルタイムレポート>イベントにて計測を確認します。
「イベント(直近30分)」にて確認
イベントラベルにてミリ秒単位の計測が確認できます。