Сквозная аналитика без дорогих сервисов

Когда предприниматель слышит словосочетание «сквозная аналитика», перед глазами сразу встаёт счёт на 15 000 – 35 000 ₽ в месяц за подписку на Roistat, Calltouch или CoMagic плюс ещё 80 000 ₽ интеграторам за настройку. В результате малый и средний бизнес с рекламным бюджетом 100 000 – 400 000 ₽ в месяц откладывает аналитику «на потом» и продолжает управлять контекстной рекламой вслепую — по заявкам в кабинете, не зная, какие кампании реально приносят деньги в кассу, а какие генерируют пустые разговоры.

Хорошая новость: для 85% проектов в услугах и B2B платный комбайн сквозной аналитики на старте не нужен. Полноценную сквозную связку с точностью до ключевого слова и объявления можно собрать за один вечер абсолютно бесплатно — на базе стандартных UTM-меток, скрытых полей формы, вашей CRM (CRM) и одной сводной таблицы в электронной таблице.

В этом разборе пройдём весь путь руками: от захвата utm_source и ym_uid на сайте до сводного отчёта по окупаемости (ROMI и ДРР) каждого рекламного канала.

Коротко (TL;DR — за 30 секунд):

  • Сквозная аналитика — это не конкретный платный сервис, а метод связки рекламных расходов (AC) с реальными продажами и деньгами в CRM (Выручка / Маржа).
  • Как работает бесплатная схема из 4 шагов: 1) В рекламном кабинете и всех каналах стоит единый стандарт UTM-меток; 2) Скрипт на сайте сохраняет UTM и идентификатор визита счётчика в localStorage и передаёт их в скрытые поля формы заявки; 3) В карточке сделки в CRM менеджер проставляет статус «Успешно реализовано» и сумму чека; 4) Раз в неделю выгрузка из CRM + выгрузка расходов из рекламного кабинета сводятся через ВПР / SUMIFS в электронной таблицые.
  • Когда нужен платный сервис: только когда у вас более 50% обращений идут прямыми звонками с разных каналов (нужен динамический коллтрекинг) и больше 15–20 рекламных кампаний одновременно.

Видеоразбор на экране (27 минут)

[Сквозная аналитика без дорогих сервисов — схема на неделю]

  • 00:00 — Почему отчёт по целям в контекстной рекламе врёт про реальные деньги в кассе
  • 03:40 — Архитектура бесплатной сквозной аналитики на 1 схеме (UTM → Сайт → CRM → Sheets)
  • 07:15 — Шаг 1: Единый шаблон UTM-разметки для контекстной рекламы с динамическими параметрами
  • 11:00 — Шаг 2: Код JS-скрипта (15 строк), который сохраняет UTM даже при переходе по страницам сайта
  • 15:30 — Шаг 3: Как пробросить UTM и id_vizita в CRM и не потерять звонки
  • 20:10 — Шаг 4: Собираем сводную таблицу ROMI в электронной таблице за 10 минут по пятницам
  • 24:30 — Кейс: как бесплатная таблица нашла кампанию в рекламном кабинете, которая давала дешёвые лиды и 0 ₽ продаж

Оглавление

  1. Что такое сквозная аналитика на самом деле (и почему счётчика недостаточно)
  2. Когда бизнесу хватит бесплатной связки, а когда пора покупать сервис (Таблица)
  3. Пошаговая сборка бесплатной сквозной аналитики за 4 шага
  4. Как учитывать звонки и мессенджеры без дорогого динамического коллтрекинга
  5. Кейс на цифрах: как сквозная таблица сэкономила 115 000 ₽/мес в контекстной рекламе
  6. Готовый артефакт: JS-скрипт захвата меток и шаблон таблицы ROMI
  7. Частые вопросы (FAQ)

1. Что такое сквозная аналитика на самом деле (и почему счётчика недостаточно)

Обычная веб-аналитика (счётчик и рекламный кабинет) видит путь клиента только до момента отправки заявки на сайте: Показ объявления → Клик (CPC) → Визит на сайт → Достижение цели (CPA).

Что происходит с этой заявкой дальше — взял ли трубку клиент, прошёл ли квалификацию по бюджету, купил ли на 300 000 ₽ или сказал «я случайно нажал в игре на телефоне» — кабинет контекстной рекламы по умолчанию не знает.

Сквозная аналитика соединяет две половинки: данные о расходах из рекламных кабинетов и данные о реальных оплатах и марже из CRM. Она показывает главную таблицу бизнеса: сколько денег мы вложили в каждую конкретную кампанию/группу/ключевое слово и сколько чистой прибыли оттуда вытащили.


2. Когда бизнесу хватит бесплатной связки, а когда пора покупать сервис (Таблица)

