0 %

Hello There!

Lorem ipsum dolor sit amet, consectetur adipiscing elit,

Information

Follow Us

Как отслеживать максимальную глубину скроллинга и точное время пребывания на странице в Google Analytics, используя GTM

OdesSeo > Blog Standard > Веб-аналитика > Как отслеживать максимальную глубину скроллинга и точное время пребывания на странице в Google Analytics, используя GTM

Как отслеживать максимальную глубину скроллинга и точное время пребывания на странице в Google Analytics, используя GTM

глубина скроллинга

Отслеживание скроллинга в Google Analytics

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

История создания скрипта отслеживания скроллинга

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

Описание скрипта

Мой скрипт позволяет отправлять максимальные значения скроллинга и точного времени на странице, так как я использую событие beforeunload, которое назначается объекту window, и действие которого будет выполнено в момент перед завершением работы пользователя со страницей (ее закрытие, обновление или переход на другую страницу). В каждый момент прокрутки страницы я сравниваю текущее значение глубины скроллинга с уже зафиксированным и выбираю наибольшее из них, таким образом, в момент закрытия окна у меня имеется максимальное значение глубины скроллинга. С помощью функции getTime() класса Date я фиксирую время при заходе пользователя на страницу и время при наступлении события beforeunload (завершение работы со страницей), затем определяю разность этих величин и получаю общее время на странице. Полученные значения времени и скроллинга записываю в переменные, которые передаю в GTM посредством datalayer.push(). Помимо точных значений времени и скроллинга для удобства последующего анализа в скрипте я также группирую данные по диапазонам. Скрипт доступен по ссылке

Инструкция по внедрению

1. Добавляем новый тег типа “Пользовательский тег HTML” Вставляем в текстовое поле скрипт, о котором шла речь выше.

инструкция

В качестве условия активации тега указываем событие gtm.dom.

инструкция

2. Создаем следующие переменные уровня данных: time_on_page и percent_of_scrolling, percent_of_scrolling_interval, time_on_page_interval

инструкция

инструкция

скроллинг

прокрутка

3. Создаем новый триггер типа «Пользовательское событие» Scroll to.

скроллинг

4. Добавляем новый тег типа Universal Analytics, который будет отправлять данные о нашем событии в аналитику. В настройках тега в качестве типа отслеживания выбираем «Событие». Указываем Категорию и Действие. В качестве правила активации добавляем пользовательское событие “Scroll to”.

скроллинг

Хочу обратить внимание на опцию “Не взаимодействие” (ВАЖНО!).

время на странице

Если вы хотите, чтобы отправка события влияла на ваш показатель отказов, то необходимо установить значение “false” для этого параметра. В противном случае — устанавливайте значение “true”. В качестве категории события я передаю URL текущей страницы: {{Page Path}}. В качестве действия события я передаю строку вида: Scrolling to {{percent_of_scrolling}} and time on page {{time_on_page}}. Таким образом в отчетах по поведению, выбрав в качестве основного параметра “Действие по событию”, я смогу видеть данные в следующем виде для каждой категории события — страницы моего сайта.

лучшие события

Для группировки этих данных можно воспользоваться регулярными выражениями (Подробнее я рассматривала примеры использования регулярных выражений тут). Например, если я считаю, что показателем вовлеченности пользователя в контент определенной страницы является скроллинг глубиной не менее 80% и время на странице не менее 2 минут, то я могу настроить соответствующее регулярное выражение:

регулярное выражение

Scrolling to (([8-9][0-9])|100)% and time on page [0-9][0-9]:[0-5][2-9]:[0-5][0-9] Но все же работать с данными в таком виде не слишком удобно, поэтому для удобства последующего анализа я добавила в скрипт группировку по диапазонам. Тут нам понадобятся переменные percent_of_scrolling_interval, time_on_page_interval. Например, передав в качестве действия события строку Scrolling {{percent_of_scrolling_interval}}, а в качестве ярлыка события — Time on page {{time_on_page_interval}}, мы сможем увидеть данные о скроллинге и времени для каждой страницы, сгруппированные по диапазонам.

Данные о скроллинге для каждой страницы, сгруппированные по диапазонам.

лучшие события

Данные о времени для каждой страницы, сгруппированные по диапазонам.

прокрутка

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

прокрутка

Анализируем своих читателей

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

Характеристика читателя статьиСкроллинг, %Время
Читал вдумчиво70-100Более 70% от эталонного времени
Читал по диагонали70-100Менее 70%, но более 10% от эталонного времени
Не читал вовсе0-10Любое время
Бросил читать на середине40-70Более 35% от эталонного времени
Бросил читать в начале10-40Более 17.5% от эталонного времени
Просмотрел материал до середины40-70Менее 35% от эталонного времени
Начал просматривать, но бросил в начале10-40Менее 17.5% от эталонного времени
Проскроллил до конца, не читая70-100Менее 10% от эталонного времени

