Исключить параметры запроса URL в Google Analytics 4

23 июля, 2023

В Universal Analytics (GA3) на уровне представления была функция Исключить параметры запроса URL, которая позволяла удалять нежелательные параметры из URL-адресов и получать более правильную статистику в отчетах. Но представлений в Google Analytics 4 нет. Можно ли как-то отсекать хвост с параметрами, идущий после вопросительного знака ? Давайте разбираться!

Как это было в Universal Analytics?

С 1 июля 2023 года ваш ресурс Universal Analytics перестал собирать и обрабатывать данные. Google Analytics 4 - единственный счетчик от Google, который вы должны использовать сегодня.

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

Несколько лет назад в своем блоге я описал проблему на примере параметра запроса fbclid из Facebook *, которые с октября 2018 года стали добавляться к исходящим ссылкам, размещенным в социальной сети. И каждый такой переход по ссылке из Facebook осуществлялся с дополнительным параметром:

Параметр fbclid в каждой исходящей ссылке

* Деятельность американской компании Meta (бывшая Facebook) запрещена в России, организация признана экстремистской.

И когда вы просматривали отчет по страницам в Universal Analytics, то могли наблюдать такую картину:

Статистика по страницам в Universal Analytics с параметром fbclid

Страница в таблице одна и та же, но за счет уникального параметра запроса fbclid статистика по одному и тому же URL-адресу "размывалась" на несколько строк (записей), что существенно усложняло анализ по просмотру страниц, ее средней длительности просмотра и другим показателям. Google Analytics по умолчанию собирает данные о каждой уникальной URL-ссылке отдельно.

И такая проблема в GA3 не только с fbclid. У различных рекламных и аналитических систем есть свои параметры запроса, которые могут автоматически подставляться в ваши ссылки. Например, тот же gclid от Google Ads и yclid от Яндекс.Директа в рекламных объявлениях, gtm_debug от режима отладки Google Tag Manager, ysclid от Яндекса для более точного распознавания поисковых фраз, roistat от сервиса сквозной аналитики Roistat, calltouch_tm от сервиса коллтрекинга и сквозной аналитики Calltouch, и многие другие. Есть и системные/технические параметры, который так же могут передаваться в ссылке и которые Google Analytics будет фиксировать. Они могут полезными, поэтому их исключение из отчетов не требуется. Метки UTM тоже являются параметрами запроса URL.

Если параметр запроса не изменяет содержимое вашей страницы, то его можно исключить из отчетов Google Analytics. Для этого владельцы счетчиков Universal Analytics раньше использовали функцию Исключить параметры запроса UR на уровне представления:

Исключить параметры запроса URL (в Universal Analytics)

Все параметры запроса, которые нужно было исключить, перечислялись в этом поле через запятую. Но в Google Analytics 4 такой настройки нет, как и самих представлений. Как быть?

Стандартный отчет и Исследование

Первым делом, что вы можете посмотреть в GA4 - это стандартный отчет по страницам и экранам. Он находится в разделе Взаимодействие. Выбрав диапазон дат и параметр Путь к странице и класс экрана, вы увидите в таблице все URL-адреса без дополнительных параметров запросов:

Отчет "Страницы и экраны"

Именно благодаря параметру Путь к странице и класс экрана (Page path and screen class) вы можете проанализировать статистику по просмотрам страниц вашего сайта без каких-либо дополнительных параметров запроса. Путь определяется по значению, указанному после домена. Например, в адресе osipenkov.ru/ga4-all/ доменом является osipenkov.ru, а путем к странице - /ga4-all/.

Аналогичным образом вы можете поступить, построив отчет в Исследовании. Для этого требуется выбрать тот же параметр Путь к странице и класс экрана, а в качестве показателя - Просмотры:

Исследование в свободной форме с параметром "Путь к странице и класс экрана"

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

Но параметр Путь к странице и класс экрана исключает из статистики все параметры, и которые вы хотели, чтобы были исключены, и которые вам были бы полезны для анализа. Как же посмотреть данные в отчетах GA4 с учетом некоторых параметров запроса? Самое простое - это использовать другой параметр Путь к странице и строка запроса (Page path + query string):

Параметр "Путь к странице и строка запроса"

Чтобы отобразить статистику только с необходимым параметром запроса, воспользуйтесь фильтром. Для этого выберите параметр Путь к странице и строка запроса и укажите нужный параметр через условие содержит. Например, содержит ?fbclid:

Фильтр в Исследовании по параметру запроса

А для отображения всех параметров запроса воспользуйтесь фильтром, указав только вопросительный знак - Путь к странице и строка запроса содержит ?

Все параметры запроса в Исследовании

А как исключить параметры запроса URL в Google Analytics 4?

Способы исключения параметров запроса URL в Google Analytics 4

Существует несколько способов исключения параметров запроса URL в Google Analytics 4:

  • вручную при выгрузке данных локально или в Google Таблицы;
  • с помощью Google Tag Manager;
  • без использования Google Tag Manager;
  • работа с параметрами в Google BigQuery.

Рассмотрим каждый из них подробнее.

Исключение вручную

Этот способ никак не влияет на те данные, которые собирает ваш счетчик GA4, а сами преобразования происходят вне интерфейса Google Analytics 4. Для исключения параметров запросов вручную вам необходимо выгрузить статистику из GA4 к себе на компьютер или в Google Таблицы, а уже там совершить поиск по параметрам, замену значений и последующую консолидацию данных.

Чтобы это сделать, создайте Исследование с нужным количеством параметров и показателей, используя в качестве основного Путь к странице и строка запроса, а затем сохраните эти данные с помощью функции экспорта:

Экспорт данных из Исследования

Примечание: Исследования ограничены количеством строк 500. Поэтому если у вас запрос за больший диапазон дат или в выборку попадает много страниц с разными параметрами запросов, то ручной способ не самый оптимальный вариант, поскольку вам придется частями выгружать статистику по 500 строк за один экспорт.

Можете сохранить локально на компьютер в формате TSV или CSV, можете выгрузить статистику в Google Таблицы, как удобнее. В качестве примера я буду демонстрировать выгрузку данных в CSV, открыв сохраненный файл с помощью Microsoft Excel. Выглядеть он должен примерно так:

Выгруженная статистика в Microsoft Excel

Воспользуйтесь функцией Текст по столбцам, чтобы разделить столбец на несколько, используя в качестве символа-разделителя запятую (,). Тогда вы получите данные в удобочитаемом виде:

Статистика по страницам и просмотрам

Выделив столбец Путь к странице и строка запроса, замените /~?* на / с помощью функции Найти и заменить:

Страницы без параметров

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

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

  • для fbclid - Найти и заменить /?fbclid=* на /
  • для yclid - Найти и заменить /?yclid=* на /
  • для ysclid - Найти и заменить /?ysclid=* на /
  • и так далее.

Исключение параметров запроса вручную не всегда удобно, поскольку требует выгрузки данных из интерфейса Google Analytics 4. Но вы можете переопределить параметры запросов перед отправкой данных в GA4, используя диспетчер тегов Google.

Использование Google Tag Manager

Пожалуй, это самый распространенный способ исключения параметров запросов URL в Google Analytics 4, который встречается в материалах других авторов, но в нескольких вариациях. Его реализация заключается в том, что данные до попадания в GA4 проходят небольшую обработку, то есть программно корректируются нужные параметры запроса.

Так как в Google Analytics 4 нет схожего с Universal Analytics функционала на уровне представления и настройки исключения параметров URL, нам необходимо выполнять этот процесс самостоятельно с использованием Google Tag Manager. Сделать это можно с помощью готовых решений от сторонних разработчиков, используя галерею шаблонов сообществ GTM.

Откройте свой контейнер Google Tag Manager и перейдите в раздел Шаблоны. В шаблонных переменных нажмите на Поиск в галерее:

Шаблоны переменных - Поиск в галерее

Введите в поиске слово Query. В результатах поиска вам отобразится несколько решений, которые вы можете использовать. Одним из самых популярных является шаблон переменной от CardinalPath - Query Parameter Stripping Utility. Выберите его:

Шаблон переменной Query Parameter Stripping Utility (CardinalPath)

В верхнем правом углу нажмите Добавить в рабочую область:

Добавление в рабочую область

Добавьте шаблон переменных в свою рабочую область. Теперь на основе этого шаблон создайте переменную, перейдя в раздел Переменные и выбрав пользовательскую переменную Query Parameter Stripping Utility:

Создание переменной на основе пользовательского шаблона

В открывшемся окне вы увидите следующие настройки переменной:

Настройки переменной Query Parameter Stripping Utility

  • Поле Exclude All Parameters будет игнорировать все параметры, кроме тех, которые указаны в поле These parameters are allowed и которые разрешены в белом списке (по умолчанию в него добавлены параметры gbraid, dclid, gclsrc, gclid, wbraid, utm_source, utm_content, utm_id, utm_medium, utm_campaign, utm_term, utm_source_platform, utm_creative_format, utm_marketing_tactic, srsltid);
  • Поле Exclude Certain Parameters будет исключать только те параметры, которые вы добавите в поле Only these parameters will be removed;
  • В поле Field which needs parameters removed добавьте встроенную переменную Page URL; из нее будут извлекаться параметры запроса.

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

  • gtm_debug
  • fbclid
  • mc_cid (Mailchimp)
  • mc_eid (Mailchimp)
  • __s (Drip)
  • __hssc (HubSpot)
  • __hstc (HubSpot)
  • __hsfp (HubSpot)
  • _hsenc (HubSpot)
  • _ke (Klaviyo)
  • hsCtaTracking (HubSpot)
  • igshid (Instagram)
  • ml_subscriber (MailerLite)
  • ml_subscriber_hash (MailerLite)
  • msclkid (Microsoft)
  • omnisendContactID (Omnisend)
  • s_cid (Adobe)
  • ef_id (Adobe)
  • twclid (Twitter)

Правда он больше заточен на зарубежные порталы. Я бы дополнил его следующими запросами:

  • yclid
  • ysclid
  • _ym_debug
  • roistat_visit
  • roistat
  • roistat_pos
  • roistat_referrer
  • calltouch_tm
  • callibri
  • cm_id
  • ct_vk
  • ct_fb
  • и другие

Если вы используете Яндекс.Метрику, то для составления полного списка параметров вам поможет отчет Содержание - По параметрам URL:

Отчет "По параметрам URL" в Яндекс.Метрике

Если Яндекс.Метрики на вашем сайте нет, то воспользуйтесь поиском с фильтром ? в Исследовании Google Analytics 4, выписав все значения параметров запросов.

В качестве примера я воспользуюсь своим списком, добавив в переменную следующий набор параметров - yclid, ysclid, _ym_debug, roistat_visit, roistat, roistat_pos, roistat_referrer, calltouch_tm, callibri, cm_id, ct_vk, ct_fb, fbclib, gtm_debug:

Настройки переменной исключения параметров URL

Задав переменной имя, сохраните ее.

В завершение вам необходимо отредактировать текущий тег конфигурации Google Analytics 4. Для этого перейдите в раздел Теги и откройте свой существующий тег GA4:

Google Аналитика: конфигурация GA4

Теперь вам необходимо переопределить параметр GA4, который сохраняет и передает информацию о просмотренных страницах в ваш ресурс Google Analytics. За это отвечает поле page_location. Откройте в теге настройку Поля, которые необходимо задать и добавьте параметр page_location, в качестве значения установив для него созданную ранее пользовательскую переменную:

Тег конфигурации с переопределенным параметром page_location

Сохраните изменения в вашем теге.

Чтобы проверить новую настройку, запустите режим предварительного просмотра GTM. В окне ввода URL добавьте к ссылке вашего сайта несколько параметров запроса, которые вы исключили:

Добавление параметров запроса в URL-адресе перед запуском режима отладки

В моем примере, исключены параметры yclid, fbclid, gtm_debug и _ym_debug, а разрешен параметр param1. Он не должен быть исключен из параметров запроса URL в page_location. Все параметры запроса должны быть перечислены через знак амперсанда &

После активации режима отладки перейдите в Google Analytics 4 и откройте инструмент DebugView. На шкале событий найдите page_view, и кликнув на него, откройте параметр page_location. Проверьте, чтобы там не отображались исключенные параметры:

Проверка в DebugView

Как видите, исключенных параметров yclid, fbclid, gtm_debug и _ym_debug нет в page_location, а есть только param1, который я не добавлял в список исключения. Значит все работает правильно. После проверки не забудьте опубликовать контейнер Google Tag Manager с изменениями.

Есть и другой вариант, который позволяет обойтись без шаблонов переменных других разработчиков. Он описан в блоге codeboosh.com. Вы можете создать пользовательскую переменную типа Собственный код JavaScript, добавив в нее нижеприведенный код:

, где вместо значений hello и goodbye в скобках вы задаете свои собственные параметры запроса, которые хотите исключить. Если их больше, то просто скопируйте строку pageURL.searchParams.delete('ваш_параметр_запроса'); и вставьте ее ниже столько раз, сколько нужно, заменив значение в скобках на свое собственное (каждая строка - один параметр запроса):

В качестве примера исключим те же параметры запроса, что и в примере выше для пользовательской переменной на основе шаблона Query Parameter Stripping Utility. В Google Tag Manager это будет выглядеть так:

Переменная "Собственный код JavaScript"

Задайте значение переменной (например, Исключение параметров URL 2) и сохраните ее. Активируйте режим предварительного просмотра Google Tag Manager, добавив в URL те же параметры для примера. В моем случае - это ссылка https://osipenkov.ru/?_ym_debug=1&yclid=lsdgf&fbclid=ksdgIKNa2&param1=test + в конце будет добавлен параметр gtm_debug.

После включения режима отладки, на шкале событий откройте вкладку Variables и убедитесь, что только что созданная переменная принимает корректное значение, отсекая параметры запроса, которые были указаны в коде, и оставляет те, которые не были добавлены в переменной Собственный код JavaScript:

Переменная с корректными параметрами запроса

Теперь эту переменную вы можете использовать в теге конфигурации GA4 для параметра page_location вместо пользовательской переменной, созданной на основе шаблона Query Parameter Stripping Utility. Результат будет тот же.

Примечание: не исключайте параметр запроса поиска по сайту. В противном случае вы не увидите данных по поисковым запросам, которые вводили пользователи в поиске на вашем сайте.

Без использования Google Tag Manager

Если на вашем сайте не используется диспетчер тегов Google, то вам или вашему разработчику нужно будет вручную отправлять события page_view с помощью вызова gtag, переопределяя значение page_location. Пример кода представлен в официальной документации Google:

, где STREAM_ID - ваш идентификатор потока Google Analytics 4.

Работа с параметрами запросов в Google BigQuery

Этот способ является продвинутым и предназначен только для тех владельцев счетчика GA4, которые настроили в своем ресурсе связь Google Analytics 4 с Google BigQuery.

В отличие от предыдущего варианта с использованием Google Tag Manager, вы здесь ничего не переопределяете и не настраиваете заранее. Предполагается, что все параметры запроса, которые Google Analytics 4 отслеживает по умолчанию, в таком виде и передаются в ваш счетчик, а затем в BigQuery. Манипуляции со страницами и их URL-адресами уже производятся на стороне облачного хранилища Google BigQuery с помощью SQL-команд. То, что вы делали с данными GA4 после экспорта в Excel (см. выше), в этом примере мы будем делать в самом BigQuery.

Поле page_location в BigQuery по умолчанию GA4 содержит полный URL-адрес страницы, включая любые параметры запроса:

Параметр page_location содержит полный URL-адрес страницы

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

Первый запрос, который вы можете попробовать использовать - это расчет просмотра страниц по page_location:

, где вместо osipenkovru-373609.analytics_206854065 вы должны указать название вашего проекта в Google Cloud и набора данных в BigQuery, а в _TABLE_SUFFIX диапазон дат, за которые вы хотите получить статистику. Если желаете получить за конкретный день, то можете указать одно и то же значение для BETWEEN и AND.

Рекомендую к прочтению эти материалы:

В BigQuery сам запрос и его результат будет выглядеть так:

Расчет по просмотрам страницам

Для извлечения "чистого пути" без протокола, имени хоста и всех параметров запроса (аналог page_path) вы можете использовать этот SQL-запрос и функцию REGEXP_REPLACE:

, где вместо osipenkovru-373609.analytics_206854065 вы должны указать название вашего проекта в Google Cloud и набора данных в BigQuery, а в _TABLE_SUFFIX диапазон дат, за которые вы хотите получить статистику. Если желаете получить за конкретный день, то можете указать одно и то же значение для BETWEEN и AND.

В BigQuery сам запрос и его результат извлечения из page_location будет выглядеть так:

Извлечение "чистого пути" к странице (без параметров запроса)

Чтобы извлечь определенный параметр запроса из page_location, вы можете использовать нижеприведенную SQL-команду и функцию REGEXP_EXTRACT:

, где вместо osipenkovru-373609.analytics_206854065 вы должны указать название вашего проекта в Google Cloud и набора данных в BigQuery, а в _TABLE_SUFFIX диапазон дат, за которые вы хотите получить статистику. Если желаете получить за конкретный день, то можете указать одно и то же значение для BETWEEN и AND.

Этот SQL-запрос извлекает значения из параметра yclid, но вы можете поменять значение на любое другое. Например, на fbclid, ysclid, gtm_debug и т.д. Результат в BigQuery будет примерно таким:

Извлечение определенного параметра запроса (пример с yclid)

Другой пример извлекает параметры запроса страницы во вложенный массив в виде пары ключ-значение, аналогичный массиву event_params по умолчанию. Позже из этого массива можно извлечь нужный параметр в отдельный столбец:

, где вместо osipenkovru-373609.analytics_206854065 вы должны указать название вашего проекта в Google Cloud и набора данных в BigQuery, а в _TABLE_SUFFIX диапазон дат, за которые вы хотите получить статистику. Если желаете получить за конкретный день, то можете указать одно и то же значение для BETWEEN и AND.

В качестве примера все параметры запроса заносятся во вложенный массив в виде пары ключ-значение, а затем с помощью конструкции SELECT value FROM UNNEST(url_query) WHERE key = 'yclid' извлекается значение конкретного параметра запроса в отдельный столбец. В данном случае - это yclid:

Извлечение параметров запроса во вложенный массив, а затем выбранный параметр в отдельный столбец

Примеры SQL-запросов в BigQuery взяты с сайта tanelytics.com

Хотите углубленно изучить Google Analytics 4 и работу с данными в BigQuery? Приглашаю вас на онлайн-обучение GA4&BigQuery!

Получайте бесплатные уроки и фишки

По контекстной, таргетированной рекламе и аналитике