Как Отслеживать Фрагменты URL-адреса Страниц (хеша) через Google Tag Manager

Фрагменты URL-адреса это строка символов, следующих после знака решетки (#) в URL-адресе. Как правило, они используются для якорных ссылок, где ссылка ведет на ту же страницу, переход браузера на некоторые позиции на странице. Также они являются инструментом выбора для одностраничников, где контент динамически изминяется  без перезагрузки страницы.

В Google Analytics, фрагмент строки не отслеживаются по умолчанию, и URL-адреса, которые передаются в GA с вашим Pageview лишены этих фрагментов. С помощью диспетчера тегов Google, Это может быть исправлено с изменением истории триггера и некоторой магии переменных)).

Отслеживание фрагментов URL-адреса с Pageview

Когда фрагмент URL страницы меняется, это не вызывает перезагрузку. Это проблематично для отслеживания, как вы, наверное, установили тег Google Analytics на просмотр страницы, и этот триггер срабатывает только один раз за загрузку страницы.

Однако, когда фрагмент URL-Адрес страницы изменяется, интересно то, что происходит за кулисами: событие в историю браузера отправляется, и за это можно зацепиться. Диспетчер тегов Google обеспечивает идеальный способ, чтобы сделать это с изменением истории триггера. Он активируется, когда отражает передачу события изменения фрагмента URL-адреса.

Итак, приступим.

  1. Переменная

    Во-первых, проверьте, что необходимые переменные включены.
    track url fragments as pageviews 1
    New History Fragment хранит новый фрагмент URL-адреса, когда он меняется. History Source позволит нам указать, что мы будем проверять изменения в истории.
    Далее, вам потребуется пользовательскую переменную JavaScript, которая будет производить новый, сформированный URI, который затем можно отправить в Google Analytics как путь к странице фрагмент URL-адреса. Итак, создаем новую пользовательскую переменную в JS, имя его {{path with fragment}}, и добавьте следующий код в:

    Этот простой, код проверяет функцию JavaScript во-первых, если событие, которое вызывает эта переменная изменила историю. Если оно было и URL-адрес фрагмента не является пустым, следующая вещь, которую он делает, это возвращает текущий путь страницы (например, /Home/) и связывает новый URL-адрес фрагмента в строку, разделяя два символа ‘ # ’ (например, /Home/#свяжитесь с нами). Если события не изменили историю, то переменная возвращает значение Undefined, чтобы убедиться, что путь по умолчанию отправляется с просмотром.
    Почему мы посылаем путь к странице с символа ‘#’ вместе, потому что мы хотим, чтобы прямая ссылка “визит на этой странице” была в отчетах Google Analytics.

  2. Триггер 

    Создайте новый триггер. Событие — History Fragment Change
    Выберите History Change как событие, и установить следующее условие в активации в разделе триггера:
    history-change-trigger
    Мы используем popstate как условие, потому что мы не хотим, чтобы этот триггер сработал в других случаях.

  3. Создание тега

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

    Сохраните тег и протестируйте в режиме отладки.

    Удачного использования)

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

4 комментария

  • Спасибо за статью, потестирую. А как можно в GTM сделать так чтобы тег не активировался на страницах с хешем? У меня стоит Google Optimize и не хочу чтобы он на таких страницах включался.

  • Добрый день.

    Возник такой вопрос — возможно подскажет. А если заход будет сразу на страницу такого вида — http://site.com/#/work/?page=home она попадет в статистику или нет? Вроде gtm.historyChange не будет вообще, а {{New History Fragment}} будет тогда undefined.

Добавить комментарий

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