2016-06-28 8 views
0

Googleアナリティクスのマスターページに次のコードがあります。jqueryのスクロールイベントでGoogleアナリティクスを呼び出す

<script type="text/javascript"> 
(function (i, s, o, g, r, a, m) { 
    i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function() { 
     (i[r].q = i[r].q || []).push(arguments) 
    }, i[r].l = 1 * new Date(); a = s.createElement(o), 
    m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) 
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); 

ga('create', '@System.Configuration.ConfigurationManager.AppSettings["GoogleAnalyticsID"]', 'auto'); 
ga('send', 'pageview'); 
</script> 

私は、スクロールイベントのために、Googleの解析関数を呼び出す方法をスクロールイベントのためにJSでのGoogle Analyticsをコールする必要がありますか?これを解決する方法を教えてください。 ?

+0

デファクトスタンダードはhttp://scrolldepth.parsnip.io/のようです。あるいは、Google独自のJustin Cutroniから:http://cutroni.com/blog/2014/02/12/advanced-content-tracking-with-universal-analytics/。私はずっと多くのものがあると確信しています、それらはGoogle検索からのちょうど最初の2つのヒットです。 –

答えて

0

私の会社で働いていた男がGoogleアナリティクスクラシックで使用するライブラリを開発しました。Track Scrollプラグインを使用してユニバーサルGoogleアナリティクスを起動しました。ここにコードがあります: jQueryのユーザーのためのスクロール深追跡のためだけの)私に尋ねる

/** 
 
* GAS - Google Analytics on Steroids 
 
* 
 
* Max-Scroll Tracking Plugin 
 
* 
 
* Copyright 2011, Cardinal Path and Direct Performance 
 
* Licensed under the GPLv3 license. 
 
* 
 
* @author Eduardo Cereto <[email protected]> 
 
*/ 
 

 
var _maxScrollOpts; 
 

 
/** 
 
* Get current browser viewpane heigtht 
 
* 
 
* @return {number} height. 
 
*/ 
 
function _get_window_height() { 
 
    return window.innerHeight || documentElement.clientHeight || 
 
     document.body.clientHeight || 0; 
 
} 
 

 
/** 
 
* Get current absolute window scroll position 
 
* 
 
* @return {number} YScroll. 
 
*/ 
 
function _get_window_Yscroll() { 
 
    return window.pageYOffset || document.body.scrollTop || 
 
     documentElement.scrollTop || 0; 
 
} 
 

 
/** 
 
* Get current absolute document height 
 
* 
 
* @return {number} Current document height. 
 
*/ 
 
function _get_doc_height() { 
 
    return Math.max(
 
     document.body.scrollHeight || 0, documentElement.scrollHeight || 0, 
 
     document.body.offsetHeight || 0, documentElement.offsetHeight || 0, 
 
     document.body.clientHeight || 0, documentElement.clientHeight || 0 
 
    ); 
 
} 
 

 

 
/** 
 
* Get current vertical scroll percentage 
 
* 
 
* @return {number} Current vertical scroll percentage. 
 
*/ 
 
function _get_scroll_percentage() { 
 
    return (
 
     (_get_window_Yscroll() + _get_window_height())/_get_doc_height() 
 
    ) * 100; 
 
} 
 

 
var _t = null; 
 
var _max_scroll = 0; 
 
function _update_scroll_percentage(now) { 
 
    if (_t) { 
 
     clearTimeout(_t); 
 
    } 
 
    if (now === true) { 
 
     _max_scroll = Math.max(_get_scroll_percentage(), _max_scroll); 
 
     return; 
 
    } 
 
    _t = setTimeout(function() { 
 
     _max_scroll = Math.max(_get_scroll_percentage(), _max_scroll); 
 
    }, 400); 
 
} 
 

 
function _sendMaxScroll() { 
 
    _update_scroll_percentage(true); 
 
    _max_scroll = Math.floor(_max_scroll); 
 
    if (_max_scroll <= 0 || _max_scroll > 100) return; 
 
    var bucket = (_max_scroll > 10 ? 1 : 0) * (
 
     Math.floor((_max_scroll - 1)/10) * 10 + 1 
 
    ); 
 
    bucket = String(bucket) + '-' + 
 
     String(Math.ceil(_max_scroll/10) * 10); 
 

 
    ga('send', 
 
     'event', 
 
     _maxScrollOpts['category'], 
 
     url, 
 
     bucket, 
 
     Math.floor(_max_scroll), 
 
     true // non-interactive 
 
    ); 
 
} 
 

 
/** 
 
* Tracks the max Scroll on the page. 
 
* 
 
* @param {object} opts GAS Options to be used. 
 
* @this {GasHelper} The Ga Helper object 
 
*/ 
 
function _trackMaxScroll(opts) { 
 
    if (!this._maxScrollTracked) { 
 
     this._maxScrollTracked = true; 
 
    } else { 
 
     //Oops double tracking detected. 
 
     return; 
 
    } 
 
    _maxScrollOpts = opts || {}; 
 
    _maxScrollOpts['category'] = _maxScrollOpts['category'] || 'Max Scroll'; 
 

 
    this._addEventListener(window, 'scroll', _update_scroll_percentage); 
 
    this._addEventListener(window, 'beforeunload', _sendMaxScroll); 
 
} 
 

 
_trackMaxScroll();

関連する問題