ax.SEO
🐱 🦊 🐼 🦝 🐰 🦉
Кто сегодня с нами? 🐾

Животные меняются при загрузке страницы

Главная / Блог / Шаблон отчёта: Метрики вовлечённости и конверсии из CMS и CRM в дашборд

Шаблон отчёта: Метрики вовлечённости и конверсии из CMS и CRM в дашборд

Пошаговый чек‑лист: как собрать данные из CMS, GSC, Яндекс Метрики, GA4 и CRM‑API, объединить их в дашборд и гарантировать актуальность.
🐱
Читать проще с подсказками

Карточки, чек-листы, таблицы и примеры помогают быстро найти нужный ответ.

✅ чек-листы 📈 SEO-практика ⚡ быстро

В работе с контент‑платформой и CRM часто возникает необходимость видеть общую картину вовлечённости и конверсии в одном месте. Ниже – практический план, как собрать данные из GSC, Яндекс Метрики, GA4 и CRM‑API, объединить их в дашборд и обеспечить его корректность и актуальность.

Подготовьте список нужных метрик, настройте API‑ключи, экспортируйте данные из CMS и CRM, перенесите их в промежуточное хранилище, подключите к дашборду (Google Data Studio, Metabase и т.д.), создайте визуализации, проверьте корректность и запланируйте автоматическое обновление.

Что нужно собрать перед началом

Перед тем как подключать метрики из GSC, Яндекс Метрики, GA4 и CRM‑API в один дашборд, соберите базу данных, чтобы не тратить время на отладку в процессе. Ниже перечислены обязательные элементы и пример того, как они работают в типичной ситуации.

  • Ключевые метрики: клики, показы, CTR, позиции, видимость, конверсии, время на странице, отказ.
  • Источники данных: Google Search Console, Яндекс Метрика, GA4, API CRM.
  • Права доступа и ключи: чтение GSC API, чтение Метрики и GA4, OAuth‑токен CRM, API‑ключ для сервисов.
  • Параметры времени: одинаковая временная зона (UTC+3) и согласованный период (например, 01‑01‑2024 – 31‑01‑2024).
  • Юридический согласованность: согласовать с отделом GDPR/ППД, подтвердить, что сбор персональных данных разрешён.

Например, если лендинг получает 2000 кликов, но только 5 заявок, это сигнализирует о проблеме в конверсии. В таком случае вы увидите, что показатель конверсии в CRM ниже, чем в Метрике, и сможете проверить, не блокируется ли форма.

Если пропустить настройку API‑ключей, дашборд будет показывать только открытые данные, а скрытые события останутся недоступными, что приведёт к искажённым выводам.

Несогласованная временная зона создаст видимость «пиков» в ночное время, хотя фактически они происходят утром по UTC. Поэтому одно и то же время в разных системах должно быть привязано к одной зоне.

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

Получаем данные из контент‑платформы

Получаем данные из контент‑платформы: как собрать нужные метрики из CMS и отправить в промежуточное хранилище.

  • Выбрать подходящий API‑эндпоинт: REST‑API с простыми URL или GraphQL с гибкой схемой.
  • Настроить аутентификацию: OAuth2 с токеном, либо статический API‑токен, проверив срок жизни.
  • Обработать пагинацию и лимиты — обычно 100‑200 записей за запрос, иначе придётся делать цикл.
  • Фильтровать по дате публикации, типу контента и статусу, чтобы не загружать лишние данные.
  • Экспортировать результат в CSV или JSON и загрузить в промежуточное хранилище (S3, GCS, локальный сервер).
# Пример запроса к REST‑API CMS с пагинацией и фильтром
curl -s -H "Authorization: Bearer <API_TOKEN>" \
 "https://cms.example.com/api/v1/articles?status=published&type=blog&date_from=2024-01-01&date_to=2024-01-31&limit=100&offset=0" | \
 jq '.items[] | {id, title, publish_date, views, conversions}' > page1.json

# Далее цикл для всех страниц
offset=100
while [ $offset -lt 1000 ]; do
 curl -s -H "Authorization: Bearer <API_TOKEN>" \
 "https://cms.example.com/api/v1/articles?status=published&type=blog&date_from=2024-01-01&date_to=2024-01-31&limit=100&offset=$offset" | \
 jq '.items[] | {id, title, publish_date, views, conversions}' >> all_articles.json
 offset=$((offset + 100))
done

