Панель
Реклама (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