Оставить заявку

Регулярные выражения для Метрики и Аналитики

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

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

Где используются регулярные выражения

Регулярные выражения используются во многих языках программирования, например PHP или Perl, и не только для операций с подстроками текста. Мы же разберем применение регулярок при работе с Метрикой и Аналитикой.

Зачем нужно знать правила построения регулярных выражений? Они значительно упростят работу с системами статистики во многих аспектах:

  • Настройка целей в Google Аналитике и Яндекс.Метрике.
  • Настройка фильтров в представлениях  Google Аналитики.
  • Использование дополнительных фильтров в отчетах.
  • Настройка собственных сегментов в отчетах Google Аналитики и Яндекс.Метрики.
  • Работа с Google Tag Manager.

Синтаксис регулярных выражений

Язык регулярных выражение состоит из обычных символов (константы), которые обозначают сами себя, и спецсимволов * . ^ [ ] \ - $ + | ? ( ) { } (метасимволы). Составление регулярного выражения заключается в правильной комбинации специальных символов с другими для задания определенных условий и группировок. 

Метасимволы  нельзя использовать в выражении в их прямом значении. Если возникает такая потребность, то их необходимо экранировать.

Экранирование в регулярном выражении заключается в постановке перед метасимволом обратного слеша \.

Значения специальных символов в регулярных выражениях:

* звездочка — ноль или более предшествующих символов
Например, регулярному выражению «cart*» будут соответствовать строки «cart», «cartoon», «carte».

. точка — один любой символ
Например, регулярному выражению «c.t» будут соответствовать строки «cart», «cat», «count».
Точка также часто используется вместе со звездочкой. Выражение «.*» означает любое число любых символов.

+ плюс — один или более предыдущих символов, которые повторяются
Например, регулярному выражению «20+» соответствуют «20», «200», «2000». Комбинация «.+» будет означать то же, что и «.*», но второй вариант популярнее.

? вопросительный знак — ноль или один предыдущий символ
Например, заданному регулярному выражению «cart?» будут соответствовать «car» и «cart», но не «carte».
Вопросительный знак ограничивает зону действия другого оператора зоной наименьшего совпадения. Если строка «”.*”» найдет <img src=”https://photos.com/cat1.jpg” alt=”Фото кота”>, то строка «”.*?”» отдаст <img src=”https://photos.com/cat1.jpg” alt=”Фото кота”>. Это примеры, так называемых, «жадного» и «ленивого» кванторов.

^ крышка — начало строки
Символ крышечка отбирает только те строки, которые начинаются с последовательности символов после него. Например, «^cat» отберет строки «cat», «catalog», «catalogue».

$ доллар — конец строки
Означает пустую последовательность в конце строки.

( ) круглые скобки — группировка
Оператор используется для группировки и ограничения области действия других операторов.
Например, регулярному выражению «(20)+» будут соответствовать строки «20», «2020», «202020».

[ ] квадратные скобки — список символов, один из которых может присутствовать в тексте
Квадратные скобки определяют набор символов, которые могут присутствовать в тексте. Например, для «cart» это будут символы «c», «a», «r» и «t».

- дефис — границы последовательности символов в квадратных скобках
Используется совместно с квадратными скобками для задания диапазона символов. Например, «[a-z]» означает все символы латиницы, а «[0-9]» — любое число.

{ } фигурные скобки — количество повторений предыдущего символа
В скобках указывается число повторений идущего перед ними символа. Например, регулярное выражение «.{3}» будет означать любые последовательности из 3х символов.
Вместе с фигурными скобками для задания диапазона используется запятая. Т.е. «.{3,5}» это последовательности от 3х до 5ти символов, а «.{3,}» — последовательности от 3х символов и выше.

| вертикальная черта — оператор "ИЛИ"
Задает условие или-или. Например, для «cart(e|on)» соответствием будут варианты «carte» или «cartoon».