# Конвертируем JSON в CSV и загружаем в S3
jq -r '(.[0] | keys_unsorted) as $keys | $keys, map([.[ $keys[] ]])[] | @csv' all_articles.json | \
 aws s3 cp - s3://analytics-bucket/january/articles.csv

Получаем данные из CRM

  1. Определяем сущности. В CRM обычно есть «лиды» – потенциальные покупатели, «делы» – закрытые сделки и «конверсии» – финальный результат, например, оплата.
    Пример: в таблице lead_id = 12345, deal_id = 9876, status = “closed”.
  2. Получаем API‑ключ с нужными правами. В настройках CRM создаём токен, выставляем scope = leads, deals, conversions.
    Если токен лишен прав, запрос вернёт 403 и данные не попадут в дашборд.
  3. Формируем запрос с фильтрацией по датам и статусу.
    GET /api/v1/deals?created_at>=2024-01-01&status=closed
    Неправильный фильтр приводит к избыточному объёму, замедляя последующую агрегацию.
  4. Сохраняем ответ в формате, совместимом с хранилищем.
    JSON или CSV с колонками lead_id, deal_id, status, created_at.
    Если структура не совпадает, объединение с метриками из Яндекс Метрики или GA4 сломается.
  5. Проверяем уникальность идентификаторов.
    Запрос: SELECT lead_id, COUNT(*) FROM table GROUP BY lead_id HAVING COUNT(*)>1.
    Дублирующие lead_id/ deal_id искажают KPI, например, число заявок будет завышено.
curl -H "Authorization: Bearer <API_KEY>" \
 "https://crm.example.com/api/v1/deals?created_at>=2024-01-01&status=closed" \
 -o deals.json

Объединяем данные в дашборде

Чтобы видеть, как контент‑платформа и CRM влияют на конверсии, нужно собрать данные в одном хранилище и построить факт‑таблицу. Выбор хранилища зависит от объёма и скорости обновлений: BigQuery – для больших потоков и быстрых аналитических запросов; Snowflake – если нужна совместимость с BI‑инструментами; PostgreSQL – для небольших проектов и простоты миграции. Моделирование начинается с таблицы фактов, где каждая строка – событие (клик, показ, заявка). В качестве измерений фиксируем дату, канал, источник, URL, campaign_id и, если есть, lead_id из CRM. Объединение по ключу обычно выполняется через URL + campaign_id + lead_id. Если какие‑то из этих полей не попадают в одну запись, вы потеряете связь между трафиком и заявкой. Планирование ETL можно реализовать скриптами на Python, Airflow‑пайплайнами или dbt‑моделями. В коде удобно использовать параметризованные запросы, чтобы менять источник без правки логики. Расписание обновлений – минимум раз в сутки, но если трафик высокий, можно настроить обновление каждые 12 ч. Это гарантирует, что дашборд отражает актуальные данные и не «застревает» в середине дня.

-- Пример объединения в BigQuery
WITH clicks AS (
 SELECT
 url,
 campaign_id,
 DATE(timestamp) AS day,
 COUNT(*) AS clicks
 FROM `cms.clicks`
 GROUP BY 1,2,3
),
conversions AS (
 SELECT
 url,
 campaign_id,
 lead_id,
 DATE(created_at) AS day,
 COUNT(*) AS conv
 FROM `crm.leads`
 WHERE status = 'converted'
 GROUP BY 1,2,3,4
)
SELECT
 c.url,
 c.campaign_id,
 c.day,
 c.clicks,
 COALESCE(conv, 0) AS conv
FROM clicks c
LEFT JOIN conversions conv
 ON c.url = conv.url
 AND c.campaign_id = conv.campaign_id
 AND c.day = conv.day;
  • Выбрать хранилище, учитывая объём и частоту обновлений.
  • Создать факт‑таблицу с измерениями: дата, канал, источник, URL, campaign_id, lead_id.
  • Проверить, что все ключевые поля присутствуют в обеих системах.
  • Написать ETL‑скрипт с параметризованными запросами.
  • Настроить расписание обновлений: минимум раз в сутки, при высокой активности – каждые 12 ч.

Создаём визуализации и отчёты

Ключевые KPI – это маркеры, которые показывают, насколько контент привлекает и превращает аудиторию. В дашборде фиксируют CTR, среднюю позицию, конверсию и LTV. Если CTR падает, значит объявление не привлекает, а если позиция падает – поисковый алгоритм не отдаёт доверие. Конверсия и LTV показывают, сколько денег приносит каждый посетитель.

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

