Настройка Google Analytics: более точный расчет продолжительности просмотра

Если Вы не знаете, как считается продолжительность просмотра страницы или не уверены в своих знаниях, прочитайте сначала этот материал.

Из-за особенности работы юольшинства систем веб-аналитики (в частности, Google Analytics и Яндекс.Метрики) данные о времени нахождения посетителя на сайте и показателе отказов существенно отличаются от правды.

Как это исправить?

В интернете можно найти разные вариации решения этой проблемы.

Одно из них (наиболее адекватное) я нашёл на optimization.com.ua. Там решение описывается как более точный расчёт показателя отказов в Google Analytics, который к тому же влияет на позиции сайта в ПС Google.

С утверждениями про отказы и позиции я не согласен, но решение интересное. Хотя, оно имеет свои плюсы и минусы (последних, к сожалению, больше). Но обо всём по-порядку.

Суть решения заключается в том, чтобы автоматически создавать виртуальное событие с определённой периодичностью.

Используя Google Event Tracking API, мы сможем каждые 10 секунд (или чаще, или реже) сообщать Google Analytics о том, что посетитель Х всё ещё находится на нашем сайте. Сайт будет обновлять Google Analytics каждые 10 секунд событием категории «Time», действием «Log», а значение будет соответствовать последовательности 0:10, 0:20, 0:30, 0:40 и так далее.

Собственно сам код, который нужно добавить на каждую страницу сайта:

<script type="text/javascript">
//Google Analytics Bounce Rate
(function (tos) {
  window.setInterval(function () {
    tos = (function (t) {
      return t[0] == 50 ? (parseInt(t[1]) + 1) + ':00' : (t[1] || '0') + ':' + (parseInt(t[0]) + 10);
    })(tos.split(':').reverse());
    window.pageTracker ? pageTracker._trackEvent('Time', 'Log', tos) : _gaq.push(['_trackEvent', 'Time', 'Log', tos]);
  }, 10000);
})('00');
</script>

Тут можно задать свои обозначения:

Time – Название категории события, которую Вы найдёте в статистике Google Analytics.

Log – Название действия события, которое Вы найдёте в статистике Google Analytics.

10000 – Периодичность обновления информации о посетителе в миллисекундах. Т.е. как часто мы проверяем, с нами ли посетитель.

Какой эффект получаем?

  1. Более точный показатель «Средняя длительность просмотра страницы».
  2. Любое посещение длительностью более 10 секунд не будет считаться отказом.
  3. Много информационного шума в отчётах по событиям

С длительностью порсмотра страницы всё просто — каждые 10 секунд мы создаём новое событие, которое запоминает Google Analytics. Если оно оказывается последним, то оно участвует в расчёте длительности просмотра (см. раздел «Как считается время нахождения на странице»).

Также после установки этого скрипта Вы заметите существенное снижение показателя отказов:
И наконец, лично мне мешает информационный шум и искажение некоторых цифр в отчётах по событиям. Мы получаем огромное количество виртуальных псевдо-событий, которые затрудняют оценку настоящих, вызванных посетителями сайта.
Недостаток работы на реальном примере:

Что из этого следует?

Слепо добавив этот скрипт на свой сайт будьте готовы к тому, что:

  • У Вас не будет адекватной цифры, описывающей показатель отказов на сайте. 10-секундные посещения — это ведь не цель существования Вашего сайта?
  • Вы усложните себе изучение отчёта по событиям
  • В Google Analytics есть лимит на использование 500 GATC events (Google Analytics Tracking Code), т.е. отслеживаемых событий. Сюда входят и просмотры страниц, и события, которые мы сами отслеживаем. Т.е. при стандартных настройках (обновление раз в 10 секунд) этот лимит будет исчерпан примерно за 83 минуты (500 событий * 10 секунд / 60 секунд в минуту). Конечно, сложно представить среднюю сессию длиной больше часа, но это обязательно нужно учитывать.

Стоит ли использовать метод?

Сама идея того, что мы можем рассчитать с хорошей точностью время пребывания на странице, хороша. Но я бы не рекомендовал использовать предложенный скрипт в чистом виде, т.к. далеко не для каждого сайта продолжительность последнего просмотра имеет крайне высокую ценность. Хотя бы потому, что это время чаще всего сложно интерпретировать правильно.

Хорошо подумайте перед тем, как использовать данный метод.

Тщательно продумайте, на каких страницах и в каком виде Вы будете его использовать.

Заранее подумайте о последствиях.

Несколько вариаций использоватия метода:

  • Создовать событие не каждые 10 секунд, а через постоянно увеличивающийся интервал времени (например: 10, 15, 25, 40, …)
  • Повесить событие на закрытие вкладки и браузера
  • Использовать аналог точного показателя отказов в Яндекс.Метрике. Т.е. создавать одно событие для одного просмотра страницы через определённый интервал времени (в Метрике — это через 15 секунд после начала просмотра страницы).
  • Создавать событие при выполнении набора обязательных действий. Например, скроллинг на 70% длины страницы + время просмотра более 40 секунд.

Если Вы всё же решили использовать метод

В процессе изучения работы предложенного решения я нашёл способ избавиться от «шума» в отчётах по событиям.

  1. Открываем отчёт «Содержание / События / Лучшие события».
  2. Переходим в настройку отчёта
  3. Устанавливаем фильтр

    Здесь Time — это название категории, которое указано в коде костыля. Если Вы меняли название в коде, его же нужно использовать и в этом фильтре.

В итоге получаем более наглядную информацию о событиях:

Если Вы посмотрите этот же отчёт с основным параметром «Ярлык события», Вы увидите примерно следующее:

Можно отфильтровать по наличию двоеточия в ярлыке, если в других ярлыках Вы не используете этот символ.