Курс Google Analytics → Анализ просмотренных блоков страницы

Нет времени? Сохрани в

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

Если пользователь зашел на одностраничный сайт и вышел — то второй страницы просто нет, и временем на сайте будет время последнего переданного события в систему веб аналитики. А если событий не было, то и время посещения определить не возможно.

Но как же получить более внятную статистику о времени посещения одностраничника?

Можно посмотреть записи Вебвизора в Метрике, там будет правильное время, но там нет вариантов обобщить полученные данные.

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

У меня возникла идея разбить всю страницу на блоки по разделам страницы, и когда «взгляд» пользователя попадает в нужный раздел, считать, что он в данный момент его просматривает.  Так как обычно одностраничные сайты длинные, то при скроллинге через экран проходит последовательно много разделов (блоков страницы).

Так как взгляд посетителя нам поймать не получиться, то нужно определить «зону чтения» или «зону просмотра». Обычно, когда читают страницу, читаемый текст находится в верхней половине экрана. Для реализации я взял 25% от верха окна браузера, в коде вы можете задать своё значение.

Теперь, если хотя бы часть нужного нам блока (раздела сайта) попала на линию, на уровне 25%, то будем считать, что пользователь видит этот блок. При первом «просмотре» блока будем передавать в метрику и аналитику «событие» о посещении «виртуальной страницы». Если пользователь скролит до следующего блока, то как только новый блок попадает в 25%, передаем просмотр новой виртуальной страницы.

Для систем веб анализа наш одностраничный сайт превращается в «многостраничный», а раз так, то появляется «просмотры» и время посещения «виртуальной» страницы, в нашем случае — раздела сайта. А эти данные уже можно легко можно обработать стандартными методами и построить нужные отчеты.

Ниже пример отчета Google Analytics о поведении на страницах:

Теперь видно, что одни блоки просто я проскролил, а на других задержался, а на некоторые вернулся назад. Причем можно построить любые сегменты и отчеты для анализа в Google Analytics. В метрике, даже в новой, такой отчет сразу получить нельзя 🙁 , нужно делать отдельные сегменты, надеюсь яндекс допилит в дальнейшем свою Метрику 2.0.

Для реализации «виртуального многостраничного сайта» потребуется javascript код ниже:

window.onload=function(){  
  // Обзываем блоки как витруальные страницы 
    // 1 - ID веб-тега, например блока DIV
    // 2 - Передаваемый в метрику URL страницы
    // 3 - Передаваемое в метрику Название страницы - title

 var hitLinks= [
                //Страница по умолчанию
                ["main","/","Настройка контекстной рекламы Google AdWords и Яндекс.Директ"],
                //Остальные блоки как виртуальные страницы
                ["how","/virtual/how","Как это работает"],
                ["preim","/virtual/preim","Преимущества контекстной рекламы"],
                ["offer","/virtual/offer","Что мы предлагаем"],
                ["whatyouget","/virtual/whatyouget","Что Вы получите"],
                ["howwetune","/virtual/howwetune","Как мы настраиваем рекламные кампании"],
                ["orderform","/virtual/orderform","Форма заказа"],
                ["testimonial","/virtual/testimonial","Отзывы наших клиентов"],
                ["sertifikat","/virtual/sertifikat","Сертификаты специалистов"],
                ["waranty","/virtual/waranty","Гарантия возврата денег"]
                ];

                
//    global_ch - высота окна браузера             
 var global_ch=document.body.clientHeight;
 var global_wh=document.body.scrollHeight;
 var global_currentBlock = 0;
 var global_refererBlock = 0;
 //Добавляем в архив с блоками отступы самих блоков
hitLinks.forEach(function(value,i,arr) {
 var linkId=arr[i][0];
  hitLinks[i][3]=getElementPosition(linkId).top;
  hitLinks[i][4]=getElementPosition(linkId).top+getElementPosition(linkId).height;
});   
//получаем отступ блока от вверха и его высоту по ID блока
function getElementPosition(elemId){
   var elem = document.getElementById(elemId);
   var h = elem.offsetHeight;
   var t = 0;
   while (elem)
   {
     t += elem.offsetTop;
     elem = elem.offsetParent;
   }
   return  {"top":t, "height":h};
} 
 //Сравниваем значение скрола со всеми элементами
 window.onscroll = function() {
    var scrolled = window.pageYOffset || document.documentElement.scrollTop;
    hitLinks.forEach(function(value,i,arr) {
    // viewLine - линия, по которой определяем, в каком блоке сейчас ноходимся, по умолчанию 25% (1/4) от верха 
    var viewLine = scrolled+global_ch/4;
    if (viewLine >= arr[i][3] && viewLine < arr[i][4]){
          if (i!==global_currentBlock) {
             global_refererBlock=global_currentBlock;
             global_currentBlock=i;
            //Для отладки
            //console.log ("yaCounterXXXXXX.hit("+hitLinks[global_currentBlock][1] +","+ hitLinks[global_currentBlock][2]  +","+hitLinks[global_refererBlock][1] +")");
            //.hit(url, [title], [referer], [params])
            //
            yaCounter17462314.hit(hitLinks[global_currentBlock][1] ,hitLinks[global_currentBlock][2]  ,hitLinks[global_refererBlock][1]);
            ga('send', 'pageview', { 'page': hitLinks[global_currentBlock][1] ,  'title': hitLinks[global_currentBlock][2]});
            }     
    }
    }); 
};
};

