Существует масса приемов для работы с Google Analytics, которые значительно облегчают и ускоряют работу с отчетами, а также настройку самой системы. Чтобы начать использовать такие приемы, как правило, приходится некоторое время почитать документацию на просторах Интернета или посты в тематических блогах. Однако потраченное время с лихвой окупается возрастающей эффективностью работы с данными. Одним из таких приемов, рекомендуемых к обязательному обучению, является использование регулярных выражений.
Регулярные выражения — крайне полезный инструмент, который можно использовать в Google Analytics для фильтрации данных, создания сегментов с расширенными настройками, задания целей. Не будем в данной статье заострять внимание на теоретической базе — при необходимости поисковики выдадут много полезной информации в ответ на запросы «регулярные выражения», «regexp», «регулярные выражения синтаксис». Давайте сегодня поговорим лишь о практической стороне их использования и рассмотрим 5 реальных примеров использования регулярных выражений при работе с данными в Google Analytics.
Допустим, у вас есть интернет-магазин, который называется «goodshop.ru». Посредством Google Analytics вы хотели бы отделить поисковый трафик по запросам, не содержащим названия вашего магазина, от брендового поискового трафика. Отслеживание динамики изменений небрендированного трафика — один из способов оценки эффективности мер по SEO-оптимизации сайта. Для решения данной задачи можно создать в Google Analytics персонализированный отчет с назначенным фильтром, который будет отсеивать брендовые запросы. Всевозможных вариантов написания названия вашего магазина может быть очень много (не забудьте про опечатки и неверную раскладку клавиатуры). Использование регулярного выражения избавит от необходимости плодить поля фильтра для каждого из вариантов.
goodshop|гудшоп|good shop|гуд шоп|good-shop|пщщвырщз
Используемые спецсимволы:
| - символ действует по принципу логического оператора ИЛИ
Формируя данное регулярное выражение, мы просто перечисляем все основные возможные варианты запросов, относящихся к названию вашего магазина, для исключения их из отчета. И не забудьте установить тип соответствия на «Регулярное выражение» при настройках фильтра.
Порой при изучении статистики по взаимодействию посетителей с содержанием сайта необходимо выделить определённую группу страниц для проведения анализа. Например, сравнить по показателям вовлечения страницы из определенного раздела каталога. Пусть у нас есть сайт по продаже различных электронных гаджетов. На сайте есть раздел по мобильным телефонам с трехуровневой иерархией:
/catalog/mobile/
/catalog/mobile/apple
/catalog/mobile/samsung
/catalog/mobile/htc
/catalog/mobile/apple/iphone5
/catalog/mobile/samsung/galaxys3
/catalog/mobile/htc/desirev
Нам необходимо в отчете по содержанию Google Analytics выделить только страницы карточек товаров.
/catalog/mobile/.+/.+
Используемые спец.символы:
. — обозначает любой символ: знак препинания, букву, цифру.
+ - обозначает количество повторений предыдущего символа: 1 раз и более.
В данном случае, сочетание спец.символов .+ обозначает любую строку, состоящую хотя бы из одного произвольного символа. Имея четкую структуру сайта, мы знаем, что URI карточки товара состоит из четырех фрагментов, разделенных слэшом. Четко задать в регулярном выражении нам необходимо лишь первые два из них, так как нам необходимы страницы только из раздела по мобильным телефонам. При этом мы знаем, что в карточке товара мобильного телефона непременно присутствуют еще две части: бренд и модель. Их-то мы и задаем с помощью использования двух комбинаций .+, разделенных слэшом. Таким образом, мы определили шаблон адреса страницы карточки товара, который и копируем в поле фильтра отчета.
Скорей всего, многим уже известно святое правило — служебный трафик необходимо исключать из профилей Google Analytics с помощью фильтров, чтобы статистика о поведении онлайн аудитории оставалась чистой. Какое регулярное выражение необходимо указать в настройках фильтра для исключения статистики посещения для диапазона IP-адресов?
Пусть некоторому интернет проекту соответствует пул служебных IP-адресов: от 13.123.12.121 до 13.123.12.126. Как будет выглядеть виртуальное выражение для фильтрации по данному диапазону?
13\.123\.12\.12[1-6]
Используемые спец.символы:
\ - символ, который экранирует спец.символы регулярных выражений. Мы помним, что язык регулярных выражений включает в себя набор специальных метасимволов, которые задают логику поиска информации. Для того, чтобы такой метасимвол воспринимался как обычный фрагмент текста, и необходимо экранирование. В данном случае мы хотим, чтобы точка в выражении воспринималась именно как точка, а не метасимвол.
[ ] — квадратные скобки определяют последовательность символов, один из которых может присутствовать на данной позиции. В случае цифр через «-» можно задавать диапазон цифр, каждая из которых может оказаться в качестве символа в строке.
В данном случае мы создали шаблон для поиска IP-адресов, которые отличаются друг от друга только последней цифрой, меняющейся в заданном диапазоне. Остается только перенести данное выражение в поля фильтра с соответствующими настройками.
А что если в диапазоне служебных IP-адресов будет меняться не одна цифра, а две? Например, в случае набора IP-адресов от 13.123.12.121 до 13.123.12.132. Тогда в регулярном выражении нам необходимо задать логику изменения уже двух символов, и выглядеть оно может следующим образом:
13\.123\.12\.1(2[1-9]|3[0-2])
В данном выражении мы задаем логику изменения уже двух последних цифр. В нем добавился еще один спец.символ — округленные скобки.
( ) — используются по аналогии с математикой для группировки элементов и ограничения области действия операторов.
Если в данном выражении убрать круглые скобки, то область действия спец.символа | распространится на все выражение, и оно будет соответствовать строкам: «30», «31», «32». Круглые скобки в данном случае позволяют ограничить область действия двумя последними символами, оставляя предшествующую им часть неизменной для всех подходящих под выражение вариантов.
Иногда регулярные выражения могут пригодиться при настройке целей в Google Analytics. Возьмем в качестве примера сайт школы иностранных языков, которая предлагает своим слушателям курсы по четырем иностранным языкам. На сайте присутствует форма заявки, которую посетители могут отправлять с указанием иностранного языка для изучения.
При этом посетители могут выбирать более одного языка в качестве желаемого к изучению. Руководство проекта поставило себе задачу узнать, как часто посетители выбирают более одного языка. Соответственно, необходимо настроить цель в Google Analytics. После отправки заявки отображается страница с одним из следующих URI.
/order?lang=eng
/order?lang=eng&esp
/order?lang=eng&esp&ita
/order?lang=eng&esp&ita&fra
Очевидно, что в настройках цели необходимо указать регулярное выражение, которое будет соответствовать трем последним URI.
/order\?lang=.{3}&
Используемые спец.символы:
{ } — в фигурных скобках можно указать количество повторений предыдущего символа. Соответственно, комбинация символов .{3} обозначает последовательность любых трех символов. В нашем случае, три символа — это обозначение языка. Не забываем экранировать знак вопроса, который также является спец.символом регулярных выражений.
Таким образом, регулярное выражение будет соответствовать всем URI, в которых после знака равно идут три символа с последующим знаком амперсанта. Данные страницы и показываются в тех случаях, когда в отправленной форме указано более одного языка. Что и требовалось отследить.
Пример 5. Выбираем страницы с контентом на иностранном языке
На некотором сайте контент представлен сразу на нескольких языках — русском, английском, немецком и итальянском. Страницы на русском языке имеют стандартные URL-адреса, а в адресах страниц на других языках в конце через слэш добавляется обозначение языка контента:
www.site.ru/about
www.site.ru/about/en
www.site.ru/about/it
www.site.ru/about/de
Необходимо написать регулярное выражение, с помощью которого можно было бы отфильтровывать все страницы сайта на иностранном языке. Просто вбить в поле фильтра обозначение языка мы не можем, так как в этом случае будут отобраны и подобные страницы на русском языке, которые нам в статистике не нужны:
www.site.ru/about/encounter
www.site.ru/about/dell
Соответственно, в нашем регулярном выражении должен быть специальный символ, который обозначит, что мы ищем необходимый нам фрагмент именно в конце строки.
(/en|/it|/de)$
Используемые спец.символы:
$ — обозначает, что искомый фрагмент должен непременно находиться в конце строки.
После применения фильтра с таким регулярным выражением в отчете по содержанию отобразятся только те страницы, у которых в конце URL стоит обозначение языка контента, то есть все страницы на иностранных языках. Что и требовалось получить.
Хороший инструмент для проверки созданных регулярных выражений поможет в их освоении. Можно использовать, например, этот: http://regexpal.com/.
Успехов!
Проведите конкурс среди участников CMS Magazine
Узнайте цены и сроки уже завтра. Это бесплатно и займет ≈5 минут.
Ведущий эксперт-аналитик в MediaGuru
Проверить работоспособность созданного выражения для URL можно в разделе «Содержание сайта» — «Все страницы» Google Analytics. Путем внесения выражения в поле фильтрации можно увидеть, какие реальные страницы сайта ему соответствуют. Регулярные выражения позволяют создать один фильтр там, где без их использования потребовалось бы три, а то и четыре. В MediaGuru ими владеет каждый технический специалист, есть даже внутренний сертификационный тест.
Понимание регулярных выражений и осознание их незаменимости приходит не сразу, данная статья внесет ощутимый вклад в культуру их использования.