Files
portal/docs/marketing/README.md
T

139 lines
9.9 KiB
Markdown
Raw Normal View History

# C1 Marketing Tooling — Home Doc
**Раздел карты:** C1 «Маркетинг и привлечение»
**Версия:** 1.0 от 22.05.2026
**Кросс-ссылки:** [Tooling §4.4958](../Tooling_v8_3.md) · [ADR-015](../adr/015-marketing-tooling.md) · [Spec](../superpowers/specs/2026-05-22-c1-marketing-tooling-design.md) · [Plan](../superpowers/plans/2026-05-22-c1-marketing-tooling.md) · [marketing-vet.md](../security/marketing-vet.md)
---
## Карта раздела — 10 узлов (#74–83)
| # | Узел | Категория | Описание |
|---|---|---|---|
| 74 | **analytics-dashboard** (reuse #19 Superpowers + #10 Boost) | reuse | Анализ конверсий воронки и когорт прямо из кода/БД через Boost — без нового инструмента |
| 75 | **seo-content** (reuse #66 laravel-backend-patterns + #60 context7) | reuse | SEO-метаданные в роутах Laravel, структурированные данные; context7 для актуальных стандартов |
| 76 | **utm-tracking** (reuse #47 openapi-mcp-server) | reuse | UTM-параметры через OpenAPI-спеку портала — обогащение сделок источником трафика |
| 77 | **ad-creative** (reuse #46 Design plugin + #45 Universal Icons MCP) | reuse | Генерация креативов и UX-копирайт для рекламных материалов |
| 78 | **marketing-metrika** | analytics | Яндекс Метрика MCP — посещаемость, источники, конверсии (READ-ONLY) |
| 79 | **marketing-wordstat** | research | Яндекс Wordstat MCP — ключевые слова, поисковый спрос РУ-рынка (Wordstat only) |
| 80 | **marketing-telegram** | social | Telegram MCP — публикации, планирование и аналитика Telegram-каналов Лидерры |
| 81 | **marketing-postiz** | social | Postiz MCP — кросс-постинг в соцсети (self-hosted AGPL; **DEFERRED до self-host**) |
| 82 | **marketing-dataforseo** | research | DataForSEO API MCP — SERP/SEO аналитика (**DEFERRED**, платный, post-Б-1) |
| 83 | **marketing-unisender** | email | Unisender Go MCP — email-рассылки (**DEFERRED**, обёртка не готова; SMTP уже в стеке) |
---
## Что ставим сейчас vs DEFERRED
### Установлено / проволочено в `.mcp.json` (Task 4)
| # | Инструмент | npm-пакет | Статус в `.mcp.json` |
|---|---|---|---|
| 78 | Yandex Metrika MCP | `yandex-metrika-mcp` (MIT) | Активный entry `marketing-metrika` |
| 79 | Yandex Wordstat MCP | `yandex-wordstat-mcp` (MIT) | Активный entry `marketing-wordstat` |
| 80 | Telegram MCP | `github:chigwell/telegram-mcp` (Apache-2.0) | Активный entry `marketing-telegram` |
| 81 | Postiz MCP | `postiz-mcp` (лицензия под ветом) | Закомментированный skeleton `_comment_postiz_skeleton` |
**Что нужно от заказчика перед использованием #78/#79:**
1. Получить OAuth-токен на [oauth.yandex.ru](https://oauth.yandex.ru), приложение с доступом к Метрике/Директ (scope read-only).
2. Добавить в `.env.local` (gitignored): `YANDEX_OAUTH_TOKEN=y0_AgA...`
**Что нужно для #80 (Telegram):**
1. Зарегистрировать выделенный Telegram-аккаунт для Лидерры (не личный).
2. Получить `TELEGRAM_API_ID` и `TELEGRAM_API_HASH` на [my.telegram.org/apps](https://my.telegram.org/apps).
3. Сгенерировать `TELEGRAM_SESSION_STRING` один раз через GramJS или Telethon.
4. Добавить все три значения в `.env.local`.
### DEFERRED
| # | Причина отсрочки |
|---|---|
| 81 Postiz | Требует self-host `gitroomhq/postiz-app`; лицензия `antoniolg/postiz-mcp` не верифицирована (см. Open vet notes) |
| 82 DataForSEO | Платный API; активировать post-Б-1 (регистрация ООО, реквизиты) |
| 83 Unisender Go | SMTP уже настроен в стеке (фирменная почта liderra.ru); отдельная MCP-обёртка — отдельный ADR |
---
## Постура безопасности
### #78 Metrika — READ-ONLY analytics
- OAuth-токен запрашивается с минимальными правами: `y.metrika.direct.read` (чтение Метрики).
- **Никаких мутирующих вызовов** через MCP: цели, фильтры, настройки счётчиков — только через Яндекс UI.
- Токен хранится в `.env.local` (gitignored), не в `.mcp.json`.
### #79 Wordstat — Wordstat only, без Direct-мутаций
- IS9-постура: Wordstat-инструменты (keyword research, trends) разрешены.
- **Direct-инструменты мутации** (создание кампаний, изменение ставок, управление объявлениями) — **запрещены** (MKT8: нет автоматических трат рекламного бюджета без явного подтверждения заказчика).
- Один OAuth-токен на #78 и #79 — read-only scope достаточен для обоих.
### #80 Telegram — выделенный аккаунт (MKT8)
- Session String — эквивалент полного доступа к аккаунту. Хранить только в `.env.local`.
- **Обязателен выделенный аккаунт Лидерры**, не личный аккаунт Дмитрия: если SESSION_STRING утечёт — только бизнес-аккаунт под угрозой.
- Публикации в Telegram-каналах через MCP — только после явного подтверждения содержания.
### #81 Postiz — internal-only, AGPL-3.0
- `gitroomhq/postiz-app` лицензирован AGPL-3.0: использование разрешено для внутренних нужд Лидерры без изменения кода.
- **Запрещено**: модифицировать исходный код Postiz без публикации изменений (AGPL требование).
- `antoniolg/postiz-mcp` лицензия — под ветом (см. ниже).
---
## Postiz self-host инструкция
Когда будет готово (после Б-1 и верификации лицензии):
```bash
# 1. Клонировать репозиторий
git clone https://github.com/gitroomhq/postiz-app
cd postiz-app
# 2. Запустить через Docker Compose (рекомендуемый способ)
cp .env.example .env
# Отредактировать .env: DATABASE_URL, REDIS_URL, JWT_SECRET, BACKEND_INTERNAL_URL
docker-compose up -d
# 3. Открыть UI на http://localhost:5000, создать аккаунт
# 4. Подключить соцсети (VK, Telegram, Instagram и др.) в разделе Integrations
# 5. Получить API Key в настройках Postiz
# 6. Добавить в .env.local:
# POSTIZ_API_URL=http://localhost:5000
# POSTIZ_API_KEY=<ключ из Postiz UI>
```
Документация Postiz: [docs.postiz.com](https://docs.postiz.com)
Для активации MCP-entry — раскомментировать `_comment_postiz_skeleton` в `.mcp.json` согласно инструкции внутри.
> AGPL-3.0 обязательства: Лидерра использует Postiz в исходном виде для внутренних нужд (self-hosted). Никаких модификаций исходного кода без публикации изменений. Внешним пользователям SaaS не предоставляется.
---
## Open vet notes
| Риск | Статус | Действие |
|---|---|---|
| `antoniolg/postiz-mcp` лицензия | **NOT VERIFIED** | Перед активацией: проверить `LICENSE` файл в репозитории [github.com/antoniolg/postiz-mcp](https://github.com/antoniolg/postiz-mcp); если MIT — активировать; если AGPL/GPL — консультация юриста |
| `telegram-mcp` npm-пакет (0.1.20, Proprietary) | Не использован | Используем `github:chigwell/telegram-mcp` (Apache-2.0) напрямую, не npm-вариант |
| Yandex OAuth широкий scope | Низкий | Scope `y.metrika.direct.read` — только чтение; Директ-мутации через MCP вне постуры |
| SESSION_STRING утечка | Средний | Хранить только в `.env.local` (gitignored); ротировать при подозрении |
---
## Cross-refs
- **Tooling Прил. Н §4.49–58** — полный реестр 10 узлов C1 с 9-атрибутными блоками
- **ADR-015** — решения интеграции C1 (IS1–IS9 маркетинг-вет, MKT1–MKT8 ограничения)
- **Spec** — `docs/superpowers/specs/2026-05-22-c1-marketing-tooling-design.md`
- **Plan** — `docs/superpowers/plans/2026-05-22-c1-marketing-tooling.md`
- **marketing-vet.md** — `docs/security/marketing-vet.md` — провенанс-вет каждого внешнего инструмента
- **routing-off-phase.md** — задача «маркетинг-аналитика» → `marketing-metrika`; «ключевые слова» → `marketing-wordstat`; «Telegram-канал» → `marketing-telegram`
- **PSR_v1 R10.1** — реестр off-phase инструментов (блок 1 C1-категория)
- **Pravila §13.2** — off-phase marketing-tooling абзац