Панели разрабатываются под роли: маркетинг видит KPI и графики с настройкой креативов; продажи – таблицы с лидами и статусами; аналитика – агрегированные метрики и экспортные кнопки. Экспорт в PDF/PNG и настройка автоматической рассылки позволяют делиться результатами без лишних действий.

  • Установить фильтр по дате: от начала месяца до текущего дня.
  • Добавить канал: «SEO», «PPC», «Соцсети».
  • Сегментировать по источнику: «Organic», «Paid», «Referral».
  • Экспортировать в PDF, PNG; добавить задачу в календарь для еженедельной рассылки.
  1. Создать панель «Маркетинг»: включить CTR, среднюю позицию и график креативов.
  2. Добавить панель «Продажи»: таблицу лидов с полями «CRM‑статус» и «LTV».
  3. Включить панель «Аналитика»: линейный график LTV по каналам и тепловую карту по датам.

Условно: лендинг получил 12 000 кликов за месяц, CTR 0.8 %, из них 240 конверсий, средний LTV 3 000 ₽. Если в дашборде видно, что CTR снизился до 0.5 % после смены креатива, маркетолог может быстро проверить, какой креатив хуже. Без фильтра по каналу данные смешиваются, и решение будет ошибочным.

Проверяем корректность данных

Когда вы собираете метрики из разных источников, первая проверка – убедиться, что цифры действительно «говорят» о том же событии. Сравните суммы CTR и кликов в GSC и Яндекс Метрике: если в GSC за 30‑дневный период клики 12 000, а в Метрике – 11 500, разница может означать, что часть трафика попала в «потерянные» сегменты, либо в Метрике отфильтрованы внутренние запросы. Например, если лендинг «seo‑тренды» получает 2 000 кликов в GSC, но только 1 500 в Метрике, вероятно, часть запросов приходила через прямой трафик без UTM‑меток.

import pandas as pd
df = pd.read_csv('gsc_clicks.csv')
duplicates = df.duplicated(subset=['date', 'url', 'campaign_id'], keep=False)
print(f"Duplicate rows: {duplicates.sum()}")
# Если число > 0, проверьте логи API и укажите, что дубли могут исказить конверсию.
  • Синхронизируйте часовой пояс: GSC – UTC, Метрика – локальный час. Откройте настройки отчётов и убедитесь, что даты совпадают.
  • Проверьте, что в каждом ряду присутствует валидный URL и campaign_id. Отсутствие campaign_id приводит к потере связи с рекламной кампанией.
  • Периодически запускайте скрипт на дубли, чтобы не «подвешивать» дашборд.
  • Следите за лимитами API: 1000 запросов в день для Метрики, 10 000 для GSC. При превышении – 429 ошибка, данные о кликах могут быть неполными.
  • Если обнаружите несоответствие CTR > 1 % от общей суммы, проверьте, не фильтруются ли внутренние запросы в Метрике.

Мониторинг и поддержка отчётов

Мониторинг и поддержка отчётов в аналитике – как сигнализация в доме: если что‑то падает, вы сразу узнаёте и можете вмешаться.

1. Алёрты при падении объёма данных. Если за сутки количество записей в таблице «заявки» упало более чем на 50 %, отправляем уведомление в Slack. Пример: данные из GA4 не попали в BigQuery, и в дашборде «конверсии» исчезло 80 % строк. После алёрта команда проверила job‑лог и обнаружила ошибку в расписании.

2. Периодическая проверка статуса ETL‑процессов. В Airflow ставим DAG‑установку «check‑etl‑status» с расписанием каждые 12 ч. Если статус «failed», сразу отправляем e‑mail. Результат: при сбое в API Яндекс Метрики отчёт не обновляется, но алёрт позволяет быстро переключить на резервный источник.

3. Аудит прав доступа к данным. Ежемесячно проверяем, что только роли «analyst» и «marketing» имеют SELECT‑право в Snowflake. Почему важно: лишний доступ может привести к утечке конфиденциальных заявок.

4. Обновление схемы при изменении API‑консоли. Когда Google Search Console добавляет поле «average_position», пересматриваем модель данных и обновляем пайплайн. Что случится, если пропустить: новые данные игнорируются, а отчёт показывает «неизвестно» вместо актуального значения.

