Отслеживание в Google Analytics нечитабельных URL-адресов с помощью виртуальных просмотров страниц

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

Динамические URL-адреса работают, используя серверные языки сценариев, такие как CGI-PERL, РНР, ASP или Python, которые извлекают неформатированную информацию в шаблон общего назначения. Обычно параметры URL-адреса определяют контент страницы. О применении динамических URL-адресов можно судить по именам страниц. Статические URL-адреса содержат имена файлов, которые имеют окончания .htm или .html. Динамические же адреса содержат имена с окончаниями .cgi, .рl, .php, .asp или .ру. Это не означает, что все имена страниц, оканчивающиеся на .php, генерируются динамически. Однако если URL-адреса веб-сайтов содержат также вопросительный знак (?), за которым следуют параметры, такие как пары имя/значение, скорее всего, они являются динамическими, как показано в следующих трех примерах.

  • Пример 1 — статический URL-адрес: http://www.mysite.com/local/productl01.html
  • Пример 2 — динамический URL-адрес с одним параметром: http://www.mysite.com/catalogue/product.php?sku=123
  • Пример 3 — динамический URL-адрес с тремя параметрами: http://www.mysite.com/catalogue/product.php?sku=148&lang=en&sect=suede

В примерах динамических URL-адресов параметры запроса sku, lang и sect определяют контент страницы внутри проектного шаблона. Некоторые веб-серверы для определения параметров динамических URL-адресов вместо символа ? могут использовать другие символы, например, #.

Структура URL-адреса с точки зрения Google Analytics показана на рис. 7.1. На нем URL-адрес разбит на следующие составные части:

  • Протокол: http://
  • Имя хоста: www.mуsite.com
  • Каталог: /catalogue
  • Имя файла: product.php
  • Параметры запроса: sku=123&lang=en&sect=leather
  • Универсальный идентификатор ресурса (URI): /product.php?sku=123&lang=en&sect=leather
Рис. 7.1. Составные части URL-адреса

Рис. 7.1. Составные части URL-адреса

В рассмотренном сценарии элементы запроса, используемые в подавляющем большинстве случаев, выглядят совершенно бессмысленными с точки зрения человека. Они присутствуют для обмена данными с базой данных. Даже если URL-адреса являются статическими, они все равно могут выглядеть совершенно бессмысленно, как показано в приведенном ранее примере 1. Для облегчения задачи тех, кто использует отчеты, желательно по возможности применять удобные для читателя URL-адреса. Фактически это может в огромной степени повысить привлекательность данных для аналитика, придавая отчетам четкость и облегчая их использование.

Google Analytics может генерировать дружественные по отношению к читателю URL-адреса, заменяя элементы запросов и бессмысленные пути и имена файлов названиями продуктов, типа игры на xbox 360, или описаниями и отображая их в отчетах в виде виртуальных URL-адресов — т.е., виртуальных просмотров страниц.

По умолчанию Google Analytics отслеживает просмотренные страницы, вызывая JavaScript-подпрограмму _trackPageview в коде GATC. Как уже было описано, стандартный код GATC вызывает _trackPageview без каких-либо дополнительных значений. То есть Google Analytics записывает URI непосредственно из адресной строки браузера и отображает его в отчетах как просмотр страницы. Это поведение можно изменить, изменяя вызов _trackPageview для создания виртуальных просмотров страниц. Например, URL-адрес, приведенный на рис. 7.1, мог бы быть представлен следующим образом:

1
2
3
4
5
6
_gaq.push(['_trackPageview'^
'/catalogue/products/english/leather/brown tassel shoe']);
_gaq.push(['_trackPageview',
'/catalogue/products/english/leather/blue tassel shoe']);
_gaq.push(['_trackPageview' ,
'/catalogue/products/english/suede/high heeled boot']);

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

Для построения более понятных виртуальньгх URL-адресов можно вручную изменять дополнительный текст для функции _trackPageview на каждой странице или же использовать переменные, присутствующие в данной веб-среде, такой как товарная корзина или система управления контентом. Хороший веб-мастер или веб-разработчик сможет быстро решить эту задачу. В самом крайнем случае, просто используя информацию, уже доступную в примере, представленном на рис. 7.1, можно было бы получить следующее:

1
_gaq.push(['_trackPageview', '/catalogue/products/eng/leather/prod code 123']);

Конечно, эта строка не является законченной статьей, но она значительно более читабельна, чем исходная. Как уже было сказано, эту методику следует применять для замены только тех URL-адресов, которые необходимы. Кроме того, следует обсудить все последствия со своим веб-мастером. Например, не нужно, да и нежелательно, изменять следующую строку:

1
http://www.mysite.com/search?q=shoes

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

1
http://www.mysite.com/search?q=shoes&lang=en&sect=leather

Его можно было бы представить в виде следующего виртуального URL-адреса:

1
_gaq.push(['_trackPageview', '/products/епд/leather/?q=shoes');

В этом примере запрос q=shoes снова записан в виртуальный просмотр страницы, что позволяет просматривать отчеты поиска по сайту обычным образом. Как и во всех URL-адресах, если переменные запроса требуется записать в виртуальные просмотры страниц, нужно использовать стандартное соглашение — вопросительный знак (?) в начале определения переменной и символ амперсанда (&) для разделения пар имя/значение.

Одно из следствий использования виртуальных просмотров — разрушение отчетов внутристраничной аналитики, поскольку страница не существует в реальности. Если эта функциональная возможность важна не заменяйте свои URL-адреса. Однако, скорее всего, выгода от повышения читабельности сложных URL-адресов, представленных в отчетах в виде виртуальных просмотров страниц, значительно превысит утрату этой возможности/

Top