06 янв. 2026 г.·7 мин

Витрина данных для продаж и маркетинга: прозрачный ROI

Витрина данных для продаж и маркетинга помогает свести лиды, сделки и расходы на рекламу в одну модель и честно считать ROI по каналам.

Витрина данных для продаж и маркетинга: прозрачный ROI

Почему прозрачный ROI не получается без витрины

ROI почти всегда «не сходится», когда маркетинг смотрит на клики и расходы в рекламных кабинетах, а продажи живут в CRM и считают выручку по сделкам. Оба отчета могут быть правильными по отдельности, но вместе дают разные ответы на один и тот же вопрос: сколько денег принес канал.

Обычно теряется связка между тремя частями картины: расходами, лидами и выручкой. Расходы могут приезжать с задержкой или в другой валюте. Лиды дублируются (форма на сайте, звонок, чат). А выручка «уезжает» в сделки без источника, потому что менеджер не заполнил поле или источник перезаписался при повторном обращении.

Ручные таблицы и разрозненные отчеты редко спасают. Таблица быстро превращается в спор о том, чьи цифры «верные», вместо инструмента управления. Отчеты по отделам тоже не помогают: каждый считает по своим правилам. Разные окна дат, разные статусы, разные определения лида и конверсии.

Витрина данных для продаж и маркетинга закрывает именно эту дыру: появляется одна версия цифр, где расходы, обращения и итоговые деньги связаны по понятным правилам. В хорошей витрине заранее фиксируют, из каких систем берутся расходы, лиды и сделки, как убираются дубли и что считается «уникальным» лидом, какие статусы сделок участвуют в расчете и в какой момент появляется выручка, а также по какому ключу лид связывается с каналом и сделкой.

Когда эти правила закреплены в витрине, разговор меняется. Вместо «почему опять не сходится» обсуждают, какой канал масштабировать и где в воронке теряются деньги.

Какие данные нужно собрать: лиды, сделки и расходы

Чтобы витрина данных для продаж и маркетинга работала, важно собрать не все подряд, а то, что реально склеивается в цепочку «клик - лид - сделка - оплата». Если хотя бы одно звено выпадает, ROI начинает «прыгать», а команда спорит не о выводах, а о цифрах.

Обязательные источники

Чаще всего достаточно четырех групп данных: CRM (лиды, контакты/компании, сделки и их статусы), рекламные кабинеты (показы, клики и расходы по кампаниям), аналитика сайта (сессии, источники трафика, UTM, формы) и коллтрекинг (звонки, длительность, номер, метки источника, если используете).

Иногда часть данных о лидах живет не в CRM, а в таблицах отдела продаж или в почте. Это тоже источник, но его нужно формализовать: кто вносит, по каким полям, как часто обновляется.

Минимальные поля, без которых связка ломается

Форматы могут быть разными, но минимум должен совпадать. Проверьте, чтобы в каждом блоке были:

  • дата и время события (клик/лид/сделка/оплата)
  • канал и кампания (желательно также source и medium)
  • UTM-метки или другой идентификатор источника
  • уникальный ID лида и ID сделки (или ключ для склейки)
  • сумма и валюта, плюс статус (успех/потеряно/в работе)

Расходы чаще всего берутся из рекламных кабинетов. Но если работает агентство, часть затрат может быть только в их отчетах (включая комиссии). А финальную «правду» по оплатам иногда дает бухгалтерия, особенно если вы считаете ROI от денег, а не от выставленных счетов.

Если данных не хватает, не откладывайте проект. Зафиксируйте, что именно отсутствует (например, нет UTM у звонков), задайте временное правило (например, привязка к последнему источнику сайта) и параллельно настройте сбор на будущее. Важно помечать такие места как «оценочные», чтобы не принимать по ним жесткие решения.

Договоритесь о терминах до сборки

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

Зафиксируйте словарь на одном листе