\ обратный слеш — экранирование специальных символов
Если специальный символ должен учитываться именно как символ, а не оператор, его необходимо экранировать, поставив перед ним обратный слеш. Например, в IP-адресе с регулярным выражением «12\.26\.44\.(0+)» перед точкой в маске ставится обратный слеш и она интерпретируются как точка, а не любой символ.

Есть также метасимволы, которые заменяют определенные готовые конструкции. Здесь важен регистр: один и тот же символ в разных регистрах имеет противоположные значения.

\b — обозначает не символ, а границу между символами;
\B — не граница слова;
\d — цифра;
\D — не цифра;
\s — пробел;
\S — не пробел;
\w — буквенный или цифровой символ или знак подчеркивания;
\W — любой символ, кроме буквенного или цифрового символа или знака подчеркивания.

Объединяя спецсимволы и константы в определенные комбинации, получаем бесконечное число шаблонов поиска.

Описание поддерживаемых метасимволов, а также примеры, можно найти в справочных разделах от Яндекс и Google.

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

Примеры регулярных выражений

Насколько регулярные выражения облегчают жизнь аналитика или маркетолога? Разберем случаи их использования в работе с Яндекс.Метрикой и Google Аналитикой.

Настройка целей (для Метрики и GA)

Актуально для целей типа Целевая страница в Google Analytics и Посещение страниц в Яндекс Метрике. Здесь можно использовать регулярное выражение для указания маски URL-адреса, посещение которого будет фиксировать цель.

Пример #1. В листинге существует функционал фильтрации. Чтобы узнать, как много пользователей им пользуются, создаем цель типа Посещение страниц с маской соответствующей структуре сайта.