Не каждому проекту нужно платить 250 000 ₽ в год за внешний сервис аналитики. Проверьте свой масштаб по этой таблице:

Критерий вашего бизнесаБесплатная связка (UTM + CRM + электронная таблица)Встроенная аналитика CRM + счётчик (Офлайн-конверсии)Платный сервис (платные сервисы сквозной аналитики)
Рекламный бюджет в месяцДо 300 000 – 500 000 ₽/месОт 200 000 до 1 000 000 ₽/месОт 700 000 – 1 000 000 ₽/мес и выше
Количество рекламных каналов1–3 канала (например: контекстная реклама + TG/соцсеть + SEO)2–4 канала с готовыми коннекторами к CRM5+ каналов, десятки аккаунтов, сложная мультиканальность
Доля звонков в обращенияхДо 30% (основной поток — формы, квизы, мессенджеры; для звонков — статика на канал)30–50% (базовый коллтрекинг внутри CRM или SIP-телефонии)60–90% трафика звонит напрямую по номеру (клиники, автодилеры, недвижимость) — нужен пул динамических номеров
Стоимость владения0 ₽/мес (20 минут работы маркетолога в пятницу)0 – 3 000 ₽/мес (входит в тариф CRM)15 000 – 50 000 ₽/мес + затраты на поддержку

3. Пошаговая сборка бесплатной сквозной аналитики за 4 шага

Соберём надёжную систему, которая не теряет метки при переходе пользователя по страницам сайта и передаёт их прямо в карточку сделки.

Шаг 1. Наводим порядок в UTM-метках (Единый стандарт)

Во всех кампаниях контекстной рекламы в поле ссылки обязательно прописываем единый хвост с динамическими макросами поиска:

https://ваш-сайт.ру/?метку источника&utm_medium=cpc&utm_campaign={campaign_id}_{campaign_name_lat}&utm_content={ad_id}_{source}&utm_term={keyword}

Что это даёт: в utm_campaign прилетит точный ID и название вашей кампании, в utm_content — ID объявления и площадка рекламная сеть ({source}), а в utm_term — конкретная ключевая фраза, по которой кликнул клиент.

Шаг 2. Сохраняем UTM-метки и id_vizita в localStorage браузера

Почему у 70% сайтов теряются UTM-метки в CRM? Потому что человек перешёл с рекламы на главную страницу (site.ru/?метку источника...), потом кликнул в меню «Цены» (site.ru/prices/) — в этот момент UTM-хвост из адресной строки исчез! — и оставил заявку со страницы цен. Если ваша форма берёт метки просто из текущего window.location.search, в CRM придёт пустое поле.

Решение: ставим на сайт крошечный JS-скрипт (см. раздел 6 ниже), который в первую секунду визита сохраняет все utm_* и идентификатор посетителя счётчика аналитики (id_vizita) в localStorage браузера и автоматически подставляет их в скрытые поля (<input type="hidden">) любой формы на сайте.

Шаг 3. Принимаем метки в CRM и фиксируем квалификацию + сумму сделки

В вашей CRM (CRM, CRM или даже таблице лидов) у карточки сделки автоматически заполняются 6 системных полей:

  • utm_source, utm_medium, utm_campaign, utm_content, utm_term и ym_uid (идентификатор визита счётчика).

От отдела продаж требуется соблюдать ровно два железных правила:

  1. Если лид нецелевой — закрывать сделку с обязательным выбором Причины отказа (Спам / Дубль, Не наш регион, Маленький бюджет, Дорого).
  2. Если договор подписан — вводить Точную сумму выручки (и маржи) в поле «Бюджет сделки» и переводить в статус «Успешно реализовано».

Шаг 4. Сводим расходы и оплаты раз в неделю (или передаём офлайн-конверсии в счётчик)

Теперь у вас есть два простых пути:

  • Вариант А (Прямой через счётчик аналитики + CRM): если у вас стоит штатная бесплатная интеграция CRM с счётчиком аналитики, включите передачу статусов сделок (Квалифицирован, Оплата) по идентификатор визита (id_vizita) обратно в счётчик. Тогда прямо в стандартном отчёте счётчика «Источники → рекламный кабинет, сводка» вы увидите реальные оплаты и выручку напротив каждой кампании и сможете обучать автостратегии рекламного кабинета на цель «Квалифицированный лид из CRM»!
  • Вариант Б (Сводная таблица в электронной таблице за 15 минут): каждую пятницу выгружаете CSV-файл сделок из CRM за месяц (с колонками utm_campaign, Статус, Сумма сделки) и выгрузку расходов по кампаниям из Мастера отчётов контекстной рекламы. Сводите их одной формулой СУММЕСЛИМН (SUMIFS) — и видите полную картину до рубля.

