Как в Universal Analytics фиксировать знак # в URL

Google Analytics
Бесплатная версия онлайн курса по Google Tag Manager

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

Если вы сталкивались с задачей по отображению знака # в отчетах Universal Analytics, то наверное обратили внимание, что данные расположенные справа от знака и он сам в отчетах не отображаются. Как решить подобную задачу?

Без дополнительной настройки в Universal Analytics, все что лежит правее знака # и он сам “обрезается”. Например, при переходе по URL вида:

в отчетах отображается следующий URL:

Пример URL без настройки

Пример URL без настройки

Ниже я приведу несколько способов решения этой проблемы.

Небольшое отступление для тех, кто еще использует классическую версию Google Analytics. Вам необходимо в код отслеживания добавить всего одну строчку:

Теперь вернемся к Universal Analytics и рассмотрим два варианта решения:

  1. если у вас используется Google Tag Manager;
  2. если вы используете код отслеживания.

Первый вариант заключается в получении значения URL справа от знака # и вызова виртуального просмотра страницы. Сначала с помощью макроса получаем нужное значение из URL:

Настройки макроса

Настройки макроса

Необходимо указать имя макроса, тип выбрать как URL, а в качестве Типа компонента выбрать Фрагмент. Для строки вида:

макрос вернет значение – 123.

Теперь у нас есть значение после знака # и нам нужно передать данные о нем в Universal Analytics.

Перейдем к настройкам тега Universal Analytics позволяющим указать дополнительные параметры для передачи нужного нам формата URL страницы:

Настройка тега Universal Analytics

Настройка тега Universal Analytics

Обратите внимание, что сначала указывается путь к странице, который должен начинаться со знака слеш – /, затем идет знак #, за которым ранее созданный макрос {{m}} содержащий значение из URL.

В принципе настройка завершена, но есть несколько нюансов:

  1. чтобы не создавать для каждой страницы отдельный тег, где нужно указать /путь к странице, неплохо было бы этот процесс автоматизировать и реализовать в одном теге;
  2. если у нас в URL не содержится фрагмента со знаком #, то мы все равно получим в отчете адрес страницы с # на конце, но без значения после, что не есть хорошо.

Итак, устраним эти моменты. Создадим макрос, который вернет URL текущей страницы без доменного имени сайта:

Макрос для получения URL страницы

Макрос для получения URL страницы

Теперь можно исправить настройки тега Universal Analytics:

Настройки виртуального просмотра

Настройки виртуального просмотра

Обратите внимание, что знак / в начале строки не нужен для такой реализации. Смотрим что будет теперь в Google Analytics:

Результат с # в URL страницы

Результат с # в URL страницы

Чтобы у вас настроенный тег активировался только тогда, когда есть данные в URL, которые необходимо связать с просмотром страницы, используйте для него правило:

Правило активации

Правило активации

Для случаев, когда в URL нет знака # вызывайте тег Universal Analytics без дополнительных настроек используя соответствующее правило по аналогии с приведенным выше.

Второй вариант решения задачи, без Google Tag Manager, заключается в получении нужного фрагмента строки с помощью JavaScript, JQuery или любого другого языка и передачи данных о нем с помощью стандартных средств Universal Analytics. Кратко опишу решение.

Для парсинга (разбора) URL существует несколько различных библиотек, я при подготовке материала использовал эту jsurl. Подключаем ее ОБЯЗАТЕЛЬНО ДО вызова кода Universal Analyics и получаем значение после знака #:

 Теперь зная его, можно передать сведения в Google Analytics с помощью следующего вызова:

Обратите внимание на среднюю строку.

Осталось решить нюансы описанные выше с автоматической подстановкой адреса страницы и передач только если в URL есть знак #. Это не сложно и пусть будет вам домашним заданием.