Начните с простых определений и сразу решите, что попадает в учет, а что остается «для справки».

  • Лид: новая потенциальная возможность, которая впервые появилась в вашей системе (форма, звонок, чат). Один человек не должен становиться двумя лидами из-за разных точек входа.
  • Контакт: человек или организация в CRM. Контакт может быть создан позже лида, но не должен считаться новым лидом.
  • Заявка: конкретное обращение (например, запрос КП). Заявок у одного контакта может быть несколько, и это нормально.
  • Сделка: единица продаж, по которой принимается решение «выиграли/проиграли». Сразу договоритесь, какие этапы считаются активными, что такое «закрыта», и какую дату вы берете: создание, переход в «выиграна» или оплату.
  • Выручка для ROI: что подставляете в расчет - сумму договора, сумму счета или поступление денег.

Типичный конфликт выглядит так: маркетинг считает лидом каждую заявку с сайта, а продажи создают лид в CRM еще раз при звонке. На бумаге лидов становится «в два раза больше», конверсия падает, а стоимость лида растет.

Расходы и окна времени

По расходам заранее определите состав: включаете ли НДС, комиссии площадок, оплату агентства, производство креативов, тестовые бюджеты. И главное - в какой момент расход считается понесенным: по дате счета, списанию, акту или оплате.

Отдельно задайте окна времени: сколько дней после клика или заявки вы связываете лид с расходом, и сколько времени даете сделке «дозреть» до выручки. Без этих правил одни и те же деньги будут «переезжать» между месяцами, и расчет ROI по каналам станет постоянно спорным.

Минимальная модель витрины: что с чем связывать

Минимальная витрина данных для продаж и маркетинга не обязана быть большой. Ей важно отвечать на один вопрос: сколько денег принес каждый канал по сравнению с тем, сколько он стоил. Для этого нужна схема, где расходы на рекламу можно связать с касаниями, а касания - с лидами и сделками.

Обычно хватает пяти таблиц:

  • расходы (затраты по дням, кампаниям, объявлениям)
  • касания (визиты, клики, звонки, заявки, источники)
  • лиды (контакты и статус в CRM)
  • сделки (воронка, суммы, этапы, дата оплаты)
  • справочники (каналы, кампании, регионы, менеджеры, продукты)

Связки держатся на ключах. Идеально, когда везде есть стабильный client_id (или contact_id), а дальше цепочка lead_id -> deal_id. На практике часто приходится собирать пазл из нескольких признаков: UTM-метки, phone/email, дата и время события. Полезно хранить и рекламные идентификаторы (campaign_id, ad_id), чтобы не терять точность при агрегации.

Справочники важны не «для красоты». Они фиксируют единую классификацию: один и тот же канал не должен называться то «Paid Search», то «Контекст». То же касается регионов, менеджеров и продуктов - без единых справочников отчеты начинают расходиться.

Хорошее правило: сырье не трогаем, расчетам даем отдельные поля. В raw храните оригинальные UTM, исходные названия кампаний, телефон как пришел, сумму сделки как в CRM. Рядом держите рассчитанные поля: нормализованный канал, объединенный client_id, признак уникального лида, выручка по оплате, дата первой/последней активности. Так логику можно пересчитывать, не теряя исходных данных.

Как привести данные к одному виду

Поддержка для витрины данных
Получите стабильную работу витрины с сопровождением и 24/7 техподдержкой GSE.
Оформить поддержку

Чтобы витрина данных для продаж и маркетинга считала ROI честно, все источники должны говорить на одном языке. Иначе один и тот же канал окажется в отчетах как «google», «Google Ads», «gads» и «поиск», а сделки будут жить своей жизнью в CRM.

Начните с правил именования. Самое больное место - UTM и названия кампаний. Договоритесь о шаблоне, который можно проверять автоматически: единый регистр, один разделитель (например, подчеркивание), понятные значения для source, medium и campaign. Если рекламу запускают разные команды и подрядчики, без этого сравнение каналов превращается в угадайку.

Дальше сделайте нормализацию источников. В витрине держите две сущности: «как пришло» (сырой источник) и «как называется в отчетах» (нормализованный канал). Например, все варианты Google (включая авторазметку) приводите к одному каналу. Meta отделяйте от Instagram. Яндекс не смешивайте с органикой. Офлайн и партнеров фиксируйте отдельными правилами.

