BigQuery export ломается не на выгрузке, а на схеме и join-логике
Самая частая ошибка — открыть экспорт как «сырые события» и сразу строить отчёты по session, user и revenue без проверки ключей. В GA4 данные живут на уровне event_params, а сессии и пользователи собираются вручную через user_pseudo_id, ga_session_id и логику окон.
Что проверить в первую очередь:
— есть ли в проекте дневные и intraday-таблицы, и не смешаны ли они в одном запросе;
— не дублируете ли вы покупки, когда join идёт по transaction_id без дедупликации;
— не считаете ли session_start как «новую сессию», игнорируя разрывы и пустые ga_session_id.
Для базовой витрины лучше сразу вынести CTE с распаковкой параметров и отдельный слой для атрибуции. Тогда любой отчёт собирается из нормализованных полей, а не из тяжелых subquery в каждом дашборде.
WITH events AS (
SELECT
user_pseudo_id,
(SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS ga_session_id,
event_name
FROM `project.dataset.events_*`
)
Если экспорт нужен для денег, а не для красоты, сначала зафиксируйте правила расчёта, потом уже стройте Looker Studio поверх витрины.
GTM & GA4 Deep
@gtm_ga4_deep
BigQuery export ломается не на выгрузке, а на схеме и join-логике
Этот пост опубликован в Telegram-канале GTM & GA4 Deep. Подписаться можно по ссылке: @gtm_ga4_deep.