где эталонное время — это время, которое на Ваш взгляд либо исходя из каких-то экспериментов, является оптимальным для прочтения статьи. Я его выбирала исходя из соответствия длины страницы в пикселях и времени, которое затрачивается на ее прочтение. Кратко опишу свой подход. Рассматриваем несколько статей анализируемого блога, находим длину этих страниц в пикселях, засекаем, сколько времени нужно группе людей, чтобы прочитать статью. Находим среднее время, которое тратится читателями на прочтение каждой статьи. Зная длины страниц в пикселях и полученные средние значения времени, можем получить некоторый коэффициент, который показывает, сколько пикселей страницы прочитывается за единицу времени в среднем. Я нахожу два таких коэффициента: для пк и мобильных устройств. Эти показатели я и использую для подсчета эталонного времени прочтения каждой статьи. Выбранные коэффициенты подходят в моем случае, и, вполне вероятно, подойдут еще для каких-то ресурсов, размещающих статьи. Однако следует помнить, что они зависят от особенностей отображения статей на сайте и их содержимого, а значит могут нуждаться в корректировке. Желательно проводить такую корректировку в рамках каждого контентного ресурса отдельно, так как идеально подстроиться под стили отображения текста на странице, шрифты и т. д. нескольких блогов одновременно невозможно. Итак, если вы каким-то образом определили это магическое число, то в скрипте в переменной “etalon” вам нужно заменить мои значения на свои. Еще раз акцентирую внимание, в переменной “etalon” хранится коэффициент, который показывает, сколько пикселей страницы оптимально должно быть прочитано за единицу времени.

время на странице

Для присваивания категории читателю в исходный скрипт я добавила функцию getCharacters().  Функция getCharacters() принимает на входе переменные deep и time. В теле функции я реализую определение принадлежности читателя статьи категории. Вы можете модифицировать критерии, по которым присваивается категория читателю статьи, если пожелаете. Таким образом, чтобы помимо данных о скроллинге и времени на странице, передавать также характеристику читателя, нужно использовать версию скрипта с функцией getCharacters(), а также  добавить еще одну переменную уровня данных и внести небольшие изменения в тег отправки события скроллинга GUA.

Добавляем присваивание категории читателю

1. Создаем переменную уровня данных character

скроллинг

2. В качестве пользовательского тега HTML используем новую версию скрипта, содержащую функцию getCharacters() Скрипт доступен по ссылке 3. Вносим изменения в тег отправки события скроллинга GUA

тег отправки события

Таким образом в аналитике мы сможем увидеть вот такой отчет по каждой статье (отчет Поведение>>События>>Лучшие события>>выбираем категорию события — интересующую нас статью):

лучшие события

Надеюсь, что моя работа будет полезной для вас, и кто-нибудь попробует внедрить мой скрипт на своем сайте! Если возникают вопросы/предложения — пишите, буду рада получить фидбек! 2 ЧАСТЬ подробного руководства по отслеживанию скролла в Google Analytics через GTM
Tagged with :

