type: project
parent: ad-analytics-hub
name: GA4 integration
slug: ga4
status: partial
readiness_pct: 30
last_updated: 2026-05-05
GA4 integration (sub-project of Ad Analytics Hub)
Google Analytics 4 → екстракт. Зараз працює ad-hoc через Playwright + куки Сергія для medizine. Нативний BigQuery Export — наступний крок.
Meta
Why: GA4 = source-of-truth для website events (pageview, scroll, form_submit, purchase). Лінкуючи з Google Ads + Meta Ads через gclid/fbclid/UTM, отримуємо повну funnel-метрику без сторонніх mediation tools.
Status (2026-05-05):
- 🟡 Часткове рішення є: medizine.ua доступ через браузерні куки Сергія + Playwright (
/srv/projects/ga4-access/)
- 🔴 Нативний BQ Export — НЕ налаштовано
- 🔴 Інші сайти (schonen.ua, biogaia, ...) — TBD статус
Stakeholders:
- Owner: Сергій
- ETL ad-hoc: VPS Claude (Playwright cookies-scraping)
Implementation (current)
Що ВЖЕ існує
- Property: medizine.ua (GA Account ID
136703733, GA Property ID 252712429)
- Auth: через
/srv/passepartout/google/cookies-sergey.json (Сергієві браузерні куки, експіруються)
- Скрипти у
/srv/projects/ga4-access/:
extract_ga4_data.py — базовий екстракт через Playwright
ga4_deep_report.py — глибокий аудит (клікабельна навігація меню)
- Output: скриншоти + JSON у
/srv/projects/google-ads-crew/reports/
- Виклик: ad-hoc, без cron
Обмеження поточного підходу
- ⚠️ Куки експіруються — потрібна періодична оновленяя (раз на ~30 днів)
- ⚠️ Playwright-scrape повільний (~2-5 хв на повний deep audit)
- ⚠️ Тільки medizine.ua, інші sites — пусто
- ⚠️ Не дає raw events — тільки агрегати які доступні в UI
Next steps (planned)
Phase 1: BigQuery Export — нативний шлях
- Audit GA4 properties — дізнатись список усіх sites Deltamedical
- GA4 → BigQuery native export — увімкнути BQ Linking у Settings → BigQuery Linking для кожної property
- Перевірити IAM —
ad-pipeline-worker має bigquery.dataViewer на ці експорт-датасети
- Створити views у
ad-analytics-hub.ga4.*:
daily_sessions_by_source — UTM/source breakdown
daily_conversions — events типу purchase/lead
multi_channel_funnels — JOIN з Google Ads + Meta Ads
- Backfill 30 днів для наявних properties (GA4 Export тримає від моменту увімкнення)
Phase 2: Кросс-канальні views
- JOIN з Google Ads (gclid) + Meta Ads (fbclid) + Tabletki UTM → end-to-end attribution
Backlog
- [ ] Список GA4 properties Deltamedical (medizine, schonen, biogaia, perlachelsa, ...)
- [ ] Перевірити чи medizine GA4 Export уже увімкнений у BQ (легке checking)
- [ ] BigQuery Linking у кожній property
- [ ] Schema docs після першої вивантаги
- [ ] Cross-channel views у BQ
- [ ] Cron для оновлення куків Сергія (як fallback)
Open questions
- Скільки GA4 properties у Deltamedical (поза medizine)? (Сергій каже «давав доступи до декількох сайтів» — потрібен явний список)
- Які з них критичні для daily monitoring (medizine точно, ще?)
- Чи GA4 Export уже увімкнений десь — чи доведеться вручну активувати?
- Ad-hoc Playwright-скрипти лишаємо як fallback чи deprecate після BQ Export?