В нашем примере страницы работы фильтра имеют адреса
comp.ru/catalog/videokarty/?filter[000000968]=Y 
comp.ru/catalog/videokarty/?filters[000000968][000009185]=Y 
comp.ru/catalog/materinskie_platy/?filters[000000901][000008117]=Y&page=2,
поэтому в условие цели записываем регулярное выражение /catalog/.+/*filter.

Создание цели в Метрике, где URL — регулярное выражение
Создание цели в Метрике, где URL — регулярное выражение

Пример #2. Цель — фиксация всех посещений карточек товаров. Они имеют адреса вида comp.ru/catalog/noutbuki/269272/, т.е. каждая вложена в свой раздел, а алиас карточки товара всегда состоит из цифр.

В этом случае нам подходит регулярное выражение /catalog/.+/[0-9].

Регулярное выражение может быть условием для срабатывания цели GA
Регулярное выражение может быть условием для срабатывания цели GA

Пользовательские сегменты (для Метрики и GA)

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

Пример #1. Одним из способов исключить из отчета Метрике по поисковым фразам (Источники > Поисковые запросы) витальные запросы станет сегмент с условием по поисковой фразе с помощью регулярного выражения
*егабит|магабит|маегабит|мгабит|мгеабит|мгебат|ме7абит|меабит|мега|мегг|мегеб| и так далее, в котором все возможные написания названия фирмы перечисляются через оператор «|», означающий условие ИЛИ. Можно использовать дополнительные символы «*» и «.», но при этом учитывайте, что такая строка может захватить не только витальные фразы, но и целевые запросы. 

Условие сегмента Метрики задается регулярным выражением
Условие сегмента Метрики задается регулярным выражением

Для настройки условия сегмента в Яндексе укажите в начале строки тильду ~, означающую, что следом за ней будет идти регулярное выражение, а перед ней восклицательный знак ! в том случае, если нужно отрицание данного условия (результат должен не соответствовать регулярному выражению).

Пример #2. Аналогично при создании пользовательского сегмента в Гугл Аналитике с помощью регулярного выражения можно задать условие отбора. Тут можно сразу выбрать подходящую опцию: «соответствует регулярному выражению» или «не соответствует регулярному выражению».

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

Используя выражение google*|yandex* на скрине выше мы объединили в один сегмент все сеансы из источников, связанных с Google и Яндекс. В отчет попадут данные из разных источников:

Эти источники объединятся в одном сегменте
Эти источники объединятся в одном сегменте

Пример #3. Еще один кейс — получить отчет со всеми поисковыми фразами-однословниками. Для этого в условиях сегмента надо создать регулярное выражение ^[^\s]+$.

Сегментирование поисковых фраз по регулярному выражению
Сегментирование поисковых фраз по регулярному выражению

Получаем отчет с поисковыми фразами:

Пример отчета Метрики с включенным сегментом
Пример отчета Метрики с включенным сегментом

Данное выражение можно модифицировать для двухсловных запросов:
^[^\s]+(\s+[^\s]+){1}$

Трехсловных запросов:
^[^\s]+(\s+[^\s]+){2}$

и так далее.

Фильтры в отчетах (для GA)

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

Пример #1. При изучении статистики вам нужно быстро найти все страницы входа, которые содержат слово akvariumyi. Для этого пользуемся расширенным фильтром с поиском по регулярному выражению .*akvariumyi.*, где комбинация .* означает последовательность любых символов до и после искомого слова.

Быстрый фильтр в отчете Google Analytics
Быстрый фильтр в отчете Google Analytics

Пример #2. Теперь мы хотим найти все страницы с динамическими параметрами. Используем регулярное выражение .*\?(.*)=.*

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

Фильтрация отчета GA по регулярному выражению
Фильтрация отчета GA по регулярному выражению

Пример #3. Если нужно посмотреть все источники, которые относятся не к Яндексу, задаем поиск ^[^(yandex)].* — выбираем все строки, где источник или канал не начинаются с «yandex».

Регулярное выражение исключает все источники, которые относятся к Яндексу
Регулярное выражение исключает все источники, которые относятся к Яндексу

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

Фильтры в представлениях (для GA)

Самый часто встречаемый фильтр — исключение сеансов с IP-адресов определенного диапазона, для фильтрации корпоративного трафика.

Например, нам нужно исключить все адреса от 122.24.13.10 до 122.24.13.47. Для этого нужно использовать регулярное выражение вида: 122\.24\.13\.([1-3][0-9]|4[0-7]).

Настройка пользовательского фильтра представления по IP
Настройка пользовательского фильтра представления по IP

Регулярки в Google Tag Manager

Использование Google Tag Manager также вряд ли обойдется без регулярных выражений. Они зачастую нужны, чтобы точно задать условия активации триггеров.

Например, если нужно чтобы триггер срабатывал только на страницах третьего уровня, вложенных в /catalog/, задаем их адрес с помощью регулярного выражения ^/catalog\/.*/$.

Создание триггера в Tag Manager для URL, соответстующего регулярному выражению
Создание триггера в Tag Manager для URL, соответстующего регулярному выражению

Проверка регулярных выражений

Самый очевидный способ проверить правильность работы регулярного выражения в Метрики или Аналитики — создать с его использованием сегмент и подробно изучить полученную выборку. Если выражение составлено не правильно, то в отчете окажутся те строки, которых там быть не должно.

Также проверить регулярное выражение онлайн можно с помощью специального сервиса, например Regex Pal: введите свое выражение в строку Regular Expression, а в поле Test String вводите строки из выборки.

Проверка работы регулярного выражения
Проверка работы регулярного выражения

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

Заключение

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

Регулярные выражения и умение их составлять сильно упрощает использование Метрики и Google Аналитики. Вы сможете ставить цели, создавать сегменты и настраивать отчеты так, как раньше не могли. Используйте возможности на 💯 процентов!

Нужно увеличить количество заказов с интернета?

Обращайтесь, приведем клиентов с рекламы и SEO сайта

Рекомендуем почитать

Хотите попробовать с нами? Оставьте заявку, получите бесплатный аудит SEO и рекламы сайта.
Оставить заявку
Нажмите и держите для максимального увеличения