В первую очередь обычно унифицируют:

  • справочник каналов и их групп (платный поиск, соцсети, партнеры, офлайн)
  • правила для UTM и названий кампаний
  • валюту, НДС и единые даты (часовой пояс)
  • идентификаторы: lead_id, deal_id, client_id
  • статусы и этапы воронки (только из утвержденного набора)

Отдельно решите, как хранить историю CRM. Для ROI важно не только текущее состояние, но и изменения: этапы, сумма, ответственный, дата закрытия. Самый надежный вариант - журнал событий или таблица истории, куда пишется каждая смена поля с временем.

Еще один частый перекос - повторные продажи и апсейл. Если клиент купил второй раз, не приписывайте весь доход к каналу привлечения. Разделяйте метрики: ROI привлечения (первая продажа) и ROI расширения (допродажи). Тогда маркетинг не будет выглядеть «волшебником» на старой базе.

Пример: в B2B компании вроде GSE.kz лид пришел из рекламы, потом ушел в длинный тендер, а через 4 месяца сумма сделки выросла после апсейла. Если в витрине есть история этапов и изменений суммы, видно, когда и за счет чего вырос доход, и какой канал действительно привел нового клиента.

Пошагово: как построить витрину данных

Витрина данных для продаж и маркетинга ценна не количеством таблиц, а тем, что цифры сходятся и их можно объяснить. Поэтому нужен короткий цикл: собрать, проверить, поправить.

Шаги, которые работают в реальных командах

  1. Соберите список источников: CRM, рекламные кабинеты, веб-аналитика, биллинг, коллтрекинг, таблицы отдела. Для каждого источника запишите владельца данных, способ доступа и что считается «истиной» (например, суммы оплат - только из бухгалтерии).

  2. Определите, как данные будут попадать в хранилище и как часто обновляться. Часто достаточно: расходы по рекламе раз в день, лиды и сделки каждый час, оплаты раз в сутки. Частота должна совпадать с тем, как вы принимаете решения.

  3. Сделайте черновую витрину на 1-2 каналах, а не сразу на всех. Возьмите, например, контекст и органику, и проверьте логику на 10-20 реальных сделках: где появился лид, когда стал сделкой, когда пришла оплата, не потерялись ли статусы.

После первой проверки расширяйтесь аккуратно. Подключайте остальные каналы и справочники: единый список кампаний, каналов, регионов, продуктов. На этом шаге обычно всплывают дубли и расхождения.

Что обязательно проверить при расширении

  • как склеиваются идентификаторы (телефон, email, client_id, deal_id) и что делать, если их несколько
  • как убираются дубли лидов и контактов, чтобы не «раздувать» конверсии
  • как учитываются возвраты и частичные оплаты, чтобы ROI не был завышен

Финальный слой делайте «для отчетов»: фиксированные поля, понятные названия, одинаковые правила расчета. Сразу настройте права доступа: маркетингу достаточно агрегатов по кампаниям, продажам нужны детали по лидам и сделкам, финансы должны подтверждать оплаты. Тогда отчеты будут совпадать у всех, а споры о цифрах станут редкостью.

Как считать ROI и какие метрики добавить рядом

ROI в витрине данных для продаж и маркетинга считается просто, но важно договориться, какую выручку подставлять. Базово: ROI = (выручка - расходы) / расходы. Для B2B чаще всего берут не сумму из КП, а подтвержденные деньги: оплату или выручку по закрытым сделкам.

Самая частая ошибка - считать ROI по «ожидаемой» выручке. Если вы используете сумму в сделке, зафиксируйте правило: это должен быть один и тот же тип выручки для всех каналов (например, «Closed Won сумма» или «Оплачено»). Если маржинальность сильно разная, полезнее считать ROI по валовой прибыли, а не по обороту.

ROMI отличается тем, что в расходах учитываются только маркетинговые затраты (реклама, подрядчики, инструменты). ROI шире: он включает всю цепочку, если вы добавляете затраты продаж (зарплаты, бонусы, обзвоны) и операционные расходы. ROMI удобен для сравнения каналов привлечения, ROI - для оценки, окупается ли воронка целиком.

