Отказами будут считаться сеансы, в которых:
<script type="text/javascript">
$(document).ready(function(){
window.increaseUserActivity = (function() {
var options = {
timer: 10,
bounce_rate: 2,
target: 10,
yandex: 'yaCounterXXXXXX',
google: 'ga'
};
var timeCheck = false;
var sended = false;
var times = 0;
var bounceCount = 0;
var targetCount = 0;
var start = function () {
if (typeof jQuery !== 'function') return false;
jQuery(document).on('scroll click dblclick mousemove keydown keyup error', function () {
timeCheck = true;
});
_start();
};
function _start() {
setInterval(function () {
if (timeCheck) {
console.log('было действие ' + times.toString());
if (typeof options.google != 'undefined')
window[options.google]('send', 'event', 'AvtoFocus', 'AvtoLoad', 'Отслеживание активности пользователя', {nonInteraction: _bounceCheck()});
timeCheck = false;
_targetCheck();
} else {
console.log('ничего не было ' + times.toString());
}
++times;
}, parseInt(options.timer * 1000));
}
function _targetCheck() {
++targetCount;
if (!sended && (targetCount >= options.target)) {
console.log(targetCount);
if (typeof options.google != 'undefined')
window[options.google]('send', 'event', 'AvtoFocus', 'TargetLoad', 'Пользователь произвел {X} взаимодействий с сайтом'.replace(/\{X\}/i, targetCount));
if (typeof options.yandex != 'undefined')
window[options.yandex].reachGoal('TargetLoad');
sended = true;
console.log('Пользователь произвел {X} взаимодействий с сайтом'.replace(/\{X\}/i, targetCount));
}
}
function _bounceCheck() {
if (bounceCount <= options.bounce_rate) {
console.log('Взаимодействие #' + (++bounceCount));
}
return bounceCount <= options.bounce_rate;
}
return {
start: start
}
}());
$('body').append('<script '+'type="text/javascript">'+"\n"+'window.increaseUserActivity.start();'+"\n"+'</'+'script>');
});
</script>