Что болело до этого
Половина спора на отчёте это спор о словах. Клиент говорит «прибыль» и имеет в виду выручку. Агентство говорит «доход» и имеет в виду ровно то же самое. Дальше обе стороны обсуждают цифры, посчитанные по разным правилам.
Вторая боль: отчёт выглядит хорошо, денег в кассе нет. Мы собрали тринадцать настоящих жалоб с планёрок и созвонов и сделали из них раздел диагностики.
Третья боль оказалась нашей собственной. Ревизия задач двумя ролями, финдиром и маркетологом агентства, показала: в треке для новичков не было ни одной задачи про деньги владельца. Ни CPO, ни ROMI, ни ДРР. Зато восемь задач про показы, охваты и CPM, четыре из них повторяли друг друга.
Четвёртое. По запросу «маркетинговые метрики» в поиске лежат статьи-словари. Прочитать можно, посчитать свою ситуацию нельзя.
- «CTR высокий, продаж нет»
- «Лидов много, денег нет»
- «ROMI в отчёте плюс, кассы нет»
- «Директ показывает 100 конверсий, в CRM 40»
- «Отдел продаж говорит: лиды мусорные»
Что собрали
Страница поделена на пять зон: метрики, тренажёр, калькулятор, диагностика, справочник. У каждой зоны свой фон и сквозной номер, чтобы человек всегда понимал, где он находится.
- Тренажёр из 143 задач в четырёх треках: новичок, собственник, маркетолог, клиентские кейсы. У задачи четыре варианта, формула, пошаговое решение и вывод «зачем это знать бизнесу». Разбор проходит по всем вариантам: «1 500 ₽ выходит, если взять только кабинет и забыть про работу агентства и сервисы»
- Справочник из 59 метрик: расшифровка, формула, пример в рублях, частая ошибка расчёта. Фильтры по семи темам и по роли читателя
- Таблица девяти показателей, по которым принимают решения: CR, CPL, CPO, CAC, LTV, окупаемость привлечения, ДРР, ROAS, ROMI. Каждый кликается и ведёт в свою карточку
- Калькулятор юнит-экономики на шести ползунках. На выходе CAC, LTV в валовой прибыли, LTV/CAC, срок окупаемости, ДРР, ROAS, ROMI, шкала окупаемости и вердикт словами
- Три интерактивные воронки. В денежной есть ступень «прибыль после маркетинга», которой нет в бухгалтерии: она показывает, сколько маркетинг съел от маржинальной прибыли
- Диагностика по симптому: 13 жалоб, у каждой связка «что смотрим / в чём причина / что чиним»
- Блок «Обозначения»: 16 денежных терминов с формулой, примером и графой «путают с». Это канон страницы, по нему выровнен весь остальной текст
- Раздел UTM: таблица пяти параметров и конструктор ссылок на 10 пресетов с транслитерацией
- Разбор по темам на вкладках, FAQ из 20 вопросов, две темы оформления, адаптив от телефона до мониторов шире 2300 px
Позиций, трафика и числа пользователей в этом кейсе нет, и вот почему. Страница живёт на демо-домене агентства, а он целиком закрыт от индексации серверным заголовком. Счётчиков посещаемости на странице нет ни одного, прогресс тренажёра хранится только в браузере человека и на сервер не уходит. Брать такие цифры физически неоткуда, придумывать их мы не станем. Поисковая часть работы (микроразметка, семантика, карта сайта, llms.txt) собрана и ждёт переезда на основной домен: он привязан к уходу сайта с Тильды. Чеклист переезда из восьми пунктов уже написан, результат будем считать после него.
Как устроено внутри
Страницу руками не правят. Есть один шаблон и семь файлов данных: задачи, метрики, ключевые показатели, воронки, глоссарий, UTM, вопросы. Генератор на Python в 834 строки подставляет данные в шаблон и собирает готовый файл вместе с картой сайта.
Главный приём: одни и те же данные идут и в видимый текст, и в микроразметку Schema.org. Расхождение между тем, что читает человек, и тем, что читает робот, становится невозможным. Количество задач, метрик и терминов нигде не написано руками, числа подставляются метками и склоняются по-русски. В конце сборки идёт проверка, что незаполненных меток не осталось.
Второй приём: задачи лежат в HTML ровно один раз. Тренажёр читает их из data-атрибутов списка «Все задачи с решениями». Один список работает сразу как текст для поисковика, как материал для разбора на созвоне и как источник данных для интерактива. Дублирующего JSON на странице нет вообще. Без этого приёма версия на 122 задачах весила 830 КБ.
Сейчас собранный файл весит 885 КБ, в gzip 177 КБ, и содержит весь контент без подгрузок. Длину держим порциями: задачи по 10 с кнопкой «показать ещё», метрики по 12, справочные разделы во вкладках, диагностика и FAQ аккордеонами. Внешних JS-библиотек ноль: ни GSAP, ни jQuery, ни счётчиков. Единственная внешняя ссылка это шрифты.
Грабли, на которые наступили
Собрали по истории правок и по собственным проверкам. Полезнее всего оказались первые три.
- Вырезали секцию по маркерам-комментариям и утащили вместе с ней границу зоны. На живом сайте ссылка «Тренажёр» повела в никуда, нумерация зон пошла 01, 03, 04, 05, тренажёр потерял свой фон. Коварство в том, что баланс тегов при этом сошёлся, и обычная проверка ничего не увидела. Теперь после структурной правки проверяем три вещи отдельно: якоря против списка существующих id, число открытых обёрток зон против закрывающих, нумерацию подряд
- Поправили варианты ответа и забыли пересчитать индекс правильного: верным ответом стал случайный вариант. Поймал агент в роли финдира на задаче про окупаемость. Правило: индекс сверяем по тексту ответа, память здесь не работает
- Семь из одиннадцати ссылок из таблиц в справочник молча не работали. Карточки CAC, LTV, ДРР, ROAS, ROMI лежали в скрытой порции «показать ещё», и клик по якорю просто ничего не делал. Починили функцией, которая сначала раскрывает порцию, потом доводит до карточки и подсвечивает её
- Слияние пяти справочных секций во вкладки убило пять заголовков с поисковыми фразами. Вывод: сворачивая секции в табы, заголовки опускаем на уровень ниже внутрь панелей
- Заголовок внутри кнопки аккордеона невалиден и не попадает в дерево доступности. Переделали по паттерну ARIA: заголовок снаружи, кнопка внутри. Фолбэк без JS через класс на body мигал, ушли на @media (scripting: none)
- Первый экран пугал не ту аудиторию: в мокапе стояла задача уровня «собственник» с ROAS и валовой прибылью. Заменили на самую простую, про цену заявки
- Файл llms.txt правится руками и уже отстал от страницы: говорит про три уровня при четырёх треках и про «более тридцати показателей» при 59. Ровно та болезнь, ради которой и делали генератор
Сколько это заняло
Двое суток от первого коммита до текущего состояния, 27 коммитов по папке проекта. На живой адрес выложили в первый же день и дальше правили уже на живом.
Внутри этих двух суток шесть волн переработки, все по замечаниям. Рост с 40 задач до 143. Разбор четырьмя ролями: маркетолог агентства, финдир, редактор, SEO. Ревизия актуальности двумя ролями: 243 решения по 122 задачам, после неё убрали 9 смысловых дублей, 12 задач перенесли в другой трек, 25 переписали, 20 добавили. Наведение единой денежной терминологии дало 72 замены после двух независимых финдиров и двух терминологов. В финале страницу сократили примерно на четверть.
Отдельная грабля про организацию работы. Одному агенту поручили свести 243 решения ревизоров в план целиком: он писал ответ больше 25 минут и не доехал. Ту же работу разбили на три партии и получили результат за 8 минут.
Частые вопросы
Сколько стоит доступ к тренажёру?
Нисколько. Это бесплатный контент-проект L7, он лежит по адресу marketing.l7agency.ru/metriki/ и открыт всем. Регистрации нет: прогресс по 143 задачам хранится в вашем браузере и на сервер не уходит.
Какие метрики можно посчитать прямо на странице?
Калькулятор юнит-экономики работает на шести ползунках. На выходе он даёт CAC, LTV в валовой прибыли, LTV/CAC, срок окупаемости, ДРР, ROAS и ROMI, плюс вердикт словами. Рядом лежит справочник из 59 метрик: расшифровка, формула, пример в рублях и частая ошибка расчёта.
Чем это отличается от статей со списком метрик?
По запросу «маркетинговые метрики» в поиске лежат словари: прочитать можно, посчитать свою ситуацию нельзя. Здесь у каждой из 143 задач есть формула, пошаговое решение и разбор всех четырёх вариантов ответа. Задачи разложены по четырём трекам: новичок, собственник, маркетолог, клиентские кейсы.
У меня заявок много, а денег нет. Тренажёр поможет?
Для этого сделан раздел диагностики по симптому. Мы собрали 13 настоящих жалоб с планёрок и созвонов, у каждой связка «что смотрим / в чём причина / что чиним». Там же денежная воронка со ступенью «прибыль после маркетинга»: она показывает, сколько маркетинг съел от маржинальной прибыли.
Страница тяжёлая, на телефоне откроется?
Откроется. Собранный файл весит 885 КБ, в gzip 177 КБ, и содержит весь контент без подгрузок. Внешних JS-библиотек ноль: ни GSAP, ни jQuery, ни счётчиков. Задачи выдаются порциями по 10, вёрстка тянется от телефона до мониторов шире 2300 px.