Автор блога: Иванов Иван, практикующий веб-аналитик. Специалист по внедреннию Google Analytics и Яндекс Метрики. Занимаюсь разработкой решений для формирования данных и отчетов по сквозной аналитике. Автор обучающего курса по Google Tag Manager, преподаватель в Нетологии
Еженедельная рассылка кейсов!
Обсуждение
  1. Максим
    18.07.2014 at 11:32

    Как себя будет вести данная настройка, если URL будет иметь вид
    example.com/#faq#

    • Иван
      18.07.2014 at 11:58

      @Максим, не знаю. Мое мнение, что не корректно использовать два знака # в URL

  2. Виктория
    29.07.2014 at 08:58

    = настроила по первому методу для Universal Analytics,
    но в итоге у меня отображается только /# в гугл
    а части, которая по умолчанию не отслеживается, ее нету.
    настраивала так:
    1. Создала тег для Universal Analytics
    В правилах активации исключила урл содержащий #
    2. Создала макросы n и m
    3. Создала тег для отслеживания хешированных страниц – настроила правило активации, добавила путь к домену, как описано у вас

    В итоге толку нет, все равно возвращает пустое значение у домена, только то, что статично задала, сам хеш
    Напишите подробнее зачем в классическом GA счетчике добавлять строку _gaq.push(['_setAllowAnchor', true]);
    и как она реализована в Universal версии, ничего не нужно добавлять в счетчик Universal Analytics что бы он смог увидеть хешированные части страниц, как для классической версии

    • Иван
      04.08.2014 at 18:05

      @Виктория, сложно ответить на подобный вопрос не видя сайта и тех данных, с которыми GTM работает

    • Леонид
      08.08.2014 at 15:44

      @Виктория, созданные макросы и правила активации нужно размещать не в отдельном теге UA, а в основном. По крайней мере у меня заработало именно так.

  3. Ксения
    08.08.2014 at 12:20

    Иван, а как обстоит дело с отслеживанием хешей через GTM на страницах, где не происходит новая загрузка, к примеру, в случае переходов по вкладкам прибавляются хеши с разными значениями?

    Какие есть страницы:
    - обычные;
    - с хешами ;
    - страница обычная, но при клике по вкладке а ней добавляется хеш.

    Как я сейчас делаю:
    теги GA и UA на обычных страницах работает (правило – нет хеша)
    теги GA hash и UA hash работает на страницах с хешами (правило на хеш)
    теги GA hash и UA hash работают на вкладках (правило на хеш и gtm.historyChange)

    Проблема в том, что при отладке на страницах с вкладками (где есть хеш) отрабатывает и GA, и GA hash. Один не видит hash, другой видит gtm.historyChange и хеш.

    А на страницах просто с хешем GA hash отрабатывает 2 раза, т.к. сработали оба правила(есть просто хеш И есть хеш с изменением history)

    Итог:
    нужно, чтобы на обычных срабатывал просто GA, на стр. с хешами и на стр, где хеши появляются без загрузки стр. GA hash.
    Никак не получается, уже версий 5 разных создала.

    • Иван
      09.08.2014 at 11:54

      @Ксения, добавьте во второй пример с хешами без истории условие, что история не изменятся. Т.е. в третьем Вы проверяете наличие или изменение gtm.historyChange, а во тором сделайте обратное условие с приставкой НЕ.

      • Гузель
        15.05.2015 at 19:29

        Иван, подскажите, пожалуйста, как реализовать фиксацию хеша в url, если хеш проставляется при переходе по вкладкам (при этом при переходе по вкладкам подгружается только содержимое самой вкладки без загрузки всей страницы). Добавляю gtm.historyChange , UA без хеша его видит, UA c хешем то видит то не видит ( не понимаю в чем проблема), но даже когда видит все равно не срабатывает. не понимаю что не так. Подскажите, плиз, как в принципе алгоритм на таких страницах? Может я делаю что-то не так все-таки.

      • Ответ автора
        16.05.2015 at 11:29

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

    • Гузель
      15.05.2015 at 19:01

      Ксения, подскажите, пожалуйста как у вас работает UA hash на вкладках? Что-то у меня не срабатывает UA hash на вкладках, совсем не видит хеш. Как вы настраивали gtm.historyChange ? Может у меня конкретно в этом проблема…

  4. Леонид
    08.08.2014 at 15:43

    @Виктория, созданные макросы и правила активации нужно размещать не в отдельном теге UA, а в основном. По крайней мере у меня заработало именно так.

  5. !!!!!
    11.08.2014 at 14:34

    Подскажите как передать название страницы корректно в GA, если использовать gtm.historyChange
    урл приходит – а название некорректное, не видит.

    • Иван
      13.08.2014 at 00:06

      Попробуйте из тега TITLE в макрос подтянуть

      • !!!!!
        13.08.2014 at 14:08

        function() {
        var u = {{element}};
        return u.ownerDocument.title;
        }
        вот такой макрос по умолчанию
        но название приходит старое – так как обновления страницы не было
        событие gtm.historyChange
        как переписать макрос для history new title не понимаю, а разработчики GTM такой макрос по умолчанию не сделали, а могли бы

      • Иван
        10.09.2014 at 13:53

        Из истории получите URL новой страницы, создайте макрос типа “Таблица сопоставления” и в нем от значения URL Новой страницы присваивайте значение макросу, который содержит Title страницы

  6. Мария
    16.03.2015 at 11:59

    Добрый день.
    На сайте есть страницы по типу /#insurance
    Мы размещаем код Google Universal не через Tag manager. я поняла, что нам нужно добавить строчку ga(‘set’, ‘page’, ‘/my-page#’ + u.hash );

    но при этом не понятно, где относительно скрипта должна размещаться строка var u = new Url;?

    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
    ga('create', 'UA-ХХХХХХХХ-Х', 'auto');
    ga('set', 'page', '/my-page#' + u.hash );
    ga('send', 'pageview');

    • Ответ автора
      16.03.2015 at 13:19

      Мария, определение переменной должно происходить до ее использования. В Вашем случае до кода Universal Analytics

  7. Мария
    16.03.2015 at 15:30

    Иван, а как именно мы должны прописать код, если у нас URL в части случаев формируются следующим образом:

    site.domen.ru/#razdel1
    site.domen.ru/#razdel2
    site.domen.ru/#razdel3
    и т.д. ?
    а другая часть:
    site.domen.ru/page1?g=g7y3t98054o
    site.domen.ru/page2?g=…..
    и т.д.
    т.е. у нас по-разному формируются uRL

    Правильно ли нам будет использовать ваш второй пример:
    ga(‘create’, ‘UA-XXXX-Y’, ‘auto’);
    ga(‘set’, ‘page’, ‘/#’ + u.hash );
    ga(‘send’, ‘pageview’);
    ?

    и правильно ли сейчас сформирован код?

    И каким образом в нашем случае можно решить нюанс передачи данных только в случае, если в URL есть знак # ?

    • Ответ автора
      16.03.2015 at 19:21

      Мария, не видя сайта и не зная логику его работы можно гадать очень долго. Правильный или нет код нужно смотреть после выяснения описанного ранее, а фиксацию только если есть знак # Вы можете сделать с помощью конструкции JavaScript if(){}

  8. Serg
    08.06.2015 at 18:47

    А где это найти?

    “Перейдем к настройкам тега Universal Analytics позволяющим указать дополнительные параметры для передачи нужного нам формата URL страницы:”

    Это настраивается в UA или в GTM? У меня версия 2.0

    • Ответ автора
      09.06.2015 at 23:58

      Это в настройках тега типа Google Analytics в Google Tag Manager

  9. Мария
    01.10.2015 at 15:28

    Иван, добрый день. МЫ установили на сайте GTM 2.0. Перед нами стоит задача собирать статистику по страницам у которых в адресе есть # (хэш). Пример страницы http://www.site.com/#main
    Каким образом это можно настроить в GTM 2.0 ?
    Спасибо.

    • Ответ автора
      07.10.2015 at 11:41

      Мария, все аналогично настраивается в Google Tag Manager второй версии, лишь немного отличается интерфейс

  10. Мария
    09.12.2015 at 13:56

    Иван, добрый день!
    Попробовала реализовать указанную настройку, но данные по страницам не отправляются в GU.
    Применим ли способ к страницами по типу http://www.site.com/#/for/state ?

    • Ответ автора
      12.12.2015 at 23:36

      Какое значение принимает макрос {{Page Path}}? Вероятно у Вас не правильно заданы настройки дополнительных полей в теге Google Analytics

Ваш комментарий
Выберите рубрику
Google Analytics (69)
Google Tag Manager (57)
Яндекс Метрика (8)
Обзоры (3)
Power BI (3)
Яндекс Директ (2)
ClickHouse (1)
Последние публикации
Последние комментарии
mode_edit