Схема данных Google Analytics 4 в Google BigQuery

02 августа, 2022

После того, как вы настроили связь Google Analytics 4 и Google BigQuery, пришло время разобраться в формате и способе хранения ваших данных в облачном хранилище.

Обновление: я выпустил электронное руководство по Google Analytics 4. Бесплатно скачать его можно в формате .PDF по ссылке.

Примерно через 24 часа после интеграции в Google BigQuery будут переданы первые данные из Google Analytics 4. В BigQuery это выглядит так:

Данные Google Analytics 4 в BigQuery

Для каждого счетчика Google Analytics 4 в BigQuery добавляется один набор данных (dataset) с названием analytics_property_id, где property_id - идентификатор ресурса GA4, который отображается в настройках ресурса:

Название набора данных с идентификатором ресурса

В зависимости от того, какую частоту передачи данных вы настроили (ежедневную, потоковую передачу или обе), в BigQuery будут созданы таблицы соответствующего назначения. Ежедневная таблица будет иметь название events_ГГГГММДД (будет создана вне зависимости от того, включен ли ежедневный или потоковый экспорт), а таблица потоковой передачи данных имеет название events_intraday_ГГГГММДД. Она заполняется непрерывно по мере регистрации событий. В конце каждого дня эта таблица удаляется (после заполнения events_ГГГГММДД).

Примеры таблиц двух видов

Если вы используете тестовую среду BigQuery (sandbox, песочница), передача данных о событиях в течение дня не производится (недоступна потоковая передача данных), а также на ваш проект BigQuery накладываются дополнительные ограничения. Наиболее чувствительное для нас - это срок хранения данных в таблицах, который по умолчанию составляет 60 дней.

Это означает, что как только данные будут переданы за определенный день из Google Analytics 4 в Google BigQuery, у таблицы появится дата создания. И с этой даты пойдет отсчет 60 дней. По истечении этого времени таблица будет удалена из набора данных. Если вы перейдете на вкладку Details, то увидите две даты для каждой таблицы:

Срок жизни таблицы в песочнице - 60 дней (BigQuery sandbox)

Чтобы данные не удалялись через 60 дней, и вы имели возможность настроить потоковую передачу данных в течение дня, вам необходимо привязать к своей учетной записи Google Cloud Platform (GLP) платежный аккаунт (банковскую карту) и изменить срок хранения данных в таблице. Это можно сделать с помощью настройки Edit Details (1), выбрав в поле Expiration Time один из двух вариантов и сохранить изменения (3):

  1. None (Never) - данные из BigQuery не удалятся никогда (2);
  2. Expiration time - выбор конкретной даты.

None - Never - Таблица с данными никогда не удалится

Примечание: в связи с текущими событиями в мире Google приостановил работу для пользователей из России. На момент публикации данной статьи вы не сможете привязать свою банковскую карту, выпущенную на территории РФ. Наиболее простое и эффективное решение - выпустить карту другой страны (Казахстан, Киргизия, Армения и т.д.).

Помимо данных лимитов, при отправке данных из GA4 в BigQuery существуют еще некоторые ограничения. Об этом прописано в официальной документации Google: данные с некоторых устройств отправляются в Google Analytics не в тот же день, когда активируются события. Чтобы учесть эту задержку, Google Analytics обновляет данные о событиях в ежедневных таблицах (events_ГГГГММДД) в течение трех дней после даты фиксации событий. События получают правильные метки времени независимо от того, когда были отправлены данные. Если данные поступают позже чем через три дня, события не регистрируются.

Напротив таблицы events вы можете видеть число в скобках:

events_()

  • events_(1) означает, что в этой таблице доступны все данные о событиях Google Analytics 4 за предыдущий день;
  • events_(2) означает, что в этой таблице доступны все данные о событиях Google Analytics 4 за предыдущие два дня;
  • events_(51) означает, что в этой таблице доступны все данные о событиях Google Analytics 4 за предыдущие 51 день.

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

Выбор конкретной даты из выпадающего списка

В Google Analytics 4 (GA4) используется новая схема данных, отличная от схемы Universal Analytics (GA3), с которой вы могли познакомиться, используя Google Analytics 360 (GA360). В этой статье я не буду использовать сравнения и приводить примеры как это было ранее, чтобы не запутать вас.  Давайте сразу же перейдем к схеме GA4-BigQuery Export и подробнее разберем столбцы таблицы экспортируемых данных.

