Панель

Реклама (Google Ads, Meta Ads, AdSense)

OAuth, дашборд кампаній, UTM ↔ контакти, sync метрик.

Навіщо модуль

Розділ Маркетинг → Реклама (/ads) обʼєднує рекламні акаунти з аналітикою контактів Epsenta. Ви бачите кампанії Google Ads і Meta Ads, витрати за 30 днів і звʼязок utm_campaign з контактами в CRM/діалогах.

Модуль доповнює вбудовану UTM-аналітику (/analytics → вкладка UTM): тут саме привʼязка до зовнішніх ad-кабінетів через OAuth.

Налаштування на платформі (суперадмін)

  • Admin → Інтеграції → **OAuth (Login + Ads)** — Google Staff Client ID/Secret (вхід у панель), Google Ads Client ID/Secret + **Developer Token**
  • Admin → Інтеграції → **Meta** — App ID, App Secret (ті самі ключі для Meta Ads OAuth)
  • Redirect URI для Google Staff: https://www.epsenta.online/api/auth/google/callback
  • Redirect URI для Google Ads: https://www.epsenta.online/api/ads/oauth/google/callback
  • Redirect URI для Meta Ads: https://www.epsenta.online/api/ads/oauth/meta/callback

Підключення в проєкті

  • Відкрийте /ads у потрібному проєкті
  • Натисніть **Google Ads**, **Meta Ads** або **AdSense** — OAuth від імені вашого staff-акаунта
  • Після redirect — статус «підключено» у блоці OAuth
  • POST bind-account (через UI або API): вкажіть external account ID рекламного кабінету
  • Натисніть **Sync** — завантаження кампаній (Google потребує Developer Token)

UTM ↔ кампанія

Таблиця ads_campaign_utm_map зберігає відповідність external_campaign_id ↔ utm_campaign. Коли контакт заходить з utm_campaign у flow або віджеті, його можна знайти в блоці UTM ↔ контакти на /ads.

Приклад: utm_campaign=summer_sale → список контактів з цією змінною у flow_state.

  • utm_source, utm_medium, utm_campaign — стандартні UTM-мітки
  • Звʼязок працює з embed-віджетами, deep link і flow set_variable

Дашборд і метрики

  • **Кампанії (snapshot)** — назва, статус, provider, час останнього sync
  • **Метрики 30 днів** — impressions, clicks, spend_micros (Google Ads API / Meta Graph)
  • **Bindings** — які ad-акаунти привʼязані до проєкту
  • **UTM maps** — збережені відповідності кампаній

AdSense

OAuth scope adsense.readonly — для майбутнього звіту по монетизації сайту. Підключення через ту саму Google OAuth конфігурацію, окремий provider adsense.

Обмеження поточної версії

  • Немає керування бюджетом/pause кампаній з панелі (read-only sync)
  • Flow-блоки google_ads_* — у roadmap
  • Google Ads sync потребує схвалений Developer Token у Google Ads API Center
  • Токени OAuth зберігаються зашифровано per staff user