Googleアナリティクスで一定ピクセル以上スクロールしたらイベントトラッキングする実装方法。ユニバーサルアナリティクスの生タグでの実装方法を説明する。なお現在はGoogleタグマネージャーを使えば簡単に実装できるためあまり役には立たないかもしれない。
条件は下記。
- PC、スマホで特定ピクセルを超えてスクロールしたらイベント検出
- PCは800ピクセル(
> 800
) - スマホは600ピクセル(
> 600
)
- PCは800ピクセル(
- 一度イベント検出したらそのPV中は再検出しない(その後のスクロールは無視)
- 既存のトラッキングコードとセットで設置(HTML内の別箇所ではない)
実装のポイントは、一度scrolled
がtrueになったらイベント通知したうえでイベント検出関数を削除すること。
目次
コード
いずれのコードもGoogleアナリティクスのトラッキングタグとの前後関係は問わない(どこに設置してもいい)。
// 処理で使った変数や関数がグローバルを汚染しないようにクロージャで
(function(){
// このタイミングで実行することで、Googleアナリティクスのトラッキングタグとの前後関係は問わなくなる
document.addEventListener('DOMContentLoaded', function(){
// スクロール時の処理を関数で
function f() {
if (!window.scrolled) {
var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
// スマホの場合は600ピクセルで
if (window.navigator.userAgent.toLowerCase().indexOf('mobi') > -1) {
if (scrollTop > 600){
window.scrolled = true;
}
// スマホ以外の場合は800ピクセルで
} else if (scrollTop > 800){
window.scrolled = true;
}
// フラグが立ったタイミングで
if (window.scrolled){
// イベント検出を無効に
window.removeEventListener('scroll', f);
// 一応SPとPCで分けてイベントトラッキング
if (window.navigator.userAgent.toLowerCase().indexOf('mobi') > -1) {
ga('send', 'event', 'scroll', 'SP');
} else {
ga('send', 'event', 'scroll', 'PC');
}
}
}
}
window.scrolled = false;
window.addEventListener('scroll', f);
}, false);
}());
Googleアナリティクス関連Tips
イベント計測
- 特定の要素を表示したときにイベントトラッキングする
- 一定以上スクロールしたらイベントトラッキング(PC/スマホ別)
- JavascriptでYahoo!などのタグマネージャに渡すためのイベントを発生させる
ページビュー計測
- [同一URLでフォーム遷移する場合のページビュー計測](/track-form-transition-in-same-url/
- canonicalをページのURLとして自動で採用する実装(計測URLの正規化)
eコマース計測
Google の記事一覧
www.marketechlabo.com
Page Not Found