Рядом с ROI почти всегда нужны метрики, которые объясняют, где ломается экономика:

  • CPL (стоимость лида) и CPA (стоимость сделки/покупателя)
  • CAC (стоимость привлечения клиента) с выбранным составом расходов
  • конверсия лид -> квалификация -> сделка -> оплата
  • средний чек и доля выигранных сделок
  • срок цикла сделки (дней) и скорость движения по этапам

Если цикл сделки длинный, не сравнивайте «январские расходы» с «январской выручкой» напрямую. Обычно помогают два подхода: сравнение по когортам (месяц первого касания) и сравнение по дате оплаты/закрытия с лагом (например, окно 60-90 дней).

Возвраты, отмены и частичные оплаты учитывайте как корректировки. Для ROI удобнее использовать чистую выручку: оплаты минус возвраты. Частичные оплаты можно считать по факту платежей (кассовый подход) или распределять по графику, но правило должно быть одинаковым для всех каналов и периодов.

Атрибуция без усложнений: как связать лид с каналом

Инфраструктура под аналитическую платформу
Соберем инфраструктуру под аналитику и отчетность: серверы, рабочие станции и внедрение.
Подобрать решение

Чтобы витрина данных для продаж и маркетинга считала ROI прозрачно, нужно ответить на простой вопрос: какой канал «привел» лида. Практичный подход - закрепить за лидом один «канал по умолчанию» по понятным правилам, а рядом хранить альтернативные модели атрибуции для сравнения.

На старте обычно достаточно четырех моделей: first click (первое касание), last click (последний клик), линейная (всем касаниям поровну) и по позиции (например, 40% первому, 40% последнему, 20% середине). Если цикл сделки длинный, полезно держать два расчета рядом: по первому касанию для оценки верхней части воронки и по последнему клику для оценки «дожима».

Проблема номер один - лиды без UTM. Здесь важно не «угадывать», а ввести приоритеты источников и закрепить их в витрине:

  • если есть gclid/yclid или явный рекламный источник, берете его
  • если нет, но есть UTM, берете UTM
  • если нет UTM, но есть referrer, считаете органикой или рефералом
  • если нет и referrer (прямой заход), помечаете как «прямой»
  • офлайн лиды (звонок, выставка) должны приходить с отдельной меткой источника

Отдельно задайте атрибуционное окно. Для быстрого продукта это может быть 7-14 дней, для B2B чаще 30-90. Слишком длинное окно завысит вклад рекламы, слишком короткое занизит, потому что лид «успеет забыть» первую точку входа.

И главное - честно используйте статус «неатрибутировано». Лучше видеть долю таких лидов и улучшать сбор данных, чем прятать проблему в «прямые» или «органику» и получать красивый, но неверный расчет ROI по каналам.

Пример: витрина для B2B-воронки от лида до оплаты

Представьте B2B-компанию в Казахстане, которая продает сложные решения: серверы, рабочие станции и внедрение. Заявки приходят с сайта (форма) и по телефону, а работа с клиентами ведется в CRM: лиды, сделки, счета, оплаты.

Маркетинг использует несколько источников трафика. Поиск приводит людей, которые уже «созрели» и ищут конкретную модель. Таргет в соцсетях чаще дает первые касания и более «сырые» лиды. Партнеры (интеграторы, реселлеры) приводят меньше заявок, но иногда с высоким средним чеком.

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

  • дубли лидов: клиент оставил форму и потом позвонил, в CRM это два лида
  • сделки без источника: менеджер создал сделку вручную и не заполнил поле «канал»
  • расходы «висят в воздухе»: есть траты по кампании, но в данных нет ее идентификатора для связи с заявками
  • разные статусы и даты: маркетинг считает по дате лида, продажи - по дате создания сделки или оплаты

После сборки витрины цепочка становится прозрачной: «расход -> лид -> сделка -> оплата». Решение по бюджету меняется не потому, что канал «плохой», а потому что видно, где теряются деньги. Поиск может давать меньше лидов, но больше оплат, и его имеет смысл защищать от сокращений. Таргет может оставаться выгодным, если отдел продаж быстро берет лиды в работу и есть понятные правила квалификации. Партнерский канал иногда показывает высокий ROI, но требует отдельного плана: совместные мероприятия, контроль качества передаваемых контактов, договоренности по этапам и ответственности.

