ADR
ADR: Интеграция Яндекс.Директ → Кампании ЭкоСпроса
ADR: Интеграция Яндекс.Директ → Кампании ЭкоСпроса
Status: Proposed Date: 2026-06-26 Context: В аккаунте ecoyarco@yandex.ru 19 кампаний (15 в архиве, 3 черновика B2B/B2C/RET, 1 ЕПК). Черновики уже имеют структуру групп объявлений. Необходимо привязать офферы ЭкоСпроса к кампаниям Директа.
Decision
1. Сущность DirectCampaign в domain.ts
Расширяем Campaign — добавляем поля для привязки к Яндекс.Директ:
export interface DirectCampaign {
id: string; // Внутренний ID ЭкоСпроса
directCampaignId: number; // ID кампании в Яндекс.Директе
name: string;
status: 'draft' | 'active' | 'paused' | 'archived' | 'moderation';
type: 'TEXT_CAMPAIGN';
state: 'OFF' | 'ON' | 'ARCHIVED';
offerIds: string[]; // Какие офферы в этой кампании
adGroupIds: number[]; // Группы объявлений в Директе
budgetPerDay?: number;
startDate?: string;
stats?: {
impressions: number;
clicks: number;
spend: number;
lastSync: string;
};
}
2. Маппинг Оффер → Кампания
| Мета-продукт | Офферы | Кампания | Группы |
|---|---|---|---|
| Станок для начинающих | O_a17c, O_a409 | B2C | NovichkiStart, PremiumStart |
| Инструмент для регулярного творчества | O_6318, O_0333 | B2C | Opytnye |
| Идеальный подарок | O_206b, O_5182, O_6ccf | B2C | Podarki |
| Все офферы | все | B2B | По сегментам B2B |
| Все офферы | все | RET | Брошенные корзины, Просмотр |
3. API слой
Создать /apps/web/src/lib/directBridge.ts — обёртка над API Яндекс.Директа v5:
getCampaigns()— список кампанийgetAds(campaignId)— объявления по кампанииgetKeywords(adGroupIds)— ключевые словаupdateCampaign(campaign)— обновлениеgetStats(campaignIds)— статистика через /stat/reports
4. UI — страница /campaigns
Превращаем mock → live:
- Отображение реальных кампаний из Директа
- Фильтр по статусу (архив / черновик / активные)
- Карточка кампании: статистика, офферы, статус
- Привязка офферов через модалку
5. Отложено (Phase 2)
- Создание кампаний из интерфейса ЭкоСпроса
- Автоматическое обновление объявлений из marketing_assets
- Динамическая синхронизация оффер → объявление → лендинг
Consequences
- + Единая точка входа для управления всей рекламой
- + Офферы и кампании в одной системе → понятно, что работает
- + Возможность анализировать эффективность каждого оффера
- – Требуется OAuth-токен и его поддержка в актуальности
- – API Яндекс.Директа имеет ограничения (rate-limit, поля)
References
docs/reports/direct-campaigns-status-2026-06-26.md— актуальный списокapps/web/src/types/domain.ts— типыapps/web/src/data/mockCampaigns.ts— существующие mock-данные- API v5 Яндекс.Директа