Перейти к основному содержимому

GA4 и аналитика

Страница фиксирует рабочую схему аналитики ShopStory и правила доступа для операторов. Не храните private key, service account JSON или полный ~/.codex/config.toml в этом репозитории.

Текущая GA4 property

Актуально на 2026-06-15.

ПараметрЗначение
GA4 propertyproperties/294769093
Accountaccounts/180274175
Display nameShopstory.live (Только Сайт) - GA4
Time zoneEurope/Moscow
CurrencyRUB
Service levelGOOGLE_ANALYTICS_STANDARD

MCP-доступ

Codex использует read-only MCP server mcp-server-google-analytics. Он читает данные через Google Analytics Data API и не настраивает события, конверсии или пользователей GA4.

Локальная схема конфигурации:

~/.codex/config.toml
[mcp_servers.google-analytics]
command = "/usr/local/bin/npx"
args = ["-y", "mcp-server-google-analytics"]

[mcp_servers.google-analytics.env]
GA_PROPERTY_ID = "294769093"
GOOGLE_CLIENT_EMAIL = "<service-account>@<project>.iam.gserviceaccount.com"
GOOGLE_PRIVATE_KEY = """
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
"""

Правила:

  • GOOGLE_PRIVATE_KEY должен быть PKCS8 private key с сохраненными переносами строк.
  • Файл ~/.codex/config.toml должен быть доступен только локальному пользователю: chmod 600 ~/.codex/config.toml.
  • Service account key JSON не должен оставаться в Downloads, репозитории или issue/PR-комментариях.
  • Service account должен иметь минимальный доступ к GA4 property: Viewer для чтения отчетов.
  • После изменения ~/.codex/config.toml перезапускайте Codex, иначе текущий MCP transport может держать старый env.

Проверка работоспособности

После перезапуска Codex выполните минимальный read-smoke через MCP:

getEvents({
startDate: "2026-05-19",
endDate: "2026-06-15"
})

getPageViews({
startDate: "2026-05-19",
endDate: "2026-06-15",
dimensions: ["pagePath"]
})

getActiveUsers({
startDate: "2026-05-19",
endDate: "2026-06-15"
})

Ожидаемый результат: JSON-ответы с rowCount, dimensionHeaders, metricHeaders и строками данных. Ошибок DECODER routines::unsupported, ECONNREFUSED 0.0.0.0:443 и Transport closed быть не должно.

Контрольная проверка от 2026-06-15:

MCP toolРезультат
getEventsrowCount: 81
getPageViewsrowCount: 21
getActiveUsersrowCount: 13

Топ страниц за 2026-05-19 - 2026-06-15:

Page pathPage views
/product-card-ai-video35
/blog/category/cases12
/streams11
/9
/ai-social-video8
/for-marketplaces-sellers7
/blog6
/pricing6

События

События, уже видимые в GA4 на 2026-06-15:

  • page_view
  • scroll_depth
  • user_engagement
  • session_start
  • first_visit
  • form_view
  • form_start
  • header_ai_waitlist_click
  • header_live_lead_click
  • hero_ai_product_page_click
  • integration_tab_select

Целевой набор key events для growth-аналитики:

СобытиеНазначение
form_submitОтправка формы лида
pricing_clickПереход к тарифам или явный клик по pricing CTA
demo_requestЗапрос демо
contact_email_clickКлик по email
contact_telegram_clickКлик по Telegram
contact_whatsapp_clickКлик по WhatsApp
calendar_bookingБронирование слота в календаре
case_cta_clickCTA внутри кейсов

Если событие должно считаться конверсией, настройте его как key event в GA4 UI или через Google Analytics Admin API. Текущий mcp-server-google-analytics этого не делает.

Диагностика

СимптомПричинаДействие
connect ECONNREFUSED 0.0.0.0:443DNS/VPN/AdGuard подменяет Google API на 0.0.0.0Отключите VPN/DNS-фильтр или разрешите analyticsdata.googleapis.com; проверьте dscacheutil -q host -a name analyticsdata.googleapis.com
DECODER routines::unsupportedНевалидный GOOGLE_PRIVATE_KEYВыпустите новый service account key, сохраните многострочный PKCS8 key, проверьте через openssl pkey -in <key-file> -noout
PERMISSION_DENIEDService account не добавлен в GA4 property или указан неверный GA_PROPERTY_IDПроверьте GA_PROPERTY_ID = "294769093" и доступ service account в GA4 Access Management
Transport closed сразу после правки configCodex держит старый MCP process/transportПерезапустите Codex, затем повторите MCP smoke-check
Пустые отчеты без ошибкиНеверный date range, property или фильтр dimension/metricПроверьте период и выполните сначала getPageViews без дополнительных фильтров

DNS и API endpoints

Для MCP нужны исходящие HTTPS-запросы к:

  • analyticsdata.googleapis.com
  • analyticsadmin.googleapis.com только для Admin API-проверок и управления доступом
  • oauth2.googleapis.com для service-account JWT token exchange

Для клиентского GA4-трекинга на сайте дополнительно нужны CSP-разрешения для Google Tag Manager и Google Analytics. См. CSP Headers.