Частые ошибки, из-за которых ROI становится недостоверным

Проверьте нагрузку и риски
Обсудите требования по хранению, резервированию и производительности под вашу воронку B2B.
Связаться с инженером

Даже аккуратно собранная витрина данных для продаж и маркетинга может показывать красивый, но неправильный ROI, если в нее заложены неверные правила учета. Чаще всего проблема не в формулах, а в том, что разные команды по-разному понимают одни и те же цифры.

Типовые причины, из-за которых отчеты «ломаются»:

  • путают лиды и контакты: контакт участвует в нескольких сделках, а лид конвертируется, и метрики начинают жить своей жизнью
  • выбирают «не ту» дату и не проговаривают это: ROI по дате создания лида и ROI по дате выручки отвечают на разные вопросы
  • не фиксируют изменения суммы сделки: суммы в B2B меняются, и без истории вчерашний ROI легко становится «другим» без реальных событий
  • неполно или дважды учитывают расходы: комиссии, агентское вознаграждение, НДС, бонусы, возвраты часто размазаны по разным системам
  • скрывают «неизвестный канал»: источник не заполнился, и его тихо относят к «прямым» или к самому успешному каналу, теряя сигнал о проблеме

Простой пример: у системного интегратора (например, при продаже серверов и инфраструктуры) цикл сделки длинный, а суммы корректируются после тендера. Если считать ROI по лидам за месяц, но выручку подтягивать по оплатам через квартал, без окна задержки и без истории изменений сумм отчет будет выглядеть как качели.

Минимальная защита: зафиксировать правила дат, хранить историю изменений сделки, вести единый справочник расходов и отдельно отслеживать долю «unknown» как метрику качества данных, а не как «корзину».

Чеклист перед запуском и следующие шаги

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

Короткий чеклист перед запуском:

  • подключены все нужные источники: CRM (лиды, сделки), рекламные кабинеты (расходы), справочники (продукт, регион, менеджер)
  • согласованы ключевые поля и термины: что такое лид, MQL/SQL, сделка, выручка, валюта, статус оплаты
  • устранены дубли и настроены правила склейки (email, телефон, ИИН/БИН, client_id, utm)
  • заданы окна времени: когда расход считается относящимся к лиду и как долго «живет» канал
  • настроены идентификаторы связки: единый lead_id/deal_id, а для рекламы - кампания, объявление, utm_source/medium

Дальше сделайте две контрольные проверки. Первая: сумма расходов в витрине должна сходиться с отчетами рекламных кабинетов за тот же период и в той же валюте. Вторая: при обновлениях сделки не должны «пропадать» или менять историю (вчера была выручка, сегодня ноль) без понятной причины и лога изменений.

Чтобы не увязнуть, начните с малого: один продукт, один регион, 2-3 канала (поиск, таргет, партнеры) и один понятный отчет - расходы, лиды, сделки, оплаченная выручка, ROI. Так проще заметить, где ломается связка. Частая ситуация: канал дает много лидов, но ноль оплат. Причина нередко не в канале, а в том, что оплаты фиксируются в другой системе и не попали в витрину.

Следующие шаги после пилота:

  • автоматизировать обновления по расписанию и добавить мониторинг качества данных
  • разграничить доступы для маркетинга, продаж и финансов, чтобы все смотрели на одно и то же
  • зафиксировать версию модели и правил (что меняли и когда), чтобы ROI оставался сравнимым

Если для этого нужна инфраструктура и внедрение, можно опереться на системную интеграцию GSE.kz: подобрать серверы S200 под хранилище и рабочие нагрузки, а также организовать поддержку и стабильную работу витрины.

FAQ

Почему ROI не сходится, если отчеты в рекламе и CRM вроде правильные?

Чаще всего проблема в том, что расходы, лиды и выручка живут в разных системах и не связаны едиными правилами. Витрина фиксирует, как именно вы склеиваете клик, обращение, сделку и оплату, и дает одну «версию правды», чтобы цифры перестали расходиться между маркетингом и продажами.

Какие источники данных нужны в первую очередь для витрины?

