Meta Business Manager — покрокова інструкція для Сергія
Дата: 2026-04-22
Контекст: налаштування через особистий FB Сергія (admin у BM), Варіант C (гібрид: 2 Apps — Graph + Threads).
Мета: System User tokens для 3 інтеграцій (FB Ad Library, Threads publish, Meta Ads audit) + міграція поточного PowerBI скрипта на той самий System User.
⚠️ Ключовий принцип: ніколи не використовувати User Access Token (твій особистий) у скриптах продакшну. Завжди System User Token — він не залежить від твого акаунта.
Phase 0 — Підготовка (15 хв, до початку)
- [ ] 0.1 Відкрий https://business.facebook.com у Chrome, увійди своїм FB
- [ ] 0.2 Включи 2FA на своєму FB (Settings → Security) — без цього Meta не дасть create App
- [ ] 0.3 Підготуй список Ad Account ID які хочеш аудитувати (формат
act_1234567890). Зараз можна взяти перші 3-5 ключових — інші додаси пізніше
- [ ] 0.4 Підготуй документи ТОВ Delta Medical (свідоцтво про реєстрацію + ЄДРПОУ-виписка) — для Business Verification потім
Phase 1 — Створення Business Manager (10 хв)
- [ ] 1.1 https://business.facebook.com → кнопка Create Account (якщо вже не створений)
- [ ] 1.2 Заповни:
- Name:
Delta Medical (або Delta Medical Promotions)
- Your Name: твоє ім'я (auto з FB)
- Business Email: робоча пошта (не gmail особистий) — на неї прилетять system-сповіщення
- [ ] 1.3 Додай реквізити бізнесу:
- Business Settings → Business Info → Add
- Legal Name:
Товариство з обмеженою відповідальністю «Дельта Медікал Промоушнз Україна» (або точно як у свідоцтві)
- Address, Phone, Website: заповни
- Tax ID: ЄДРПОУ
- [ ] 1.4 Business Settings → People → Add:
- Додай себе як Admin (має бути вже)
- Додай Андрія як Admin (навіть якщо його FB зараз заблокований — коли розблокують він одразу матиме доступ)
Phase 2 — Додавання Ad Accounts до BM (20 хв)
Варіант A: Ad Accounts належать нам (Delta Medical)
- [ ] 2.1 Business Settings → Accounts → Ad Accounts → Add → Add an Ad Account → введи Ad Account ID → Claim
Варіант B: Ad Accounts у чужих BM клієнтів (agency-style)
- [ ] 2.2 Accounts → Ad Accounts → Add → Request Access to an Ad Account
- [ ] 2.3 Введи Ad Account ID + обери ролі, які потрібні (Analyst для read-only аудиту)
- [ ] 2.4 Клієнт отримає запит у своєму BM → підтверджує → після apprroval Ad Account з'явиться у тебе у списку
Перевірка
- [ ] 2.5 Accounts → Ad Accounts → має бути список усіх потрібних акаунтів зі статусом
Active
Phase 3 — Business Verification (2-10 робочих днів)
Потрібен тільки для:
threads_content_publish App Review (Pediatric News)
- Потужніші scope'и в App Review
Для базового ads_read і business_management — НЕ обов'язково. Можна починати Phase 4+5 паралельно, не чекаючи.
- [ ] 3.1 Business Settings → Security Center → Business Verification → Start
- [ ] 3.2 Обери Legal Business Name — має збігатись з документом
- [ ] 3.3 Завантаж документ: свідоцтво про реєстрацію ТОВ (PDF, до 10MB, українською ОК)
- [ ] 3.4 Підтверди адресу: або податкова виписка, або utility bill на бізнес-адресу
- [ ] 3.5 Обери spосіб verification:
- Email (швидше, 1-2 дні) — на корпоративну пошту
- Phone (SMS на бізнес-номер)
- [ ] 3.6 Submit → статус ✅ Verified через 2-10 днів у
Business Verification Status
Phase 4 — App "delta-graph" (Marketing + Ad Library)
4.1 Створення App
- [ ] https://developers.facebook.com/apps → Create App
- [ ] Use case: Other → Next
- [ ] Type: Business (важливо!) → Next
- [ ] Details:
- App name:
delta-graph
- App contact email: твоя робоча
- Business Account: Delta Medical (з Phase 1)
- [ ] Create App
4.2 Налаштування App
- [ ] App Settings → Basic:
- App Domains:
medizine.ua (і будь-які інші домени де може крутитись скрипт)
- Privacy Policy URL:
https://medizine.ua/privacy (або інший — потрібен для App Review)
- Terms of Service URL:
https://medizine.ua/terms
- Category: Business and Pages
- User data deletion: URL або інструкція (може бути просто
mailto:privacy@medizine.ua)
- Зберегти App ID + App Secret у safe місце одразу (в кінець цієї інструкції скажу куди)
4.3 Додати Products
- [ ] Products (лівий sidebar) → Add Product
- [ ] Додай Marketing API → Set up (це дає доступ до
/act_{id}/campaigns, /insights, тощо)
- [ ] Додай Facebook Login for Business (потрібен для Ad Library →
/ads_archive)
4.4 App Review — permissions
App Review тягнеться 3-7 днів зазвичай, але ads_read часто apprоving за 24 год якщо use case зрозумілий
- [ ] App Review → Permissions and Features → Request Advanced Access:
ads_read — "Read ad account and campaign data for internal audit"
business_management — "Read Business Manager assets (ad accounts, pages) for internal reporting"
- [ ] Для кожного описати use case:
Use case: Internal performance audit tool for our own and client Ad Accounts
managed by Delta Medical. We read campaign structure, spend, impressions,
conversions to generate weekly reports for account managers. Read-only
access, no writes, no user-facing UI, internal tool only.
- [ ] App Review → Submit for Review
Phase 5 — System User "graph-reader" (найважливіша частина)
Це той System User, якого ти і для PowerBI теж можеш використовувати.
5.1 Створення System User
- [ ] business.facebook.com → Business Settings → Users → System Users → Add
- [ ] Name:
graph-reader
- [ ] System User Role: Employee (достатньо для read, не давай Admin де не треба)
- [ ] Create
5.2 Assign Assets
- [ ] У списку System Users обери
graph-reader → Add Assets
- [ ] Ad Accounts:
- Обери всі акаунти які потрібно читати
- Role: Analyst (read-only) — не давай Advertiser і тим паче Admin
- [ ] Apps:
- Додай
delta-graph → Role: Developer
5.3 Generate Token
- [ ] На сторінці
graph-reader → Generate New Token
- [ ] App: delta-graph
- [ ] Scopes:
- ✅
ads_read
- ✅
business_management
- ❌ НЕ додавай
ads_management (це write!)
- [ ] Token Expiration: Never
- [ ] Generate → ВАЖЛИВО: токен показують 1 раз, одразу скопіюй
5.4 Зберегти в passepartout
На сервері:
cat > /srv/passepartout/meta/graph-reader-token-2026-04-22.txt <<'EOF'
EAAxxxxxx... (сюди токен, одним рядком)
EOF
chmod 600 /srv/passepartout/meta/graph-reader-token-2026-04-22.txt
cat > /srv/passepartout/meta/graph-reader-token-2026-04-22.meta <<'EOF'
# Meta System User Token — graph-reader
**System User:** graph-reader (у BM "Delta Medical")
**App:** delta-graph (App ID: XXXXXXXXXXXX)
**Scopes:** ads_read, business_management
**Expires:** Never
**Створено:** 2026-04-22
**Використовують:**
- Market Research Auto (FB Ad Library)
- Meta Ads Audit (google-ads-crew → meta extension)
- PowerBI скрипт Сергія (після міграції)
**Ротація:** превентивно кожні 90 днів (наступна: 2026-07-22)
**Як ротувати:** BM → Users → System Users → graph-reader → Generate New Token → revoke old
EOF
Або скинь мені токен через Telegram — я сам покладу з правильними правами.
Phase 6 — App "delta-threads" (Pediatric News) — пізніше
Робити тільки після того як delta-graph живий і BV verified. Threads окремий трек.
- [ ] developers.facebook.com/apps → Create App → Type: Consumer (не Business!)
- [ ] Name:
delta-pediatric-threads
- [ ] Add Product: Threads API
- [ ] App Review для
threads_basic + threads_content_publish — довгий, 1-2 тижні, детальний опис use case: "Automated publishing of educational pediatric health content, 3 posts/day, medical audience, no user-generated content"
- [ ] System User
threads-publisher (Admin role потрібен для publish, не Analyst)
- [ ] Assets: Threads профіль
@smart_pediatric_news
- [ ] Token → passepartout
/srv/passepartout/meta/threads-publisher-token-2026-04-XX.txt
Phase 7 — Міграція PowerBI скрипта на System User
Робити одразу після Phase 5 — щоб захистити поточну роботу.
7.1 Що потрібно
- Знати який scope зараз використовує PowerBI скрипт (ads_read найпевніше)
- Знати через який App він авторизований (скоріш за все — через стандартний "Power BI Connector" App)
7.2 Якщо Power BI використовує Microsoft's built-in Facebook connector
- [ ] Power BI connector читає Graph API через User Token. Треба замінити на System User Token:
- Edit query source → Advanced Editor
- Знайди рядок типу
access_token=... у Web.Contents URL
- Замінити на
graph-reader token
- Альтернативно: створити Power BI Dataflow, який ходить через custom M-query з нашим токеном
7.3 Якщо скрипт кастомний (Python/ETL)
- [ ] Замінити env-змінну
FB_TOKEN на вміст /srv/passepartout/meta/graph-reader-token-2026-04-22.txt
- [ ] Перевірити що scope'и scripta збігаються з scope'ами System User
- [ ] Прогнати smoke-test: один запит на
/act_{id}/insights — має повернутись 200 з даними
7.4 Test & cutover
- [ ] Запустити скрипт з новим токеном паралельно зі старим (2 дні)
- [ ] Порівняти результати → якщо match → вимкнути старий токен (revoke у твоєму FB settings)
Phase 8 — Моніторинг (налаштувати одразу)
Швидкі посилання
- Business Manager: https://business.facebook.com
- Developer Portal: https://developers.facebook.com/apps
- Graph API Explorer (для тестів): https://developers.facebook.com/tools/explorer
- Marketing API docs: https://developers.facebook.com/docs/marketing-apis
- Threads API docs: https://developers.facebook.com/docs/threads
- Rate limit docs: https://developers.facebook.com/docs/graph-api/overview/rate-limiting
❓ Питання до Сергія перед стартом
- BM name — точна назва юрособи для BV: ТОВ Дельта Медікал Промоушнз Україна чи інша?
- Ad Accounts — список ID (формат
act_1234567890) які додаємо в BM одразу?
- Privacy/Terms URL — medizine.ua/privacy є чи треба створити? Меті це треба для App Review.
- PowerBI скрипт — де живе (сервер, Power BI Service, локальний)? Хто супроводжує? Я можу допомогти зі зміною, але потрібен доступ.
- Threads акаунт @smart_pediatric_news — уже існує, переведений на Business і прив'язаний до Instagram?
Time budget (реалістичний)
| Phase |
Твій час |
Meta-wait |
Можна робити паралельно з |
| 1 BM |
10 хв |
— |
— |
| 2 Ad Accounts |
20 хв |
— |
— |
| 3 BV |
15 хв upload |
2-10 днів |
Phase 4-5 |
| 4 App delta-graph |
30 хв |
App Review 1-3 дні |
Phase 5 |
| 5 System User |
15 хв |
— |
— (залежить від 4) |
| 7 PowerBI міграція |
1 год |
— |
— |
| 6 Threads App |
1 год |
BV + App Review 1-2 тижні |
— |
| 8 Моніторинг |
30 хв |
— |
— |
Realistic total: основні Ads-інтеграції робочі за 3-5 днів. Threads — 2-3 тижні через App Review.
Скидай мені App ID/Secret/Token коли готові — я розкладу по passepartout з правильними .meta та протестую підключення.