﻿---
title: Дашборд кампаний
description: "Дашборд на Laravel + Filament: реестр кампаний со статусом, владельцем, согласованиями и результатами по каждой кампании во всех каналах."
---

## Что это за сервис

Рабочий инструмент для маркетологов, которые ведут кампании, и для руководителя, которому нужно видеть весь портфель запусков. Единица учёта здесь — кампания: от подготовки и согласования до запуска, оптимизации и итогов.

Без такого сервиса результаты кампании собирают по веб-аналитике, рекламным кабинетам и таблицам, и цифры конверсий в них не совпадают. При передаче кампании от контента к рекламе теряются ответственный и состояние согласований, а решения об оптимизации принимаются по выгрузке прошлой недели.

Инструмент особенно полезен, когда кампании идут одновременно в нескольких каналах, а подготовку ведут разные люди: контент готовит материалы, реклама запускает объявления, руководитель согласует бюджет. Дашборд даёт им одну запись о кампании вместо цепочки сообщений.

## Что он делает

- **Ведёт реестр кампаний.** У каждой кампании есть владелец, этап, каналы, даты, бюджет и цель, а статусы задают понятный порядок: подготовка, согласование, запуск, оптимизация, итоги.
- **Показывает результаты по кампании.** Лиды, конверсии, расходы и стоимость результата из разных каналов сводятся к одной кампании по единой методике подсчёта.
- **Сохраняет контекст при передаче.** Смена владельца, согласования и заметки об оптимизации остаются в карточке, а не в переписке.
- **Проверяет готовность к запуску.** Кампания без обязательных UTM-меток, владельца или согласования попадает в список «Не готова к запуску».
- **Даёт командам свои представления.** Реклама видит расходы и окупаемость, контент — статусы материалов и креативов, руководитель — весь портфель.

## Нюансы и особенности

- **Схема именования — с первого дня.** Кампании, чьё имя не соответствует шаблону, отклоняются при загрузке или помечаются к исправлению, иначе одна кампания распадётся на несколько строк.
- **Методика атрибуции задаётся до дашборда.** Правило (последнее касание, первое касание, собственное) применяют при загрузке данных. Дашборд показывает результат этого правила одинаково во всех строках и не пересчитывает его на лету.
- **Внешние системы остаются.** Веб-аналитика и рекламные кабинеты не заменяются: дашборд читает их через API или выгрузки и добавляет слой учёта кампаний поверх них.
- **Новый канал — это запись, а не доработка.** Канал хранится как справочник; новое значение сразу появляется в фильтрах и графиках.
- **Темп расходов здесь только сигнал.** Дашборд может показать, что кампания тратит быстрее плана, но ежедневный контроль бюджета по каналам — отдельный инструмент.
- **Доступ ограничивают на сервере.** Командам показывают разные наборы колонок, но фильтрация строк по ролям работает в запросах, виджетах и выгрузках, а не только в интерфейсе.
- **Когда хватит готового продукта.** Если все кампании идут в одном рекламном кабинете, а согласований нет, его собственных отчётов может быть достаточно.

## Как сгенерировать через ИИ-агентов

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным **Filament 4.x**. Отправляйте их по одному: каждый шаг даёт результат, который можно проверить до перехода к следующему.

### 1. Данные и модели

```text
Создай модели и миграции для дашборда кампаний: Campaign (название,
нормализованный код, владелец, этап, цель, бюджет, даты начала и конца),
Channel (справочник каналов), CampaignChannel (кампания, канал, UTM-метки),
CampaignResult (кампания, канал, дата, лиды, конверсии, расходы, источник,
время загрузки), OwnerChange (кампания, от кого, кому, дата, комментарий).
Добавь фабрики с демо-данными.
```

### 2. Карточка кампании

```text
Сгенерируй Filament-ресурс для Campaign. В карточке покажи этап, каналы
с UTM-метками, результаты по каналам, историю смены владельца
и согласований через relation managers. Смену этапа выполняй действием
с обязательным комментарием.
```

### 3. Таблица, фильтры и проверка готовности

```text
Добавь в таблицу кампаний фильтры по каналу, этапу, владельцу и периоду,
вкладки «Мои кампании», «Не готова к запуску» и «Идут сейчас».
Кампания не готова к запуску, если у любого канала нет source, medium
или campaign в UTM-метках, нет владельца или согласования.
```

Проверьте, что кампания без меток не может перейти на этап «Запуск».

### 4. Загрузка результатов

```text
Сделай фоновую задачу по расписанию, которая загружает результаты
из рекламных кабинетов и веб-аналитики через их API или CSV, сопоставляет
строки с кампаниями по нормализованному коду, а несопоставленные строки
складывает в очередь разбора. Повторная загрузка не должна создавать дубли.
```

Проверьте, что строки, не сопоставленные с кампаниями, видны в очереди разбора, а не теряются молча.

### 5. Представления по ролям и виджеты

```text
Настрой роли: реклама видит расходы и окупаемость, контент — статусы
материалов, руководитель — всё и может выгружать данные. Ограничение
действует в таблицах, виджетах и экспорте. Добавь виджеты кампаний
по этапам и стоимости результата по каналам.
```

## Похожие сценарии

- [Темп рекламных расходов](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/paid-spend-pacing-dashboard.md) — ежедневное сравнение расходов с бюджетом по каналам; здесь же учёт кампании целиком.
- [Сводка маркетинговых показателей](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/analytics-overview.md) — общая картина по маркетингу поверх отдельных кампаний.
- [Генератор брифов кампаний](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/campaign-brief-generator.md) — подготовка и согласование кампании до запуска.

## Материалы и источники

- [Refine: Campaign Dashboard](https://refine.dev/use-cases/marketing/campaign-dashboard/)
- [Filament 4.x: ресурсы](https://filamentphp.com/docs/4.x/resources/overview)
- [Filament 4.x: связи и relation managers](https://filamentphp.com/docs/4.x/resources/managing-relationships)
- [Filament 4.x: фильтры таблиц](https://filamentphp.com/docs/4.x/tables/filters/overview)
- [Filament 4.x: виджеты](https://filamentphp.com/docs/4.x/widgets/overview)