Імпорт із Google Analytics 4

Два способи отримати тут дані GA4: щоденні підсумки, щоб оцінити, яку частку взагалі бачить MousePlayer, і окремі сеанси GA4 з експорту BigQuery для візитів, які ми не змогли записати.

1. Що імпортується, а що ні

Обидва способи зчитують дані з вашого облікового запису Google й вмикаються окремо. Вони відповідають на різні запитання, і вам не обов’язково потрібні обидва.

СпосібЩо отримуєДля чого
Data APIЩоденні підсумки: сеанси, користувачі, перегляди сторінок, сеанси із взаємодієюПитання охоплення. GA4 нараховує 3 000 сеансів, MousePlayer записав 40 — без контрольного числа різницю неможливо навіть помітити.
Імпорт BigQueryОкремі сеанси GA4 з їхніми подіямиЩо відбувалося під час візиту, який MousePlayer не зміг записати.

Імпортований сеанс неможливо відтворити. GA4 не зберігає знімка сторінки й рухів миші, тому будувати відтворення немає з чого. Ви отримуєте цифри й події поруч зі своїми записами — лише це, і ми не видаємо їх за щось більше.

Імпорт зберігається у власних таблицях і ніколи не змішується з вашими записами. Інакше зміст кожного похідного показника непомітно змінився б — профілів поведінки, оцінки відвідувачів, аналізу тертя, — і потім ніхто не міг би сказати, який рядок виміряно, а який отримано ззовні.

2. Спосіб 1: Data API

Потрібні дві речі: ідентифікатор ресурсу та ключ службового облікового запису.

Ідентифікатор ресурсу — не ідентифікатор потоку даних

Це найпоширеніша причина невдалої спроби, якої не називає навіть повідомлення Google. Ось як виглядає ідентифікатор потоку даних: G-ABC123XYZ. Він міститься у фрагменті коду відстеження й видимий усюди. Натомість ідентифікатор ресурсу суто числовий і показується лише в області адміністрування: Адміністратор, Налаштування ресурсу. Потрібен саме другий; перший ми відхиляємо з поясненням, щоб ви не отримали помилку 400.

Створення й надання дозволів службовому обліковому запису

  • У Google Cloud Console створіть службовий обліковий запис і згенеруйте ключ JSON.
  • У тому самому проєкті ввімкніть Google Analytics Data API.
  • У GA4 в розділі Адміністратор, Керування доступом до ресурсу додайте електронну адресу службового облікового запису з роллю Читач. Службовий обліковий запис — окремий користувач; без цього кроку Google відповідає 403 і не пояснює чому.

Вставте вміст файлу JSON у поле. Він зберігається зашифрованим і надалі показується лише в скороченому вигляді.

3. Спосіб 2: імпорт BigQuery

Цей спосіб зчитує необроблений експорт GA4. Його потрібно один раз налаштувати в GA4: Адміністратор, Зв’язки з BigQuery. Таблиці з’являються лише наступного дня — до цього імпорт нічого не знаходить, і це не несправність.

Що потрібно ввести

  • Ось потрібний ідентифікатор проєкту GCP: проєкт, де міститься експорт. Це не обов’язково той самий проєкт, у який ви експортуєте дані MousePlayer.
  • Далі ідентифікатор набору даних. GA4 називає його analytics_<propertyId>.
  • Ключ службового облікового запису з роллю BigQuery Data Viewer для набору даних і BigQuery Job User у проєкті. Достатньо доступу для читання; не надавайте більше дозволів.

Скільки це коштує і хто платить

BigQuery нараховує плату за кількість прочитаних байтів, і сплачуєте її ви. Саме тому імпорт читає лише кілька днів за запуск і завжди виконує лише один запит: другий повторно прочитав би ті самі таблиці. Додатково жорстка межа перериває запит до того, як він стане дорогим. Тоді повідомлення в журналі доставки зазначає, що часовий інтервал завеликий.

Періодичність

За замовчуванням кожні шість годин, і кожен запуск повторно отримує останні три дні. Це не випадково: GA4 доповнює дані протягом 48 годин, а щоденний експорт з’являється лише наступного дня. Частіші запити не дадуть свіжіших цифр — лише ті самі.

4. Ключ, що зв’язує обидві сторони

Якщо ви також налаштуєте міст аналітики на GA4, MousePlayer записуватиме з кожним сеансом ідентифікатор клієнта з cookie _ga. Саме це значення експорт BigQuery містить як user_pseudo_id.

За ним сеанс GA4 можна зіставити з одним із ваших записів, і навпаки: побачити, що GA4 нарахував під час того самого візиту. Без моста обидва джерела просто розміщуються поруч без зв’язку.

Те саме поле містить і ваш власний ідентифікатор клієнта, якщо ви використовуєте setUserId(). Одночасно обидва значення неможливі: там або ідентифікатор клієнта Google, або ваш власний номер.

5. Згода, строк зберігання, видалення

Імпортовані дані мали cookie

Імпортуються лише рядки з user_pseudo_id. Якщо відвідувач відмовляє, GA4 надсилає звернення без cookie в режимі згоди, і вони не мають цього значення, тому відсіюються без потреби будь-чиїх запевнень. Змодельовані, тобто оцінені, рядки не потрапляють сюди з тієї самої причини: зберегти оцінку як сеанс означало б зберегти візити, яких ніколи не було.

Як довго зберігаються дані

За замовчуванням 180 днів, відлік від дня, який описує рядок, а не від моменту імпорту. Інакше строк ніколи не спливав би, адже кожен запуск знову отримує ті самі дні.

Видалення

Якщо відвідувач просить видалити його дані, разом із ними видаляються імпортовані сеанси GA4 — наскільки їх можна пов’язати за наведеним вище ідентифікатором. Якщо видаляється проєкт, вони видаляються в будь-якому разі, зокрема рядки, які ніколи не належали до ваших записів. Щоденна процедура очищення за строком зберігання свідомо їх не чіпає: дані GA4 мають власний строк, а ваші записи спливають раніше.

6. Якщо нічого не надходить

Кожен запуск записує результат у журнал доставки на сторінці інтеграцій, зокрема збої, зрозумілими словами. Зазвичай там уже сказано, чого бракує.

ПовідомленняЩо робити
Ідентифікатор ресурсу має містити лише цифриВи ввели ідентифікатор потоку даних. Правильне число міститься в GA4 у налаштуваннях ресурсу.
HTTP 403 від Data APIСлужбовий обліковий запис не має ролі Читач у ресурсі GA4 або Data API не ввімкнено в проєкті GCP.
Набір даних або таблиці експорту не знайденоНемає зв’язку з BigQuery, набір даних має іншу назву або ще не минула доба.
Доступ заборонено (BigQuery)Службовому обліковому запису бракує ролі BigQuery Data Viewer для набору даних або BigQuery Job User у проєкті.
Запит прочитав би забагато данихОбмеження вартості перервало його до нарахування плати. Виберіть менший часовий інтервал.
немає сеансів у цьому інтерваліЦе не несправність. За отримані дні не було сеансів зі згодою.