Импорт из Google Analytics 4

Два способа получить числа GA4: дневные итоги показывают охват MousePlayer, а отдельные сеансы GA4 из BigQuery — визиты, которые мы не записали.

1. Что поступает, а что нет

Оба пути читают из вашей учётной записи Google и включаются отдельно. Отвечают на разные вопросы; оба не обязательны.

ПутьЧто получаетДля чего
Data APIДневные итоги: сеансы, пользователи, просмотры, вовлечённые сеансыВопрос охвата. GA4 считает 3 000 сеансов, MousePlayer записал 40 — без опорного числа разницу не заметить.
Импорт BigQueryОтдельные сеансы GA4 с событиямиЧто случилось в визите, не записанном MousePlayer.

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

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

2. Путь 1: Data API

Нужны ID ресурса и ключ сервисного аккаунта.

ID ресурса — не ID измерения

Это самая частая ошибка, которую сообщение Google не объясняет. ID измерения имеет вид G-ABC123XYZ, находится в сниппете и виден везде. ID ресурса состоит только из цифр и есть лишь в администрировании: Администратор, Настройки ресурса. Нужен второй; первый мы отклоняем с пояснением, не доводя до 400.

Создание и авторизация сервисного аккаунта

  • В Google Cloud Console создайте сервисный аккаунт и JSON-ключ.
  • В том же проекте включите Google Analytics Data API.
  • В GA4: Администратор, Управление доступом к ресурсу — добавьте почту сервисного аккаунта с ролью Наблюдатель. Сервисный аккаунт — отдельный пользователь; без этого Google отвечает 403 без объяснения.

Вставьте содержимое JSON. Оно хранится зашифрованным и затем показывается только сокращённо.

3. Путь 2: импорт BigQuery

Читает сырой экспорт GA4. Сначала настройте в GA4: Администратор, Связи с BigQuery. Таблицы появляются лишь на следующий день — раньше импорт ничего не находит, это не ошибка.

Что указать

  • ID проекта GCP с экспортом. Это необязательно тот же проект, куда экспортируется MousePlayer.
  • ID набора данных. GA4 называет его analytics_<propertyId>.
  • Ключ сервисного аккаунта с ролью BigQuery Data Viewer на наборе и BigQuery Job User в проекте. Достаточно чтения, не давайте больше.

Стоимость и плательщик

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

Частота

По умолчанию каждые шесть часов повторно за последние три дня. GA4 дополняет данные до 48 часов, а дневной экспорт появляется назавтра. Более частые запросы вернут те же числа.

4. Ключ для связи сторон

Если включить аналитический мост для GA4, MousePlayer сохраняет ID клиента из cookie _ga в каждом сеансе. Это значение экспорта BigQuery в поле user_pseudo_id.

По нему сеанс GA4 сопоставляется с записью, и видно, что GA4 посчитал в том же визите. Без моста стороны просто существуют рядом.

То же поле содержит ваш ID клиента при использовании setUserId(). Одновременно нельзя: либо Google client ID, либо ваш номер.

5. Согласие, хранение, удаление

Импортированные данные имели cookie

Импортируются только строки с user_pseudo_id . При отказе GA4 отправляет обращения без cookie через Consent Mode; поля в них нет, поэтому они исключаются автоматически. Смоделированные, то есть оценочные строки, исключены по той же причине: оценка как сеанс означала бы несуществующие визиты.

Срок хранения

По умолчанию 180 дней от даты строки, а не импорта. Иначе срок не истёк бы: каждый запуск получает те же дни снова.

Удаление

По запросу посетителя удаляются и импортированные сеансы GA4 в пределах сопоставления по ID выше. При удалении проекта — все, включая строки без связи с записями. Ежедневное удаление по срокам намеренно их не трогает: у GA4 свой срок, ваши записи истекают раньше.

6. Если ничего не поступает

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

СообщениеЧто делать
ID ресурса должен быть числовымВведён ID измерения. Нужное число в настройках ресурса GA4.
HTTP 403 от Data APIСервисный аккаунт не наблюдатель ресурса GA4 или Data API не включён в проекте GCP.
Набор данных или таблицы экспорта не найденыНет связи BigQuery, другое имя набора или ещё не прошёл день.
Доступ запрещён (BigQuery)Не хватает BigQuery Data Viewer на наборе или BigQuery Job User в проекте.
Запрос прочитал бы слишком многоЛимит стоимости прервал его до начисления платы. Сократите временное окно.
нет сеансов в окнеНе ошибка. В полученных днях не было сеанса с согласием.