UTM-трекер показывает, откуда пришёл заказ. Этот модуль показывает, сколько заказ стоил: сводит расходы на рекламу с продажами и считает ДРР, ROI и стоимость заказа по каждому каналу и каждой кампании.
Зачем он нужен
Владелец магазина платит за Директ, Авито, посевы у блогеров и SEO, а какая из этих статей окупается — считает в лучшем случае раз в квартал в Excel. Сервисы сквозной аналитики берут от 5 000 ₽ в месяц и требуют вебхуков и интеграций.
Модуль отвечает на три вопроса одним экраном:
- Сколько денег ушло в рекламу и сколько вернулось выручкой и прибылью — в целом и по каждой кампании.
- Какие кампании работают в минус: ДРР выше порога — строка подсвечена, её видно сразу.
- Сколько стоит заказ из каждого канала (CPO) и какой канал имеет смысл масштабировать.
Что считает
CPC, CPO, CR, ДРР, ROAS, ROMI и средний чек — за период, по каналам и по кампаниям, с сортировкой по любому столбцу и выгрузкой в CSV. Заказы и выкупы считаются раздельно и показываются рядом: разница между «заказали» и «забрали» — это недовыкуп, который съедает рекламный бюджет незаметно.
Прибыль — тремя способами на выбор: процент маржи (работает сразу), себестоимость из карточки товара (точнее), фиксированная сумма с заказа. Доставка из выручки вычитается — с ней ДРР выглядит лучше, чем есть.
Расходы без API и токенов
Модуль не подключается к рекламным кабинетам: не нужен OAuth, не нужны заявки на доступ к API, в магазине не хранится токен, которым можно управлять чужими деньгами. Расход попадает в модуль тремя способами:
- Файлом — CSV, TSV или XLSX из любого кабинета: Мастер отчётов Директа, ВК Реклама, Google Ads, Авито. Кодировка, разделитель и раскладка колонок определяются сами, раскладка сохраняется — вторая загрузка той же выгрузки занимает два клика. Повторная загрузка периода не задваивает строки, а обновляет. Любую загрузку можно откатить одной кнопкой.
- Вручную — день, канал, сумма. Если указать период, сумма разложится по дням: так вносят оплату блогеру за интеграцию.
- Правилом — «SEO-подрядчик 30 000 ₽/мес» заводится один раз и дальше раскладывается по дням само. Без таких правил отчёт показывает окупаемость рекламы, но не окупаемость маркетинга.
Откуда модуль знает источник заказа
Метки снимаются на самом сайте: utm-метки, идентификаторы кликов (yclid, gclid), источник перехода. Заказ связывается с кампанией по номеру или имени кампании из метки. Модель атрибуции — последний непрямой переход (как в Метрике), первый или последний переход; окно атрибуции настраивается, по умолчанию 90 дней.
Переходы без меток не выбрасываются: поиск, соцсети, прямые заходы и переходы с сайтов считаются отдельными каналами и стоят в отчёте рядом с рекламой — видно, какую долю продаж вообще делает платный трафик.
Если на магазине установлен модуль «Офлайн-конверсии Яндекс Метрики» (nkf_metrika), атрибуция берётся из него — два модуля не спорят за посетителя.
Отчёт не врёт
- Строка «Не распознано» показывается всегда. Это заказы, чьи метки модуль не смог разобрать, — мера качества разметки, а не мусор. Прятать её — значит рисовать красивый ДРР на половине данных.
- Кампания с расходом и без единого заказа остаётся в отчёте. Ради этой строки отчёт и открывают.
- Если по каналу с заказами давно не заводили расходы, отчёт предупреждает: ДРР по нему занижен. Рядом с итогами написано, какая доля дней периода покрыта расходами.
- Проверка разметки: модуль разбирает последние 200 заказов и говорит, сколько пришло с рабочими метками и что именно поправить в ссылках — с готовым шаблоном параметров для Директа.
Ещё в модуле
- График «расход против выручки» по дням.
- Фильтры: период, канал, магазин (мультистор поддерживается).
- Правила «источник → канал» редактируются: любой новый источник трафика раскладывается по своим каналам без обновления модуля.
- Смена настроек расчёта честно пересчитывает историю — пачками, кроном или кнопкой, с предупреждением в отчёте, пока пересчёт не закончен.
- Экспорт текущей выборки в CSV — открывается в Excel двойным кликом.
Ограничения
- Модуль не тянет расходы из кабинетов сам — выгрузку нужно загружать файлом либо заводить расходы правилами. Это осознанный размен: не нужны токены, модерация API и починка интеграции после каждого обновления кабинета.
- Атрибуция начинается с момента установки: заказы, оформленные до неё, попадают в «Не распознано» — источник задним числом восстановить не по чему.
Есть бесплатная версия
Посмотреть модуль на своих данных можно бесплатно: бесплатная версия собирает источники заказов полностью и показывает сводку и разрез по каналам, расходы в ней вносятся вручную и регулярными правилами. Платная добавляет разрез по кампаниям, загрузку расходов файлом из рекламного кабинета, выгрузку в CSV и мультистор.
Бесплатная версия модуля
Платная ставится поверх бесплатной обычной загрузкой архива: настройки и накопленные данные остаются на месте.
Технические детали
- Версия модуля: 1.0
- Совместимость: OpenCart 3.0.x, ocStore 3.0.x. PHP 7.0+, проверено на PHP 8.3.
- Установка штатная: загрузка ocmod-архива, обновление модификаторов, активация модуля.
- Работает на событиях OpenCart, ядро не патчится. Модификатор добавляет только пункт меню в «Отчётах».
- Свои таблицы в базе; чужие трекеры и счётчики не трогает. При удалении модуля накопленные данные сохраняются.
- Крон не обязателен: витрина пересчитывается кнопкой. Для автоматики — HTTP-адрес с секретом либо запуск из командной строки.
Что нового в версии 1.0
- Первый выпуск: отчёты «Сводка», «Каналы», «Кампании»; расходы файлом, вручную и правилами; атрибуция по меткам и переходам; проверка разметки; экспорт CSV; крон.