Веб-звіти для клієнтів агентства. Публічний host: https://reports.bohatyrov.pro/.
Один клієнт = одна підпапка з незалежним index.html, data.json, лого. Пароль-гейт на клієнті (client-side, sessionStorage).
Кожна сторінка тягне свій data.json, який будується скриптом build_data_api.py напряму з Google Ads API під MCC 834-562-8780. Skрипт можна ганяти вручну або з GitHub Actions за розкладом.
| URL | Клієнт | customer_id | Пароль |
|---|---|---|---|
/minelly/ |
Minelly Coffee (кава) | 1392573958 | minelly2026 |
/kancbaza/ |
Kancbaza (канцтовари) | 7320619864 + Horoshop API + Meta CSV | kancbaza2026 |
/stream-market/ |
Stream Market (інструменти) | 9496496231 | stream2026 |
reports-dashboard/
├── CNAME # reports.bohatyrov.pro
├── README.md # цей файл
├── .gitignore
└── <client>/ # одна папка на клієнта
├── index.html # сам дашборд (весь UI/JS inline)
├── data.json # згенеровані метрики (перебудовується скриптом)
├── build_data_api.py # генератор для цього клієнта
├── logo-bohatyrov.png # лого агенції
├── logo-<client>.png # лого клієнта
└── favicon-32.png
#f4f5f7, surface #ffffff, brand #0f172a, positive #16a34a, negative #dc2626.filter: brightness(0) + назва + updated_at).1 902 322 грн (nbsp тисячі, кома для дробових < 100). Вісь Y графіка: 1,10M / 880k / 18k.cp -r minelly/ <newclient>/logo-<client>.png, змінити client.name і password (в HTML: const PASSWORD = ...) і sessionStorage-ключ (щоб не заходили один по одному).build_data_api.py — замінити CID, FIRST_MONDAY, ATC_ACTION (якщо інакший conversion_action), а також EXCLUDE_CAMPAIGN_IDS при потребі.python3 <newclient>/build_data_api.py → перевірити data.json.git commit + push → GitHub Pages деплоїть за 1-2 хв.metrics.conversions без сегментації по conversion_action (агрегує всі primary+included: у Minelly це Purchase (google ads) + Generate_lead (google ads)).metrics.conversions_value (без сегментації, та ж логіка).Minelly (web) add_to_cart.metrics.search_impression_share/top/absolute_top), для PMax/Display/Demand Gen буде 0.Поки що вручну: перегенерувати data.json + git push. Далі варто додати GitHub Actions за прикладом minelly-catalog:
0 6 * * * (09:00 Kyiv)python3 <client>/build_data_api.py && git commit + push