5. Документация изменений и версии схемы. В Confluence фиксируем дату, версию схемы и список изменённых колонок. Плюс: при пересмотре отчёта можно быстро понять, почему исчезла метрика «CTR» после обновления API.

  • Алёрты: threshold 50 % падения объёма / Slack/Email
  • Проверка ETL: DAG‑check‑etl‑status каждые 12 ч / логирование ошибок
  • Аудит прав: ежемесячный scan ролей / отчёт в Confluence
  • Обновление схемы: при API‑изменении / миграция модели, тесты, деплой
  • Документация: версия схемы, changelog, ссылка на пайплайн / хранить в репозитории

Частые ошибки и риски

  • Несогласованные часовые пояса приводят к смещению дат. Если в GA4 дата фиксируется в UTC, а в CRM – в UTC+3, то конверсия за 1 марта может отобразиться как 31 февраля в отчёте. Это искажает дневные метрики и может привести к неверным решениям по бюджету.
  • Переходы в API‑лимиты без планирования пауз. Если запросы к Яндекс Метрике превышают лимит 800 запросов в минуту, оставшиеся запросы отбрасываются, и данные пропадают. В итоге трафик не учитывается, а CTR выглядит ниже реального.
  • Неправильная привязка URL и campaign_id создаёт дубли. Например, лендинг «/offer» без параметров и «/offer?utm_campaign=promo» считаются разными событиями. Клики дублируются, а конверсии – один раз, что искажает эффективность кампаний.
  • Отсутствие контроля над GDPR/CCPA может привести к штрафам. Если UTM‑данные собираются без согласия, но отправляются в CRM без проверки, а пользователь отозвал согласие, данные остаются в системе. Это создаёт юридические риски и может обрушить доверие.
  • Неправильная обработка ошибок в ETL скрывает проблемы. При ошибке парсинга JSON из CRM скрипт может игнорировать запись без логирования, и в отчёте пропадает целая строка заявок. В результате конверсии недооцениваются, а KPI искажаются.

Вопросы и ответы

Какие данные можно собрать из CMS и как их экспортировать?

В CMS обычно есть метрики просмотров, времени на странице, источников трафика и поведения пользователей. Экспорт осуществляется через CSV, API или встроенный отчётный модуль. Убедитесь, что данные включают даты и уникальные идентификаторы, чтобы потом соединить их с CRM.

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

Если ваша аудитория быстро меняется, обновляйте каждую ночь. Для медленных ниш – раз в неделю. Главное – не терять связь между датой публикации и конверсией, иначе вы будете смотреть на устаревшие цифры.

Какие метрики из CRM наиболее ценны для оценки конверсии?

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

Как соединить данные из CMS и CRM в один дашборд?

Используйте общий ключ – email, UID или UTM‑метку. В Power BI, Tableau или Google Data Studio можно задать объединение по этому полю. Если ключов нет, создайте временную таблицу с сопоставлением.

Что делать, если в дашборде появляются пропуски данных?

Убедитесь, что экспорт из CMS включил все нужные поля, а в CRM нет дублирования записей. Иногда API ограничивает объём, поэтому разбейте выгрузку на части и объедините позже.

Как отследить влияние конкретной статьи на продажи?

Добавьте уникальный UTM‑параметр в ссылку, ведущую к странице. В GA4 или Метрике зафиксируйте событие «покупка» и свяжите его с UTM. Это покажет, сколько заказов пришло именно от этой статьи.

Какие инструменты лучше использовать для визуализации?

Если у вас уже есть BI‑платформа, подключите её к API CMS и CRM. Для быстрых прототипов можно использовать Google Data Studio – он бесплатный и поддерживает оба источника. Главное – не перегружать графики лишними деталями.

Как избежать ошибок при работе с UTM‑метками?

Соблюдайте единый формат: utm_source, utm_medium, utm_campaign. Не забывайте, что в CRM поле «источник» должно принимать именно эти значения. Если вы случайно поменяете порядок, данные потеряются.

Важно

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

Редакционная проверка

Материал подготовлен и проверен редакцией AX.SEO

Проверено
AX
Автор Редакция AX.SEO
Digital-редактор 7 лет опыта

Редакция AX.SEO готовит материалы о SEO, разработке, AI, аналитике, маркетинге и росте digital-проектов.

Проверил Александр SEO
SEO-специалист 10 лет опыта

Проверяет практическую применимость рекомендаций, корректность терминов и соответствие материала digital-тематике.

AX.SEO объясняет digital простым языком: без магии, пустых обещаний и “секретных кнопок роста”.