4. Как учитывать звонки и мессенджеры без дорогого динамического коллтрекинга

«А что делать, если клиент не заполнил форму на сайте, а позвонил по телефону или написал в мессенджер?» — справедливый вопрос. Есть три дешёвых решения до покупки большого коллтрекинга:

  1. Статическая подмена номера на рекламный канал (цена вопроса — 300 ₽/мес за SIM/виртуальный номер). Купите в вашей облачной АТС (Манго, Задарма, Мегафон, Телфин) 2 дополнительных номера: один показывайте тем, кто пришёл с метку источника (через простой JS-скрипт подмены текста), второй поставьте на Авито / Карты, а основной оставьте для органики. В CRM вы сразу увидите, с какого канала пришёл звонок. Напишите через контакты на сайте, если нужен шаблон из этого материала.
  2. Промокод или номер расчёта на экране. На десктопе рядом с телефоном можно выводить короткий4-значный префикс сессии или предлагать быстрый расчёт сметы через квиз/форму — это переводит до 40% «звонящих» в оцифрованную заявку.

5. Кейс на цифрах: как сквозная таблица сэкономила 115 000 ₽/мес в контекстной рекламе

Разберём реальную таблицу строительной компании (монтаж навесов и металлоконструкций в Подмосковье) с рекламным бюджетом 265 000 ₽/мес. В аккаунте контекстной рекламы работали 4 кампании.

Пока собственник смотрел только в кабинет рекламного кабинета и счётчик аналитики, фаворитом казалась Кампания №3 (рекламная сеть — Квиз «Рассчитай стоимость навеса»): она давала самые дешёвые заявки по 920 ₽! Специалист по рекламе предлагал перекинуть туда весь бюджет с «дорогого» Поиска.

Но когда мы за один вечер пробросили utm_campaign в CRM и свели заявки с реальными выездами замерщика и подписанными договорами за 2 месяца, картина перевернулась на 180 градусов:

Кампания в контекстной рекламеРасход (AC), ₽Лиды в счётчике, шт.Цена лида в счётчике (CPL)Квал-лиды в CRM, шт.Договоры (B), шт.Стоимость клиента (CAC), ₽Выручка, ₽Валовая маржа (35%), ₽Маржинальная прибыль (CM = Маржа − AC)Диагноз сквозной аналитики
1. Поиск — Горячие ключи (Купить/Монтаж)95 000 ₽382 500 ₽ («дорого»)31 (82%)811 875 ₽1 440 000 ₽504 000 ₽+409 000 ₽🟢 Золотая жила (Масштабировать!)
2. автоматические кампании — Гео МО55 000 ₽341 618 ₽20 (59%)413 750 ₽680 000 ₽238 000 ₽+183 000 ₽🟢 Рабочая кампания (Оставить)
3. рекламная сеть — Широкие интересы (на Квиз)85 000 ₽92 (!)**924 ₽ («лучшая!») **11 (12%)0 (!)∞ (Нет продаж)0 ₽0 ₽−85 000 ₽ (Чистый слив)🔴 Отключить немедленно!
4. рекламная сеть — Ретаргетинг по посетителям Поиска30 000 ₽152 000 ₽11 (73%)310 000 ₽510 000 ₽178 500 ₽+148 500 ₽🟢 Отличный дожим
ИТОГО ПО ПРОЕКТУ265 000 ₽1791 480 ₽731517 667 ₽2 630 000 ₽920 500 ₽+655 500 ₽—

Что увидели благодаря сквозной аналитике:

  • Кампания №3 (рекламная сеть на Квиз), которую хвалил специалист по рекламе за 92 дешёвых лида по 924 ₽, на самом деле приводила дачников, которые хотели просто узнать цену поликарбоната, чтобы сварить навес своими руками. Отдел продаж потратил десятки часов на обзвон 92 пустых заявок и закрыл 0 договоров, потеряв 85 000 ₽ чистого бюджета!
  • А Кампания №1 (Поиск) с «дорогим» лидом по 2 500 ₽ принесла 8 реальных объектов на 1,44 млн ₽ выручки и +409 000 ₽ чистой маржи.
  • Отключение одной убыточной кампании в рекламной сети и перенос бюджета на Поиск и Ретаргетинг в следующем же месяце сэкономили 85 000 ₽ прямого слива и освободили 30% времени менеджеров отдела продаж.

6. Готовый артефакт: JS-скрипт захвата меток и шаблон таблицы ROMI