Выбрав конкретную таблицу и день импорта, перейдите на вкладку SCHEMA (Схема). В ней будут отображаться все поля, которые доступны в текущей таблице. Например:

  • event_date - дата, когда было зарегистрировано событие (в формате ГГГГММДД)
  • event_timestamp - время, когда было зарегистрировано событие (в микросекундах, UTC)
  • event_name - название события
  • event_params - параметры события
  • event_previous_timestamp - время, когда было зарегистрировано событие в прошлый раз (в микросекундах, UTC)
  • event_value_in_usd - значение параметра value, сконвертированное в доллары США (USD)
  • event_bundle_sequence_id - порядковый идентификатор пакета, в котором были загружены события
  • event_server_timestamp_offset - смещение временной метки между временем сбора и загрузки (в микросекундах)
  • user_id - идентификатор пользователя, определенный программно на вашем сайте или в приложении (он же User ID). Может быть связан с несколькими user_pseudo_id
  • user_pseudo_id - уникальный идентификатор пользователя (он же Client ID)
  • privacy_info - информация о настройках конфиденциальности (режим согласия)
  • user_properties - свойства пользователя
  • user_first_touch_timestamp - время (в микросекундах), когда пользователь впервые запустил приложение или посетил сайт
  • user_ltv - запись с информацией об общей ценности пользователя. Это поле не заполняется в таблицах за день
  • device - информация об устройстве пользователя
  • geo - информация о геоданных пользователя
  • app_info - информация о приложении пользователя
  • traffic_source - название источника трафика, через который был впервые привлечен пользователь. Это поле не заполняется в таблицах за день
  • stream_id - идентификатор потока Google Analytics 4
  • platform - платформа, на которой создано приложение
  • event_dimensions - дополнительные (системные) параметры, передаваемые с событием
  • ecommerce - информация об электронной торговле
  • items - товары, включенные в событие

Схема данных (Schema)

Примечание: полный список всех полей схемы данных представлен в официальной документации Google.

Поскольку каждое обращение (хит) в Google Analytics 4 - это событие, то каждая строка в наборе данных соответствует этому событию.

Каждое событие - отдельная запись в таблице

Строки 1-2-3-4 и т.д. являются реальными строками в таблице. Все остальные строки являются вложенными, и в большинстве случаев они имеют значения null. Именно поэтому внутри полей может быть дополнительная вложенность, к которой мы так же можем обращаться посредством SQL-запросов:

Дополнительная вложенность в схеме данных

Например, вот такие параметры событий были зарегистрированы с событием ga4book (скачивание бесплатной книги Google Analytics 4):

Параметры события

Помимо названия полей, в схеме данных присутствует информация о типе данных каждого поля (столбец Type), а также режим конкретного столбца в таблице (столбец Mode). Он является необязательным. Если режим не указан, столбец по умолчанию имеет значение NULLABLE.

Type и Mode

Примечание: в BigQuery существует возможность создания наборов данных и таблиц с указанием схемы и типов данных для соответствующих столбцов вручную. Но поскольку Google Analytics 4 автоматически загружает данные в BigQuery, нам нет необходимости что-либо менять в текущей схеме данных.

Общая информация о самой таблице представлена на вкладке DETAILS. Это:

Информация о таблице (Details)

  • Table ID - идентификатор таблицы, в которой каждый уровень разделен точкой (например, osipenkovru.analytics_206854065.events_20220322 означает, что в BigQuery есть проект с названием osipenkovru, в этом проекте есть набор данных analytics_20685406, а внутри проекта таблица за конкретный день events_20220322);
  • Table size - размер таблицы (в мегабайтах, MB);
  • Number of rows - количество строк в таблице;
  • Created - дата создания таблицы;
  • Last modified - дата последнего изменения таблицы;
  • Table expiration - дата истечения срока действия таблицы (либо отображается конкретная дата, либо NEVER - никогда);
  • Data location - локализация данных, место для хранения данных (важно для компании, соблюдающей законодательство той страны, на территории которой оно работает). Эту настройку вы задаете вручную при интеграции GA4-BigQuery;
  • Description - дополнительное (произвольное) описание для таблицы.

Чтобы посмотреть таблицы с данными о событиях, перейдите на вкладку PREVIEW. В ней отобразятся все данные, переданные из Google Analytics 4 в Google BigQuery за выбранный день. Именно столбцы в этой таблице и являются полями, названия которых были представлены на вкладке SCHEMA.

Каждый столбец в таблице - соответствующее поле в схеме данных

О том, как с помощью специальных SQL-команд обращаться к конкретным событиям Google Analytics 4 и извлекать нужную для анализа информацию, подробнее рассмотрим в следующих материалах.

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

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