Названия блоков приведены для примера, они соответствуют ID блоков DIV и их названию на главной страницы этого сайта, на которой код и тестировался. Вместо них впишите свои данные. Также измените номер счетчика в строке с yaCounter17462314.hit на свой.

Скрипт должен располагаться после скриптов метрики и аналитики.

Источник: https://esliklientov.net/articles/веб-аналитика/отслеживание-времени-посещения-на-landig-page.html

Твои коллеги будут рады, поделись в

Автор урока

Андрей Москалец
Андрей Москалец

Другие уроки курса "Google Analytics"

  1. Google Analytics: обзор системы с примером использования
  2. Определяем цели и метрики
  3. Как установить Google Analytics на сайт
  4. Как подготовить свой Google Analytics к GDPR
  5. Как Google Analytics собирает информацию
  6. Пользователь, сессия, просмотр страниц
  7. Показатель отказов в Google Analytics
  8. Показатель отказов на одностраничных сайтах
  9. Google Analytics: Что такое Client ID
  10. Сегменты в Google Analytics
  11. События в Google Analytics
  12. Цели в Google Analytics
  13. Как Google Analytics определяет источник трафика?
  14. Ярлыки и сохраненные отчеты в Google Analytics
  15. Заметки / аннотации в Google Analytics
  16. UTM-метки в Google Analytics: зачем нужны и как настроить
  17. Все что вы хотели знать о UTM-метках, но боялись спросить
  18. Почему в direct попадает другой трафик и как это исправить
  19. Интерфейс отчетов + пользовательские отчеты в Google Analytics
  20. Обзор отчетов Google Analytics в реальном времени
  21. Сравнение моделей мульти­канальной атрибуции
  22. Диаграмма «Новые и вернувшиеся пользователи» — будьте осторожнее!
  23. Анализ просмотренных блоков страницы
  24. Пользовательские сводки / Dashboards в Google Analytics
  25. Специальные оповещения / Custom Alerts в Google Analytics
  26. Когортный анализ в Google Analytics
  27. Идентификатор отслеживания аккаунта Google Analytics
  28. Дополнение Google Analytics для Google Taблиц
  29. Пользовательские параметры и показатели
  30. Какие данные запрещено собирать в Google Analytics
  31. Как передать ClientID в произвольный параметр
  32. Как настроить User ID в Google Analytics
  33. Собственная группа каналов в Google Analytics
  34. Как в Google Analytics отобразить полный адрес страницы
  35. Вычисляемые показатели в Google Analytics
  36. Отслеживание внутреннего поиска на сайте в Google Analytics
  37. Расхождения данных о кликах из AdWords в Google Analytics
  38. Что такое GA Measurement Protocol
  39. Google Analytics API для маркетолога на практическом примере
  40. Отправка информации об оплате в GA из Google Spreadsheet (без CRM)
  41. Как определить мошенничество CPA-сетей с помощью GA API и R
  42. Обходим семплирование и собираем сырые данные
  43. Google Forms: фиксируем событие отправки формы в Google Analytics
  44. Cоздаем списки ремаркетинга из старых пользователей без ограничений
  45. Стриминг данных из Google Analytics в Facebook Pixel
  46. Синхронизация событий с пикселями Facebook, VK, Yandex, MyTarget
  47. Как добавить больше двух параметров в отчет Google Analytics
  48. Несколько действий внутри customTask
  49. Как фиксировать трафик и лиды с партнерских сайтов
  50. Удаляем параметр fbclid из отчетов
  51. Скрипт. Исключаем метку fbclid в промышленных масштабах

Marketello читают маркетологи из крутых компаний