Comments (163)

  • Андрей Осипов

    Здорово, спасибо)

    • Анастасия Тимошенко

      Андрей, спасибо!)

  • Александр Остапчук

    крутая статья

  • Ирина

    Спасибо, Ваша работа действительно полезна.

    • Анастасия Тимошенко

      Спасибо за обратную связь!

  • Макс

    Спасибо. Попробуем настроить такое у себя.

  • Владислав Велев

    Спасибо

  • Феликс

    Странно, у меня код после внесения в GTM вызвал ошибку:
    Ошибка в строке 24, символ 24. Parse error. invalid assignment target.

    Решил пересмотреть скрины и ваш код, они не сходятся.

    И банальный вопрос по gtm.dom, в имя события пишем gtm.dom и всё? Помню в старом интерфейсе он был под рукой, после обновления потерял 🙂

    • Анастасия Тимошенко

      Феликс, перезалила скрипт в гугл докс. Скопируйте, пожалуйста, оттуда и попробуйте еще раз. Да, gtm.dom пишется в имени события в триггере.

      • Феликс

        Да, теперь всё нормально.
        Вопрос вроде последний, что-то в самом GA нужно настраивать? Пока что данных не вижу ни в риал-тайме ни в отчёте по событиям. В последнем обновил данные, то пока пусто. По предпросмотру вижу что тег подгружается и выполняется.

        • Феликс

          Пошли данные, только сейчас заменил на вторую версию скрипта. Жду пока по сайту траффик полазит.

          Спасибо за интересный материал.

          • Анастасия Тимошенко

            Отлично! Пожалуйста=)

  • Феликс

    И снова приветствую) После смены кода на вторую версию, перестали приходить события.

    Хотя по отладчику вижу что срабатывает вывод JS’а.

    Но в GA все события старый, решил переждать ночь. Но новых событий нет, посещаемость была. Не высокая но всё же.

    Что посоветуешь, стоит что ли пересоздать полностью все пункты с 0?

    • Анастасия Тимошенко

      Феликс, проверьте, все ли настройки в гтм совпадают с моими и протестируйте события в отчете В режиме реального времени>>События>>вкладка «События (за последние 30 мин.)»

      • Феликс

        Да, всё сходится.
        И нет, в отчёте данные не появляются.
        Думал счётчик барахлит, нет работает исправно. Подожду, если не появится то вернусь к первому варианту, он работал нормально.

        • Анастасия Тимошенко

          Феликс, проверила второй скрипт еще раз — все работает! Если есть желание разобраться, можете написать мне последовательность своих действий на почту odesseo.ua@gmail.com, желательно со скринами, постараюсь помочь найти проблему.

  • евгений

    Добрый вечер, как правильно настроить цели для лендинга (количество экранов, которые просмотрены), подойдёт такой вариант, о котором Вы рассказали или как то по другому?

    • Анастасия Тимошенко

      Добрый день. Это уже несколько другая задача, решение которой зависит от структуры лендинга.

  • Ярослав

    Настроил все как у вас написано. Но как сделать передачу события в аналитикс.
    Создал тег типа ГА
    Категория {{Page Path}}
    Действие Scrolling to {{percent_of_scrolling}} and time on page {{time_on_page}}
    Ярлык deep
    Значение time
    Такое событие создал и в аналитиксе, но в онлайн отчете ничего не отображается, да и так в статистике по конверсиям тоже. В чем может быть проблема?

    • Анастасия Тимошенко

      Ярослав, дело в том, что если для опции «не взаимодействие» выбрать значение «true», данные о событиях в режиме реального времени (вкладка «Активные пользователи») не отображаются. Можно воспользоваться второй вкладочкой отчета: «События (за последние 30 мин.)». Там все события видны. http://i.shotnes.com/n4b9kcpa Ну и в обычных отчетах группы «События» Вы можете наблюдать данные.

  • Olga

    Анастасия, добрый день
    если нет возможности определить переменную etalon.
    Можно сократить код на функцию getCharacters. Удалив её и из тэга?

    • Анастасия Тимошенко

      Ольга, добрый день!

      Если просто удалить функцию getCharacters, то в коде останется ее вызов и возникнут ошибки. То есть, тогда нужно удалить и ее вызов. Если Вы не планируете использовать присваивание характеристики читателю, то рекомендую воспользоваться первой версией скрипта.

  • Olga

    Анастасия,большое спасибо
    все работает

    И ещё раз спасибо за материал!

    • Анастасия Тимошенко

      Отлично! Пожалуйста! Рада, что материал оказался полезен.

  • Bogdan

    Может также не работать если не установлен jQuery.

    • Анастасия Тимошенко

      Абсолютно верно. Для того, чтобы скрипты работали, на сайте должен быть установлен jQuery

  • Olga

    Анастасия, вы не подскажите почему могут не работать события. Вот посадочная страница http:// www. lg .com/ru/monitors/ultrawide/test-drive
    Кнопка «Заполнить анкету»
    Настраивала по инструкции

    • Анастасия Тимошенко

      Ольга, добрый день!

      Покажите настройки тегов.

  • Рома

    добрый день!
    подскажите пожалуйста через какое время в GA должны начаться отображаться данные

  • Рома

    и как можно проверить работаєтли он без GA

    • Анастасия Тимошенко

      Добрый день, Рома! Поступление данных в GA можно проверить сразу, воспользовавшись отчетом «Режим реального времени» (Вкладка «События (за последние 30 мин.)»)

  • Александр

    Анастасия, спасибо! А как можно минимальными силами и без лишних «костылей» модернизировать скрипт под динамические сайты (на AJAX), на которых нет события beforeunload?

  • Катя

    Анастасия, здравствуйте!

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

    • Анастасия Тимошенко

      Добрый день! А в каких отчетах проверяете поступление данных? Все ли теги корректно срабатывают при тестировании в отладчике GTM?

  • Александр

    Возможно глупый вопрос, но где это событие gtm.dom?

    • Анастасия Тимошенко

      Добрый день! Нужно создать триггер — пользовательское событие, gtm.dom пишется в поле «Имя события» этого триггера.

      • Александр

        Спасибо! Уже разобрался. Вопрос действительно был глупый))

  • Константин

    Настроил… хороший скрипт. Спасибо! 😉

    • Анастасия Тимошенко

      Спасибо!)

  • Илья

    Анастасия, а обязательно чтоб GA при этом тоже был поставлен через GTM?
    И еще не совсем понял, вот этот код аналитики в скобочках надо просто как у вас на скриншоте прописать? https://drive.google.com/file/d/0B4fOfMTj9MrvckI3WDlrRHZzSjA/view?usp=drivesdk

    Или он же заранее должен был быть создан?

    • Анастасия Тимошенко

      Добрый день, Илья!

      В это поле Вам необходимо вставить идентификатор отслеживания своего ресурса. Он имеет вид UA-ХХХХХХХХ-Х. Найти его можно в настройках ресурса в Google Analytics. У меня этот идентификатор для удобства сохранен в переменной {{код аналитики}}.

  • Илья

    А то у меня тоже события не появляются.
    И еще для времени (ercent_of_scrolling_interval) на странице отдельно надо настраивать тег?
    У вас на скриншоте одно действие написано
    https://odesseo.com.ua/wp-content/uploads/2015/06/instructionscr8.png
    А ниже пишете:
    В качестве действия события я передаю строку вида:
    Scrolling to {{percent_of_scrolling}}

    • Анастасия Тимошенко

      Вы можете вместо переменной {{percent_of_scrolling}} передавать {{percent_of_scrolling_interval}}. У меня на скриншоте опечатка.Спасибо, что обратили мое внимание!

  • Volya

    Настя, спасибо за этот чудесный скрипт!
    Настроила для своего блога и все зароботала с первого раза 🙂

    • Анастасия Тимошенко

      Оля, спасибо за обратную связь. Рада, что все получилось!

  • Виктор

    www. amiranxxi. com.ua — не хочет срабатывать в этом месте «Tags Not Fired On This Page: Статистика о скроллинге в AnalyticsUniversal Analytics». Вроде все сделал так, как у Вас описано.

    • Анастасия Тимошенко

      Добрый день, Виктор!
      Какой конкретно тег не срабатывает? Пользовательский тег со скриптом либо тег отправки события в аналитику?

  • Кирилл

    Спасибо, попробовал, результаты интересные. Такой вопрос — а нельзя ли как-то учитывать то, что на отслеживаемой странице после собственно полезного содержания идёт довольно большой блок «Рекомендуемые Материалы», или, как вот здесь, комментарии? Их-то не факт что нужно считать. Что бы скроллинг считался не для всей страницы, а только для «полезного материала»…

    • Анастасия Тимошенко

      Добрый день, Кирилл. Многое зависит от структуры Вашего сайта. Как вариант, Вы можете взять высоту блока, содержащего полезный контент, в качестве высоты документа. Данную высоту Вы можете рассчитать с помощью функций библиотеки jQuery.

  • Павел

    Выполнил настройку, всё заработало.
    через несколько дней перестало работаьт

    Кто нибудь сталкивался с похожей ситуацией?

    • Анастасия Тимошенко

      Добрый день, Павел. Дайте больше информации, чтобы я могла Вам помочь. Теги срабатывают на странице? Данные в отчетах режима реального времени есть?

  • Дима Белоус

    Интересная идея. Настя, а можешь, пожалуйста, привести пример практического применения. Т.е. увидели статистику, которая не устраивает, приняли меры, статистика стала лучше

    • Анастасия Тимошенко

      Дима, спасибо!)

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

  • Иван

    Добрый день Анастасия.
    Спасибо за интересную информацию. Попробовал по вашему скрипту настроить отслеживание. Но возникла проблема, статистика не появляется в GA. При предварительном просмотре из GTM на моем сайте видно активацию тэга на скролинг, на передачу информации соответственно нет.
    Не подскажите в чем может быть проблема? И сколько должно пройти времени после публикации, на появление статистики в GA?

    • Анастасия Тимошенко

      Добрый день, Иван! Спасибо=)
      Проверьте, совпадают ли ваши настройки тега отправки данных в аналитику с моими. Если не находите ошибку, сделайте скриншот своих настроек тега.

      • Иван

        Анастасия, вам на почту скрины скинуть?
        Просто я не нашёл как прикрепить файл к ответу.

  • Иван

    Похоже нашли ошибку, у нас скорее всего цели в GA настроены не верно.
    Цели в GA нужно настраивать на каждый интервал отдельно?

    • Анастасия Тимошенко

      Чтобы проверить корректность работы тега, не обязательно создавать цели. Посмотрите отчет по событиям в режиме реального времени (только переключитесь на вторую вкладку События (за последние 30 мин.))

  • Иван

    Ой извините не туда написал)).

  • G

    Анастасия добрый день
    Подскажите куда смотреть если в реальном времени события показывает, но в Поведение-События-Обзор все пусто

  • Иван

    Анастасия, вам на почту скрины скинуть?
    Просто я не нашёл как прикрепить файл к ответу.

    • Анастасия Тимошенко

      Иван, можете отправить на эту почту info@odesseo.com.ua

  • G

    Отвечу на свой вопрс сам, смотреть на дату отчета 🙂 спасибо

  • Андрей

    Анастасия, здравствуйте. Несколько дней бьюсь не могу добиться работоспособности этого скрипта. Не поможете?

    • Анастасия Тимошенко

      Здравствуйте! На каком этапе возникают проблемы?

  • Андрей

    Анастасия, по ходу все само нормализовалось — данные стали приходить 🙂
    Есть еще несколько попутных вопросов:
    1. Код аналитики нужно добавлять чтобы передавать обычные данные (демографию, отказы и проч) или достаточно тех 2х тегов что в описании выше?
    2. В теге «скроллинг Analytics» не понятно про “Не взаимодействие” поподробнее можно?

    • Анастасия Тимошенко

      Хорошая новость=) Что касается Ваших вопросов:
      1. Да, для отправки данных о посещениях сайта нужно обязательно установить код аналитики.
      2. Вкратце, если вы хотите, чтобы отправка события влияла на ваш показатель отказов, то необходимо установить значение “false” для этого параметра. В противном случае – устанавливайте значение “true”. Подробнее можете почитать тут https://support.google.com/analytics/answer/1033068?hl=ru#NonInteractionEvents Это называется «События без взаимодействия».

  • Алексей

    Анастасия, есть два вопроса:
    1. Как можно сделать, чтобы видеть график среднего времени просмотра всех страниц сайта? Типа того что есть в аналитиксе, но с правильным подсчётом как в вашем скрипте
    2. Отслеживать скроллинг не до конца страницы, а до определённого , например, на странице. Т.к. комментарии могут занимать в несколько раз больше места, чем сама статья, и получается что при скроллинге в 20% может на самом деле была прочитана вся статья.

  • Алексей

    *не напечаталось, имел ввиду скроллинг до опредлённого div id=comments на старнице

  • mitalkal

    новичок в аналитике и в gtm
    не понимаю насчёт условия активации gtm.dom и триггера scroll to — они пользовательские, как из создать, не подскажете?)

    • Анастасия Тимошенко

      Добрый день. Описание создания события «scroll to» есть в третьем пункте инструкции по внедрению. gtm.dom создается по аналогии.

  • mitalkal

    я о триггерах говорю,не совсем понятно для меня как условия активации им задаются, какие переменные использовать надо для этого и т.п….

  • Павел

    Добрый день Анастасия, все установил как в примерах но данные не собираются в GA (((

    • Анастасия Тимошенко

      Добрый день, Павел! В каких отчетах проверяете поступление данных? Все ли теги корректно срабатывают при тестировании в отладчике GTM?

  • arseny

    Спасибо. Со второй попытки все настроилось, данные пошли.

  • Александр

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

    • Анастасия Тимошенко

      Александр, спасибо!

  • Андрей

    ДОбрый день, то есть я могу внедрить ваш скрипт если у меня внедрен на сайте datalayer.push()? я правильно понял? или достаточно будет вашего скрипта и увижу результат в GA

    • Анастасия Тимошенко

      Добрый день, Андрей!

      Достаточно выполнить действия по инструкции из статьи, и данные начнут отображаться в GA. В дополнительных вызовов datalayer.push() нет необходимости.

  • Андрей

    И еще мне нужно это внедрять в GA или GTM автоматичски подхватит инфо

    • Анастасия Тимошенко

      Результат работы виден в GA без дополнительных настроек в GA.

  • Андрей

    событие gtm.dom как его создавать? это Просмотр страницы или Пользовательское событие ? спасибо за ответы

    • Анастасия Тимошенко

      Это пользовательское событие. Создается по аналогии с событием «scroll to» из третьего пункта.

      • Дмитрий

        Анастасия, здравствуйте! Все сделал по вашей инструкции, но возникли трудности: собирается статистика не более чем по 30% просмотров у каждого материала. То есть, например, у статьи было 30000 просмотров, а событий по этой статье отображается 10000. В чем может быть проблема?

  • Владимир

    Здравствуйте, Анастасия. Огромное спасибо за полезный материал. Подскажите, пожалуйста, как связать эти данные с Page Title? На нашем сайте url статей вида d.html?id=1234, неудобно смотреть.

    • Анастасия Тимошенко

      Добрый день, Владимир!
      Спасибо за добрые слова=)
      Попробуйте добавить переменную типа «Переменная JavaScript» http://prntscr.com/cg1308 и использовать ее вместо Page URL

      • Владимир

        Да это же просто восхитительно! Всё работает 🙂 Ещё раз огроменнейшее спасибище 🙂

        • Анастасия Тимошенко

          Пожалуйста=) Рада, что все вышло)

  • Александр

    Добрый день, Анастасия. Очень нужная вещь.
    Однако, так как я новичок в данном вопросе, а гугл выпустил новую версию GTM, у меня возникли сложности с пунктом: «В качестве условия активации тега указываем событие gtm.dom.» Думаю надо триггер настроить, но как именно не знаю. Помогите пожалуйста.
    И подумайте над обновлением статьи под актуальную версиюGTM))

    • Анастасия Тимошенко

      Добрый день, Александр!
      Спасибо! Нужно создать триггер – пользовательское событие, gtm.dom пишется в поле “Имя события” этого триггера.
      Удачи=)

  • Татьяна

    Добрый день, Анастасия, спасибо за вашу статью, уже несколько раз пользовалась вашим методом — все работает. Но вот настраиваю отслеживание скролллинга для одного сайта и не работает тег отправки события в GA. Можете посмотреть скриншоты и помочь разобраться в чем проблема?

  • Вячеслав

    Добрый день, Анастасия!
    Отчет по событиям в режиме реального времени — События (за последние 30 мин.)) — http://prnt.sc/d2zgqo
    Но в Поведение>>События>>Лучшие события>> http://prntscr.com/d2zjym

    В чем может быть проблема?
    Установлено расширение которое на даст отобразить данные по нашему событию?

    Спасибо!

  • Вячеслав

    Отбой=) Можно не публиковать предыдущий коммент.
    Заработало через час. Нетерпеж, понимаете ли))

  • Виктор

    GTM сильно изменился в интерфейсе и теперь сложно понять, что там и как нажимать. У Вас на скриншотах не так. В силу того, что не часто пользуюсь GTM, то не смог разобраться. (

  • Павел Звездин

    Анастасия, спасибо за статью, очень полезная для некоторых случаев, но не подскажете в чем принципиальное отличие — практическое — от карты скроллинга метрики (если задача определить слепые зоны), и как все-таки связать скроллинг с показателями отказов? конечно, в 1 очередь лендинги интересуют. 2 момента
    а) если задать события скролла как цели , какие цели посоветуете? б) для лендингов члышал о якорях и виртуальных страница — так не проще будет? у вас нет ничего по этой теме?х

  • Павел Звездин

    еще подумал про практическое применение — рассчитать время и место «всплывашек»?

  • Павел Звездин

    еще одно применение этих событий — ретаргетинг/ремаркетинг. может также посоветуете что-то по опыту, связанное со скроллингом (лендинга)?

  • Evgeniy

    Подскажите пожалуйста, как высчитать коэффициент, если например высота стать 3000 пикселей, а время среднее прочтения 3 минуты:

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

    На скриншоте 2 цифры, что какая обозначает (первая для мобильных?)

  • Елена

    Добрый день!
    Подскажите, пожалуйста, в новом интерфейсе для активации тега «Скроллинг» необходимо использовать триггер «Модель DOM готова»?
    Простите за детский вопрос, совсем недавно работаю с Таг Менеджером

  • Оля Косенко

    Спасибо огромное за такое чудесное решение!

    • Anastasiia Tymoshenko

      Оля, спасибо Вам за приятные слова=)

  • Денис

    Здравствуйте, Анастасия!
    Я новичок, но у меня получилось и все данные передаются в Analytics. Помогите с регуляркой. Хочу настроить две цели:
    1) заинтересованные посетители
    2) не заинтересованные посетители

    В 1 случае хочу отсеять регуляркой всех кто прокрутил экран от 40-100% и время на сайте больше 15 секунд, во 2 случае все кто прокрутил экран от 0-40% и время на сайте меньше 15 сек. Как по вашему это будет правильное разделение трафика по качеству для одностраничного сайта или может у вас будут другие рекомендации?

    Спасибо большое за помощь! 🙂

    • Anastasiia Tymoshenko

      Денис, добрый день!

      Для того, чтобы выделить пользователей, которые проскроллили не менее 40% и были на странице не менее 15 секунд, можно воспользоваться регуляркой следующего вида:

      Scrolling to (([4-9][0-9])|100)% and time on page [0-9][0-9]:[0-5][0-9]:(1[5-9]|[2-5][0-9])

      Если у вас есть желание лучше разобраться в регулярках, рекомендую ознакомиться еще с этой статьей http://odesseo.com.ua/regulyarnyie-vyirazheniya/

      А что касается правильности или неправильности такого подхода к анализу качества трафика, тут я не возьмусь утверждать что-либо, так как не знаю специфики вашего сайта.

      Удачи!=)

      • Денис

        Спасибо большое!

  • Elena K

    Анастасия, здравствуйте!
    Подскажите пжл. возможно ли с помощью этого скрипта получать данные такого плана:
    сколько времени пользователь находился на сайте по каждому поисковому запросу?
    Если для получения таких данных нужен другой скрипт, то можно ли вам заказать его написание и сколько это будет стоить?

  • Nikita Yevsey

    Анастасия, отличное решение!
    У меня два вопроса и одно предложение.

    Вопрос 1: вы сравнивали количество полученных событий и количество просмотров страниц? У меня есть подозрение, что beforeunload не будет срабатывать всегда. Вопрос в том, насколько велика погрешность.

    Вопрос 2: зачем включена поддержка функций для рекламодателей в настройках тега отправки события? Осталось по наследству или я чего-то не знаю? 🙂

    Предложение:
    На мой взгляд правильнее посылать два раздельных события — время и прокрутку.
    Это становится особенно важным, если сайт неодностраничный – тогда в Category записывать просто адрес страницы не лучшая идея – отчет может превратиться в кашу, перемешаются адреса страниц и другие события. Разумнее в Category записать, собственно, категорию/тип/название события. Например, вот так:
    https://uploads.disquscdn.com/images/95b7fafff272cf59aca86da40c92c4611082137c8bd02086edc47acc4117e4af.png
    Тогда все сложится иерархически наглядно.

    • Anastasiia Tymoshenko

      Рада, что Вам понравилось.

      1. Сравнивала. Лично по моему опыту — погрешность не более 15%. Обработчик, связанный с событием beforeunload выполняет действия при любой из попыток покинуть страницу: переход по ссылке, закрытие вкладки, закрытие окна браузера. Даже в системах редактирования документов это событие является стандартом для проверки, сохранил ли пользователь все свои данные и действительно ли собирается покинуть страницу. Поэтому, погрешность можно считать небольшой.

      2. Полагаю, меня вдохновила статья из справки Google Tag Manager. https://support.google.com/tagmanager/answer/6107124?hl=ru
      «Установите флажок Включить функции для рекламодателей в КМС, чтобы использовать в КМС такие функции, как демографические отчеты и отчеты по категориям интересов, ремаркетинг и интеграция с DoubleClick Campaign Manager. Чтобы данные были максимально точными, установите этот флажок для всех тегов Google Analytics.»

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

      • Nikita Yevsey

        1,2 — понятно.
        3 — Конечно, коммент скорее не для вас, а для тех, кто без большого опыта статью будет применять.

  • Sasha Kulepin

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

    • Anastasiia Tymoshenko

      Добрый день!

      Если вы хотите, чтобы отправка события влияла на это показатель, то в настройках тега отправки события в опции «Не взаимодействие» необходимо установить значение “false”. Я бы не рекомендовала делать это каждый раз, так как это сильно исказит ваш показатель отказов.

      • Sasha Kulepin

        Спасибо за ответ. Установил по вашей инструкции — посмотрим как сработает.
        Сейчас у нас и так половина статей демонстрируют искаженные параметры, так что лучше уж с этим 🙂

  • Pavel Svyados

    Добрый день, Анастасия! Внедрил скрипт по указанному в статье. Через сутки на сайте (информационный портал) bounce rate рухнул с 80% до 1.5%. Подскажите, что не так? Невзаимодействие ставил и True и False — результат одинаковый.

    • Anastasiia Tymoshenko

      Добрый день, Павел!

      Для того, чтобы отправка событий не влияла на показатель отказов, в опции «Не взаимодействие» необходимо установить значение «true». Если же это не помогло, значит проблема в чем-то другом. В таком случае, попробуйте с помощью отладчика GTM и/или Google Tag Assistant Recordings проверить, какие теги загружаются и что отправляется в аналитику. https://support.google.com/analytics/answer/6277302?hl=ru

  • Алексей Экштейн

    Здравствуйте, Анастасия! У меня не отправляются данные в Analytics.
    Сделал всё по вашей инструкции.
    Вот тег http://prntscr.com/ffyy2k
    Вот триггер http://prntscr.com/ffyyam
    Вот тег со скриптом (он активируется сразу норм).
    Я так понимаю, что проверяя через отладчик GTM, тег «Скроллинг Analytics» должен активироваться по мере прокрутки страницы. У меня не активируется.
    Подскажите, пжл, в чём проблема? Заранее спасибо!

    • Anastasiia Tymoshenko

      Добрый день, Алексей!
      Тег выглядит корректно. В отладчике gtm сложно успеть заметить загрузку тега. Проверьте отчет «В режиме реального времени», только вкладку «События за последние 30 мин.» http://prntscr.com/fiukds

  • Иван Глушак

    Добрый день! У меня такой вопрос. Вот эти тайминги, они уникальные или исходят один из другого, подобно воронке?

    • Anastasiia Tymoshenko

      Добрый день, Иван.
      Тайминги уникальные.

  • Anton_Kolomiets

    Анастасия, спасибо за мануал!
    Возник 1 вопрос: При отслеживании скролинга или времени на странице в самый маленький результат (скролл до 20% или время до 30 секунд) не попадают те юзеры, которые попали в категорию повыше (время от 1 мин до 2-ух или другую)?

    • Anastasiia Tymoshenko

      Антон, спасибо вам за положительную оценку!
      Если один и тот же пользователь смотрел одну страницу до 30 секунд, а другую — от 1 минуты, то это взаимодействие будет присутствовать в обеих категориях.

      • Anton Kolomiets

        Имелось ввиду в разрезе одной страницы. По данным с аналитики видно, что вроде все ок.

        • Anastasiia Tymoshenko

          Поняла, да все верно, не попадают.

  • Рабочий Аккаунт

    Здравствуйте Анастасия. Хороший инструмент Вы сделали. Но есть пара вопросов.

    1. Насколько точно определяется реальное время пребывание пользователя на странице — ведь он мог открыть сайт а сам пойти на соседнюю вкладку…будет ли в это время тикать таймер и считать как будто человек сидит у нас на сайте?

    2. Глубина скроллинга это конечно круто, но есть же люди которые быстро проскроллили 100 % за пару секунд и ушли…они типа очень заинтересованные а по факту отказные. Это работает так как я описал? Или по другому?

    • Anastasiia Tymoshenko

      Здравствуйте!
      Спасибо большое=)

      По вопросам:
      1. Да, будет.
      2. Во второй части статьи «Анализируем своих читателей» я как раз рассказываю о своем подходе к анализу связки показателя скроллинга и времени. Посмотрите, возможно, найдете такой метод полезным для себя.

      • Рабочий Аккаунт

        Ага, то есть таким методом Вы как раз решаете те вопросы которые меня беспокоят, учитывая сразу 2 эти вещи, думаю всё равно есть погрешности, так как он мог просидеть на левой вкалдке 5 минут а потом зайти к нам и проскроллить до 100% за 5 секунд, вроде как тоже отказной но в статистике будет хорошим))

  • Sergey Petrov

    Отличный скрипт и шикарная визуализация в правом верхнем углу.
    Пытаюсь воспользоваться, но, к сожалению, скрипт подгружается, но в режиме отладки не видно, чтобы в DataLayer что-то писалось при прокрутке, и отправки события при закрытии страницы не происходит.
    Не могу сообразить, что упускаю…

    https://uploads.disquscdn.com/images/3a05d09162640567d91afda3aa52aefd1e65469a4b29e35a847aeeb8d7a88ec9.png https://uploads.disquscdn.com/images/fde15e8ab062a91a16d4d296f48975998b5d7502468906beec58f1d28cd96abb.png https://uploads.disquscdn.com/images/af773b11a473d4ae8da28c004f4e6715e6dae6d003ead3815d488bc732d1999a.png

    • Anastasiia Tymoshenko

      Спасибо=) И рада, что удалось разобраться!

  • Sergey Petrov

    Отбой. Всё дело оказалось в jQuery-библиотеке, которую дизайнер сайта взял где-то не на офиц.сайте, и в ней было несколько закосяченных символов)

  • alunet

    Анастасия, благодарю за отличную статью!
    Можете еще, пожалуйста, подробнее рассказать как вы измеряете высоту страницы и расчитывайте коэффициент?
    Видел вы писали, что можно измерить через jQuery, но не совсем понятно как это делается.
    Если в консоли браузера прописать:
    alert(document.documentElement.scrollHeight)
    это будет оно?

    И по формуле расчета, ниже был комментарий, например высота 3000 и время 3 минуты, т.е. по формуле будет так: 3000 / 180 = 16,6 ?

    • Anastasiia Tymoshenko

      Спасибо за положительную оценку=)

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

  • Сергей Брит

    Отличная статья, спасибо Анастасия! Идеально было бы показать на видео все это. А то для таких как я до конца все не понятно. Я в самом начале изучения ГА. И не до конца все понимаю. Мало того у меня не работает((( я даже не могу объяснить что и как у меня не получается. Я просто делал исходя из Вашей инструкции и учитывая разницу в интерфейсе новой версии ГА. Признаю, делал бездумно, и на результат своих действий не надеялся. Вот уже второй день ковыряюсь и никак не могу понять что я делаю не так. Кстати, на Вашу статью ссылаються и другие специалисты

    • Anastasiia Tymoshenko

      Сергей, спасибо за приятные слова=)
      Пришлите свой сайт и подробное описание своих действий со скриншотами на почту info@odesseo.com.ua Я постараюсь помочь.

  • Вадим Шевченко

    Отправил на почту вопрос по поводу данной темы со скринами. Жду ответ)

    • Anastasiia Tymoshenko

      Вадим, ответила на Вашу почту.

  • Aleksandr Zabolotnyi

    спасибо

  • KingStakh

    Спасибо, все работает. только не могу разобраться как посмотреть данные по конкретной странице/статье

    • Anastasiia Tymoshenko

      Я рада, что все вышло=)
      Чтобы посмотреть данные по конкретной странице, в отчете «Лучшие события» http://prntscr.com/gpxiqk нужно выбрать интересующую Вас статью.

      • KingStakh

        Уже нашел, спасибо за ответ

  • Inna

    Добрый день, Анастасия. Спасибо за полезный скрипт. очень нужная наработка, но почему-то не запускается http://myprintscreen.com/s/ntpv/8fabb5be9e. Не отрабатывает тег «пользовательский HTML» .
    и трудности с отчетом — данные не отображаются в Events Google Analytics.Не подскажете в чем причина?

    • Anastasiia Tymoshenko

      Инна, добрый день!

      Подскажите, пожалуйста, адрес сайта, на котором выполняете настройку. Без сайта сложно диагностировать, что может быть не так.

      • Inna

        Анастасия, добрый день!
        Вчера ответила Вам на почту info@odesseo.com.ua. И в чате, но, к сожаление, вижу , что в чате мое сообщение в режиме «ожидания»

      • Inna

        Анастасия, добрый день! semalt. com (отписала на почту odesseo info)

      • Inna

        Анастасия, добрый день! 2 дня разбиралась. вроде данные передаются и группируются. теперь проблема с категориями событий. не вижу путь страниц, на которых происходили действия http://myprintscreen.com/s/nv9r/b20d24c07f

  • Inna

    Анастасия, добрый день! Подскажите, если я хочу немного по разному группировать данные для некоторых страниц своего сайта, как я могу это в аналитикс настроить. или же надо подключать для отдельных страниц отдельные теги? заранее спасибо!

    • Anastasiia Tymoshenko

      Инна, добрый день!
      Я думаю, для решения вашей задачи могут быть полезны группы контента. Посмотрите подробнее в справке https://support.google.com/analytics/answer/2853423?hl=ru

  • Twilight Life

    Отличный скрипт, спасибо! Единственно с одной не понятной вещью столкнулся, в GA периодически отправлляются события с пустым значением Action https://i.imgur.com/lmtSN3P.png и Label
    https://i.imgur.com/eeybdD2.png (Label значений пустых меньше чем Action).
    т.е. получается скрипт отрабатывает, но значение этим переменным не присваиваются. Пробывал добавлять lookup таблицу для отлова пустых значений https://i.imgur.com/zMrGTIE.png (для переменных percent_of_scrolling_interval и time_on_page_interval), но не помогло (пустых значений выходит нет?). Можете пожалуйста прокомментировать с чем это может быть связано и как это пофиксить (может сталкивались)

    • Анастасия Тимошенко

      Добрый день! Спасибо за положительную оценку!
      К сожалению, не помогу по Вашему вопросу. У меня такой проблемы не возникало.

      • Twilight Life

        Решил) Добавил lookup таблицу undefined значение

  • Оля

    К сожалению скрипт не доступен, пишет файл не найден

    • Анастасия Тимошенко

      Оля, спасибо, что обратили внимание на это.
      Сейчас уже все работает, пользуйтесь!

  • Артур

    Классный скрипт и решение! Спасибо!

    Есть ли решение, которое сможет отобразить среднее значение скроллинга?

    Например, для сайта средняя глубина скроллинга 30% (или 35%, 40% и тп) или средняя глубина скроллинга страницы — 50%

  • Олег

    Анастасия, спасибо за статью
    Но, так и не получилось «завести» ваш скрипт.
    По тег ассистанту видно, что не срабатывает передача тега из пункта 4, где триггер «scroll to»… видимо, не срабатывает сам триггер. Хотя все сделано по инструкции.
    Может это быть связано с тем, что в тег менеджере есть встроенный триггер «глубина прокрутки»
    Может можно как-то актуализировать статью под текущий интерфейс тег менеджера?

    • Анастасия Тимошенко

      Олег, добрый день.
      Учитывая, что событие отправляется при перезагрузке страницы, возможно, что вы просто не успеваете его увидеть в отладчике? Проверяли отчет реального времени?
      Наличие встроенного триггера не должно никак мешать в данном случае.
      Что касается актуализации статьи, посмотрите этот материал: https://odesseo.com.ua/otslezhivanie-glubiny-skrollinga/
      Тут представлен обзор встроенных возможностей отслеживания скроллинга GTM.

  • Петр

    Добрый день!
    Анастасия, столкнулся с проблемой:
    на одном сайте (WP) при переходе на другую страницу в отладчике не срабатывает событие «Scroll to»
    В чем может быть причина ? на других сайтах (тоже WP) такой проблемы нету
    Спасибо!

    • Анастасия

      Добрый день, Пётр!
      Подскажите, пользовательский тег отслеживания скроллинга в отладчике загружается корректно?

  • Георгий

    Интересный ход) особенно для начинающих. Но все же для более детального и предметного анализа считаю стоит использовать специализированный софт

    • Анастасия

      Спасибо!

  • Георгий

    Сам на самом деле занимаюсь юзабилити тестированием, очень интересная форма работы — менее «техническая» по сравнению с СЕО, СММ. По картам кликов могу подсказать вам то, с чем приходилось работать — Hotjar, Plerdy, Crazzy Egg, знаю еще Mouseflow или что-то такое. Было бы очень интересно увидеть в вас статью на эту тему.

  • Александр

    Здравствуйте.
    При добавлении переменно по скролингу все хорошо. Но когда я создаю триггер и пытаюсь отправить его на сайт у меня вылизает ошибка :
    Ошибка компилятора JavaScript

    Ошибка в строке 1 (символ 2): Parse error. primary expression expected

    Как быть? может я что-то не включил в GTM, что он ругается.
    Я проверял код (программист проверил) — код рабочий.

    • Анастасия

      Александр, добрый день!
      Опишите подробно, как именно создаете триггер. Можно прикрепить скриншоты ваших шагов.

  • Андрей

    Добрый день, @Анастасия.

    А как такую настройку сделать для amp версии сайта ? Для amp версии сайта используется другой тип контейнера.

  • Николай

    Здравствуйте!
    Спасибо за код)

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

    Можете ли помочь с этим?

    • Анастасия

      Добрый день, Николай! Вы можете в скрипте вместо моего события beforeunload использовать то, что нужно вам, например, событие успешной отправки формы.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *