Четыре различных типа трафика GA4 в BigQuery Export
В этой публикации мы разберем четыре основных способа обращения к источникам трафика Google Analytics 4 в BigQuery, которые появляются в ваших таблицах после настройки экспорта.
Дополнительные материалы на тему сеансов Google Analytics 4:
- Сеансы (Sessions) в Google Analytics 4
- Расчет сеансов Google Analytics 4 в Google BigQuery
- Число сеансов в Google Analytics 4
- "Темная сторона" сеансов в Google Analytics 4
Данные об источнике трафика Google Analytics 4 в экспорте событий в BigQuery отображаются в четырех разных местах (схема данных):
- как запись (RECORD) traffic_source с полями name, medium и source;
- в качестве записи (RECORD) session_traffic_source_last_click с другими такими же записями (RECORD) manual_campaign, google_ads_campaign, cross-channel_campaign, sa360_campaign, cm360_campaign и dv360_campaign, каждая из которых дополнительно включает базовые параметры (такие как источник, канал, кампания и т.д.);
- как запись (RECORD) collected_traffic_source с полями manual_campaign id, manual_campaign name, manual_source, manual_medium, manual_term, manual_content, manual_source_platform, manual_creative_format, manual_marketing_tactic (то, что задано вручную), gclid, dclid и srsltid;
- в качестве параметра события (event_params) с типом STRING (строка) и значениями для следующих ключей: source, medium, campaign, term, gclid.
Визуально это выглядит так:
Теперь, когда мы знаем, где можно получить доступ ко всем четырем атрибутам источника трафика, давайте посмотрим, как каждый из них позволяет по-разному работать с источниками трафика.
1. traffic_source
Запись traffic_source содержит информацию об источнике трафика, через который был впервые привлечен пользователь (первый источник).
Это поле рассматривает первое взаимодействие пользователя с вашим ресурсом, устанавливает для него source, medium и campaign и сохраняет эти значения до тех пор, пока пользователь (чаще всего это файл cookie GA4 - user_pseudo_id) остается активным.
Характеристики:
- Область действия - user (пользователь). Устанавливается только один раз для каждого user_pseudo_id.
- Доступно - с момента начала экспорта GA4 (2019-2020 гг.);
- Присутствует - в каждом событии;
- В интерфейсе Google Analytics 4 – все, что связано с «первый» и «первый пользователь» (источник, канал, кампания и т.д.).
Пример SQL:
1 2 3 4 5 6 7 8 9 |
SELECT traffic_source.medium, COUNT(DISTINCT user_pseudo_id) AS users FROM `osipenkovru-373609.analytics_206854065.events_20250412` GROUP BY traffic_source.medium ORDER BY users DESC; |
И результат:
2. session_traffic_source_last_click
Запись (RECORD) session_traffic_source_last_click повторяет данные об источнике трафика сеанса из пользовательского интерфейса Google Analytics 4. Но с двумя важными правилами:
- она берет первую информацию о трафике на основе событий из сеанса и устанавливает ее для всего сеанса;
- она следует модели атрибуции «Последний непрямой клик / Last Non-Direct Click» (прямые посещения будут искать самую последнюю непрямую информацию о трафике, если она существует).
Характеристики:
- Область действия - сеанс (session);
- Доступно - c середины июля 2024 года для данных manual_campaign и google_ads_campaign, с середины октября 2024 года для данных cross_channel_campaign (который включает данные каналов по умолчанию и основных каналов), sa360_campaign, cm360_campaign и dv360_campaign;
- В интерфейсе Google Analytics 4 – все, что связано с «сеанс» (источник, канал, кампания и т.д.).
Пример SQL:
1 2 3 4 5 6 7 8 9 10 11 |
SELECT user_pseudo_id, (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS session_id, COUNT(DISTINCT session_traffic_source_last_click.cross_channel_campaign.medium) AS unique_medium_count FROM `osipenkovru-373609.analytics_206854065.events_20250412` GROUP BY user_pseudo_id, session_id ORDER BY unique_medium_count DESC; |
И результат в BigQuery:
Подтверждение того, что каждый сеанс имеет только одно уникальное значение для session_traffic_source_last_click.
3. collected_traffic_source
Запись collected_traffic_source содержит данные об источнике трафика, полученные из собранных событий.
Значения для этой записи собираются при первом посещении страницы, но поскольку в рамках одного сеанса может быть несколько просмотров страниц, мы можем видеть несколько значений для источника собранного трафика. Каждый раз, когда пользователь взаимодействует с вашим доменом в рамках сеанса, используя новую внешнюю ссылку или utm_метки, это значение обновляется.
На приведенном ниже рисунке вы можете увидеть, как пользователь в течение одного сеанса взаимодействовал с нашим сайтом, используя 4 разные комбинации источников/каналов (linkedin.com, app.hubspot.com, facebook и linkedin). Как уже упоминалось, события page_view сохраняют информацию об источнике трафика, которая для удобства использования также передается в событие session_start.
Преимущество collected_traffic_source в том, что значения являются необработанными. Другими словами, не применяется ограничение по сеансам, а также атрибуция по последнему непрямому источнику. Это позволяет получить низкоуровневое представление о фактическом источнике трафика, полученном из браузера, и выявлять сеансы с несколькими источниками трафика, отделять истинные непрямые сеансы от «унаследованных» прямых сеансов и многое другое.
С другой стороны, приведенный выше session_traffic_source_last_click является стандартным подходом к работе с данными об источнике трафика в рамках сеанса.
Характеристики:
- Область действия - событие (event);
- Доступно - с мая 2023 года, однако в ноябре 2023 года оно стало доступно только для события session_start (будьте внимательны при запросах);
- Присутствует - в каждом событии;
- В интерфейсе Google Analytics 4 – все, что связано с событием, без «первый» или «сеанс» (просто источник, канал, кампания и т.д.).
Пример SQL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SELECT TIMESTAMP_MICROS(event_timestamp) AS event_timestamp, event_name, collected_traffic_source.manual_medium, collected_traffic_source.manual_source, collected_traffic_source.manual_campaign_name, (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS session_id FROM `osipenkovru-373609.analytics_206854065.events_202504*` WHERE user_pseudo_id = '986503296.1720092427' AND EXISTS (SELECT 1 FROM UNNEST(event_params) WHERE key = 'ga_session_id' AND value.int_value = 1744271831) ORDER BY event_timestamp ASC; |
В этом запросе есть конкретизация по уникальному идентификатору user_pseudo_id (он же Client ID) и идентификатору сеанса ga_session_id. Если вы планируете использовать этот запрос, то вам нужно заменить значения на свои, как и путь к таблицам с данными Google Analytics 4 в BigQuery.
Результат в BigQuery:
4. Источник трафика, связанный с event_params
Параметры событий, связанные с информацией об источнике трафика, идентичны параметрам collected_traffic_source по значению, но к ним сложнее получить доступ. И если по этой причине необходимо извлечь event_params, запрос будет стоить дороже. Подробнее о вложенной структуре и повторяющихся полях мы с вами разбирали в предыдущих главах.
Характеристики:
- Область действия - событие (event);
- Доступно - с момента начала экспорта GA4 (2019-2020 гг.);
- Присутствует - в каждом событии;
- В интерфейсе Google Analytics 4 – все, что связано с событием, без «первый» или «сеанс» (просто источник, канал, кампания и т.д.).
Пример SQL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SELECT collected_traffic_source.manual_medium AS collected_medium, (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'medium') AS event_param_medium, COUNT(*) AS session_count FROM `osipenkovru-373609.analytics_206854065.events_*` WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', '2025-04-11') AND FORMAT_DATE('%Y%m%d', '2025-04-11') AND event_name = 'session_start' GROUP BY collected_medium, event_param_medium ORDER BY collected_medium ASC; |
Результат в BigQuery:
Подтверждение того, что канал из collected_traffic_source и канал из event_params присутствуют в одних и тех же событиях.
По материалам adswerve.com