Вставьте этот универсальный скрипт перед закрывающим тегом </body> на вашем сайте. Он автоматически сохранит все UTM-метки первого входа и идентификатор визита счётчика аналитики в localStorage и проставит их во все скрытые поля форм с атрибутами name="utm_source", name="utm_campaign" и т.д.:

<script>
(function() {
 const utmKeys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term', 'click_id'];
 const urlParams = new URLSearchParams(window.location.search);

 // 1. Если в URL есть свежие UTM-метки — сохраняем их в localStorage
 utmKeys.forEach(function(key) {
  if (urlParams.has(key)) {
   localStorage.setItem('co_' + key, urlParams.get(key));
  }
 });

 // 2. Забираем идентификатор визита счётчика аналитики (id_vizita) из куки
 function getCookie(name) {
  const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
  return match ? match[2] : '';
 }

 // 3. Подставляем сохранённые метки в скрытые поля всех форм на странице
 document.addEventListener('DOMContentLoaded', function() {
  utmKeys.forEach(function(key) {
   const val = localStorage.getItem('co_' + key) || '';
   document.querySelectorAll('input[name="' + key + '"]').forEach(function(input) {
    input.value = val;
   });
  });

  const visitorId = getCookie('id_vizita');
  document.querySelectorAll('input[name="visitor_id"]').forEach(function(input) {
   input.value = visitorId;
  });
 });
})();
</script>

Формулы для сводной вкладки Сквозной отчёт ROMI в электронной таблице:

Если на вкладке CRM_Выгрузка в столбце C лежит utm_campaign, в столбце D — Статус (Квал / Успешно), в столбце E — Выручка, а на сводном листе в ячейке A2 — название кампании и в B2 — расход из рекламного кабинета:

Столбец сводной таблицыформула электронной таблицыЧто считает
Лиды всего (C2)=СЧЁТЕСЛИ(CRM_Выгрузка!C:C; "*"&A2&"*")Все заявки с этой кампании в CRM
Квал-лиды (D2)=СЧЁТЕСЛИМН(CRM_Выгрузка!C:C; "*"&A2&"*"; CRM_Выгрузка!D:D; "Квал")Сколько из них прошли квалификацию
Оплаты (E2)=СЧЁТЕСЛИМН(CRM_Выгрузка!C:C; "*"&A2&"*"; CRM_Выгрузка!D:D; "Успешно")Число закрытых договоров (B)
Стоимость клиента CAC (F2)=ЕСЛИОШИБКА(B2 / E2; "Нет продаж")Реальная цена платящего клиента
Выручка (G2)=СУММЕСЛИМН(CRM_Выгрузка!E:E; CRM_Выгрузка!C:C; "*"&A2&"*"; CRM_Выгрузка!D:D; "Успешно")Сумма денег в кассе по кампании
ДРР (H2)=ЕСЛИОШИБКА(B2 / G2; 1)Доля рекламных расходов от выручки, %

7. Частые вопросы (FAQ)

Что делать, если пользователь зашёл с телефона по рекламе в рекламном кабинете, а заявку оставил вечером с домашнего ноутбука из поиска?

Если вы используете связку CRM + Офлайн-конверсии счётчика аналитики, то технология Крипта (кросс-девайс) в счётчике аналитики свяжет оба устройства в один профиль пользователя и при модели атрибуции «Последний значимый переход кросс-девайс» или «Автоматическая» правильно отдаст конверсию рекламной кампании рекламного кабинета. Подробно об этом — в статье C6: Модели атрибуции в счётчике.

Сколько стоит внедрить сквозную аналитику по вашей схеме?

Сама связка (UTM + JS-скрипт localStorage + скрытые поля в CRM + электронной таблицыа / коннектор счётчика) стоит 0 рублей абонентской платы. Если у вас на сайте тильда, WordPress или кастомная верстка на Astro — вставка скрипта и добавление 6 скрытых полей в форму занимает у верстальщика или маркетолога от 30 минут до 2 часов разовой работы.

В чём разница между ROMI, ROAS и ДРР в сквозной аналитике?

  • ROAS (Return on Ad Spend) считается по грязной выручке: (\frac{\text{Выручка}}{\text{Расход на рекламу}} \times 100%).
  • ДРР (Доля рекламных расходов) — обратный показатель: (\frac{\text{Расход на рекламу}}{\text{Выручка}} \times 100%) (например, потратили 100к, продали на 1 млн — ДРР = 10%).
  • ROMI (Return on Marketing Investment) в правильной юнит-экономике считается по валовой прибыли (марже): (\frac{\text{Валовая прибыль} - \text{Расход на маркетинг}}{\text{Расход на маркетинг}} \times 100%). Если ROMI > 0% — реклама окупилась с учётом себестоимости.

Что читать и смотреть дальше в серии «счётчик и аналитика руками»