﻿---
title: Реестр UTM-ссылок
description: "Инструмент на Laravel + Filament: конструктор UTM-ссылок по утверждённым справочникам, библиотека ссылок по кампаниям и поиск устаревших ссылок."
---

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

Инструмент для всех, кто создаёт рекламные и партнёрские ссылки: маркетологов, контент-команды, подрядчиков и новых сотрудников, а также для аналитиков, которые потом разбирают трафик. Он делает две вещи: собирает UTM-ссылки только из утверждённых значений и хранит все созданные ссылки в одной библиотеке. Анализ того, какой канал привёл лида, — задача других инструментов; здесь разметка создаётся правильно с самого начала.

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

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

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

- **Собирает ссылку из справочников.** Source, medium и campaign выбираются из утверждённых списков, свободного ввода для них нет; остальные метки проверяются по шаблону.
- **Хранит библиотеку ссылок.** Каждая ссылка привязана к кампании, у неё есть автор, дата создания и целевая страница; поиск работает по кампании, каналу и автору.
- **Показывает активность ссылок.** Переходы и дата последнего визита подтягиваются из веб-аналитики, если она отдаёт эти данные через API.
- **Находит устаревшие ссылки.** Ссылки без переходов за 90 дней попадают в список «Неактивные», где их архивируют или удаляют.
- **Даёт аналитикам готовые срезы.** Сохранённые представления по кампаниям избавляют от прокрутки тысяч чужих ссылок.

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

- **Справочники меняют без доработки.** Новое значение source или medium добавляет администратор в настройках, и оно сразу появляется в выпадающем списке. Кто и когда добавил значение, фиксируется.
- **Старую таблицу нужно закрыть.** Все существующие ссылки переносят в реестр одним импортом при запуске, а таблицу закрывают для правки. Две параллельные системы сводят смысл инструмента на нет.
- **Импорт выявляет старые ошибки.** При переносе ссылки с нестандартными значениями не отбрасывают, а помечают к исправлению, чтобы видеть масштаб проблемы.
- **Ссылка без кампании и автора не сохраняется.** Иначе при странных данных в аналитике не у кого спросить, откуда взялась ссылка.
- **Клики зависят от аналитики.** Если веб-аналитика не отдаёт переходы по меткам, колонку активности оставляют пустой с пометкой, а не нулём.
- **Доступ ограничивают на сервере.** Маркетологи создают и правят ссылки, аналитики только читают библиотеку и отчёты, справочники меняет только администратор.
- **Когда хватит готового продукта.** Для небольшой команды достаточно общего шаблона в таблице с выпадающими списками или готового сервиса коротких ссылок с UTM-конструктором.

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

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

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

```text
Создай модели и миграции для реестра UTM-ссылок: UtmValue (тип: source,
medium; значение; кто добавил; дата), Campaign (код кампании, название,
владелец), UtmLink (кампания, автор, целевая страница, source, medium,
content, term, итоговая ссылка, переходы, дата последнего визита, статус,
отметка «Требует исправления»). Добавь фабрики с демо-данными.
```

### 2. Конструктор ссылки

```text
Сгенерируй Filament-ресурс для UtmLink. В форме source и medium выбираются
только из UtmValue, campaign берётся из кода выбранной кампании, content
и term проверяются по шаблону из конфига. Итоговую ссылку собирай
автоматически и показывай с кнопкой копирования. Кампания и автор
обязательны.
```

Проверьте, что ссылку с произвольным source нельзя сохранить ни через форму, ни через импорт.

### 3. Библиотека и импорт

```text
Добавь в таблицу ссылок поиск и фильтры по кампании, каналу, автору
и статусу, вкладки «Мои ссылки» и «Неактивные»: нет переходов за число
дней из конфига. Сделай импорт CSV со старыми ссылками: значения вне
справочника помечай «Требует исправления».
```

### 4. Переходы из веб-аналитики

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

Проверьте, что ссылки без данных из аналитики не попадают в список «Неактивные» как ссылки с нулём переходов.

### 5. Роли и справочники

```text
Настрой роли: маркетолог создаёт и правит ссылки, аналитик только читает
библиотеку и может выгружать, администратор управляет справочником
UtmValue. Ограничение проверяется на сервере. Добавь виджет доли ссылок
с отметкой «Требует исправления».
```

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

- [Атрибуция лидов](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/lead-attribution-dashboard.md) — как размеченный трафик превращается в распределение лидов и сделок по каналам.
- [Мониторинг конверсии воронки](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/funnel-conversion-monitor.md) — где неразмеченный трафик искажает картину воронки.
- [Дашборд кампаний](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/campaign-dashboard.md) — проверка готовности кампании к запуску, включая полноту меток.

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

- [Refine: UTM Tracker](https://refine.dev/use-cases/marketing/utm-tracker/)
- [Filament 4.x: ресурсы](https://filamentphp.com/docs/4.x/resources/overview)
- [Filament 4.x: поле выбора](https://filamentphp.com/docs/4.x/forms/select)
- [Filament 4.x: импорт](https://filamentphp.com/docs/4.x/actions/import)
- [Filament 4.x: фильтры таблиц](https://filamentphp.com/docs/4.x/tables/filters/overview)