Начните с CRM (лиды, контакты/компании, сделки, статусы), рекламных кабинетов (расходы, кампании), веб-аналитики (UTM, сессии, формы) и, если есть, коллтрекинга (звонки и их источники). Если оплаты подтверждаются в отдельной системе или у бухгалтерии, лучше сразу брать «факт денег» оттуда, чтобы ROI считался по реальным поступлениям.

Какие поля обязательны, чтобы связка «клик — лид — сделка — оплата» не ломалась?

Нужны дата и время события, канал/кампания, идентификатор источника (UTM или рекламные клики вроде gclid/yclid), а также устойчивые ID для склейки (lead_id, deal_id, client_id или заменяющий ключ). Для денег важно хранить сумму, валюту и статус, а также понимать, какую дату вы используете для выручки: закрытие сделки или оплату.

О чем нужно договориться по терминам до сборки витрины?

Сначала договоритесь, что считается лидом, а что — просто обращением или контактом, чтобы один человек не превращался в два лида из-за формы и звонка. Затем закрепите, какую выручку подставляете в ROI (сумма договора, счета или поступление денег) и какие статусы сделок участвуют в расчете. Без этого витрина будет считать корректно, но не то, что ожидает бизнес.

Как выбрать окна времени, чтобы ROI не «переезжал» между месяцами?

Нужно заранее выбрать окно, в пределах которого вы связываете лид с источником и расходом, например 30–90 дней для B2B. Параллельно определите, к какому периоду относятся расходы: по дате списания, акту или оплаты. Иначе вы будете сравнивать расходы одного месяца с выручкой другого и получать «качели» в ROI даже при стабильной воронке.

Какая минимальная структура витрины данных обычно работает?

Минимально достаточно таблиц расходов, касаний (визиты/заявки/звонки), лидов, сделок и справочников (каналы, кампании, продукты, регионы). Сырые данные лучше хранить отдельно и рядом добавлять рассчитанные поля: нормализованный канал, признаки дублей, выручку по оплате, даты первого и последнего касания. Так вы сможете менять логику расчетов, не теряя первоисточник.

Как привести каналы и кампании к единому виду, чтобы отчеты не дробились?

Заведите единые правила UTM и именования кампаний и проверяйте их автоматически, чтобы «google», «Google Ads» и «gads» не стали разными каналами. В витрине храните два поля: «как пришло» (сырой источник) и «как показываем в отчетах» (нормализованный канал). Отдельно приведите к одному виду валюты, часовые пояса и справочник статусов воронки.

Какую атрибуцию выбрать на старте и что делать с лидами без UTM?

Базово закрепите один «канал по умолчанию» на лид по понятному приоритету: рекламный идентификатор, затем UTM, затем referrer, затем прямой заход, а офлайн — только по явной метке. Параллельно можно считать альтернативы вроде first click и last click, чтобы понимать вклад верхней части воронки и «дожима». Важно оставлять статус «неатрибутировано», а не прятать такие лиды в «прямые», чтобы видеть качество данных.

Как правильно считать ROI в витрине и какие метрики смотреть рядом?

Сначала определите, какую выручку используете, и держите правило одинаковым для всех каналов и периодов; в B2B чаще берут оплаты или закрытые успешные сделки. Рядом с ROI полезно смотреть CPL/CPA, конверсии по этапам, средний чек и длительность цикла сделки, чтобы понимать причину цифры, а не только итог. Если маржинальность сильно различается, лучше перейти на расчет по валовой прибыли, иначе ROI по обороту будет вводить в заблуждение.

Какие ошибки чаще всего делают ROI недостоверным даже при наличии витрины?

Чаще всего ломают картину дубли лидов, сделки без источника, разные даты для расчетов и неполный учет расходов (комиссии, НДС, агентские). Еще одна частая проблема — отсутствие истории изменений в CRM, когда сумма и этап сделки меняются, а вы не видите, почему «вчера было иначе». Минимальная защита — правила дедупликации, единый справочник статусов и расходов, хранение истории сделок и отдельный контроль доли «unknown» как показателя качества данных.

Витрина данных для продаж и маркетинга: прозрачный ROI | GSE