Таблица регулярных выражений для Google Tag Manager: как использовать?

Что такое регулярные выражения и зачем они нужны в GTM?

Регулярные выражения (regex или regexp) — это последовательность символов, определяющая шаблон поиска. В Google Tag Manager (GTM) они незаменимы для создания гибких и мощных триггеров и переменных. Вместо того, чтобы перечислять конкретные значения, вы можете описать паттерн, которому должны соответствовать URL, текст или другие данные. Это значительно упрощает настройку отслеживания, особенно когда требуется обрабатывать большое количество схожих элементов.

Основные метасимволы и их значения (., *, +, ?, ^, $, |, [], (), )

Вот ключевые метасимволы, которые чаще всего используются в регулярных выражениях:

  • . (точка): Соответствует любому одиночному символу, кроме новой строки.
  • * (звездочка): Соответствует предыдущему символу 0 или более раз.
  • + (плюс): Соответствует предыдущему символу 1 или более раз.
  • ? (вопросительный знак): Соответствует предыдущему символу 0 или 1 раз (необязательный символ).
  • ^ (крышка): Соответствует началу строки.
  • $ (доллар): Соответствует концу строки.
  • | (вертикальная черта): Означает «или». Используется для указания альтернативных вариантов.
  • [] (квадратные скобки): Определяет набор символов, которые могут соответствовать. Например, [a-z] соответствует любой строчной букве.
  • () (круглые скобки): Группирует символы для применения квантификаторов или создания обратных ссылок.
  • \ (обратный слеш): Экранирует метасимволы, позволяя искать их как обычные символы (например, \. для поиска точки).

Примеры простых регулярных выражений для GTM

  • .* : Соответствует любой строке, включая пустую.
  • \d+: Соответствует одной или более цифре.
  • [A-Za-z0-9]+: Соответствует одной или более букве (верхнего или нижнего регистра) или цифре.
  • ^/blog/.*: Соответствует любому URL, начинающемуся с /blog/.

Таблица наиболее полезных регулярных выражений для GTM

Соответствие URL-адресам страниц: конкретные страницы, шаблоны URL

  • Соответствие конкретной странице: ^/contact-us$ (Соответствует только /contact-us).
  • Соответствие всем страницам блога: ^/blog/.* (Соответствует /blog/, /blog/article-1, /blog/category/article-2 и т.д.).
  • Соответствие страницам с определенным расширением: .*\.pdf$ (Соответствует URL, заканчивающимся на .pdf).

Извлечение данных из URL: параметры, хеши

  • Извлечение значения параметра id: .*[?&]id=([^&]+).* (Группа 1 будет содержать значение параметра id).
  • Соответствие URL с хешем: .*#section-name$ (Соответствует URL, заканчивающимся на #section-name).

Соответствие текстам: заголовки, элементы DOM

  • Соответствие тексту, содержащему слово «скидка»: .*скидка.*.
  • Соответствие тексту, начинающемуся с определенной фразы: ^Бесплатная доставка.*.

Работа с номерами телефонов и адресами электронной почты

  • Соответствие российскому номеру телефона: ^\+7\d{10}$.
  • Соответствие общему формату электронной почты: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ (Это базовый пример, для более точной проверки используйте более сложные выражения).

Практическое применение регулярных выражений в Google Tag Manager

Создание триггеров с использованием регулярных выражений

Самый распространенный способ использования regex в GTM — это триггеры. Например, вы можете создать триггер «Click URL», который активируется только при кликах по ссылкам, соответствующим определенному шаблону:

  1. Создайте триггер типа «Just Links».
  2. Выберите «Some Link Clicks».
  3. Укажите условие, например, «Click URL matches RegEx» и введите нужное регулярное выражение.

Использование регулярных выражений в переменных GTM

Регулярные выражения также могут быть использованы для извлечения данных из существующих переменных. Создайте переменную типа «RegEx Table» и настройте ее:

Реклама
  1. Укажите входную переменную (например, {{Page URL}}).
  2. Добавьте строки с регулярными выражениями и соответствующими выходными значениями. Если регулярное выражение соответствует входному значению, переменная вернет указанное выходное значение.

Примеры реальных кейсов: отслеживание скачиваний файлов, кликов по определенным элементам

  • Отслеживание скачиваний файлов: Создайте триггер, срабатывающий при кликах по ссылкам, URL которых заканчивается на .pdf, .doc, .xls и т.д. Используйте регулярное выражение .*\.(pdf|doc|xls)$.
  • Отслеживание кликов по определенным элементам: Если на странице есть несколько кнопок с похожими, но не идентичными, классами (например, button-primary, button-secondary), вы можете создать триггер, срабатывающий при клике по любому элементу, класс которого соответствует шаблону ^button-.*$. Затем в переменной можно будет извлечь точное название класса.

Расширенные возможности и оптимизация регулярных выражений

Жадные и нежадные квантификаторы: как это влияет на результат?

Жадные квантификаторы (*, +) стараются соответствовать максимально возможному количеству символов. Нежадные квантификаторы (*?, +?) наоборот, стараются соответствовать минимальному количеству символов. Разница становится заметна при работе со сложными строками. Например, для строки <a>текст1</a><a>текст2</a> выражение <.*> (жадное) найдет <a>текст1</a><a>текст2</a>, а выражение <.*?> (нежадное) найдет <a>.

Использование групп и обратных ссылок

Круглые скобки () не только группируют символы, но и создают группы захвата. Содержимое каждой группы можно использовать отдельно с помощью обратных ссылок (например, $1, $2 и т.д.). Это полезно для замены текста или извлечения определенных частей строки. Например, если у вас есть регулярное выражение (.*) (.*), то $1 будет содержать первое слово, а $2 — второе.

Оптимизация регулярных выражений для повышения производительности GTM

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

Инструменты для тестирования и отладки регулярных выражений

Онлайн-сервисы для проверки регулярных выражений

Существует множество онлайн-сервисов, позволяющих тестировать регулярные выражения в реальном времени. Популярные варианты: regex101.com, regexr.com. Они позволяют видеть, как выражение соответствует различным строкам, и отлаживать ошибки.

Использование консоли разработчика для тестирования

Вы можете использовать консоль разработчика в браузере для тестирования регулярных выражений с помощью JavaScript:

const regex = /ваш регулярное выражение/;
const testString = 'строка для тестирования';
console.log(regex.test(testString)); // true или false

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

  • Разбивайте сложные выражения на более простые части. Проверяйте каждую часть отдельно.
  • Используйте онлайн-сервисы для визуализации работы регулярного выражения.
  • Проверяйте, не слишком ли жадный ваш квантификатор. Используйте ? для нежадных квантификаторов, если это необходимо.
  • Убедитесь, что вы правильно экранируете специальные символы (., *, \ и т.д.).
  • Внимательно проверяйте синтаксис регулярного выражения. Даже небольшая ошибка может привести к неправильной работе.

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