13.03.2025, 14:43

Как передавать заказы из CRM в Яндекс.Метрику: пошаговое руководство

В современном мире аналитики данных важно не только отслеживать онлайн-действия пользователей, но и учитывать офлайн-конверсии, такие как заказы, оплаты и отмены. В этой статье руководитель группы веб-аналитики Kokoc.com Александр Пелевин и веб-аналитик Никита Косцов рассказали, как настроить передачу данных из CRM-системы в Яндекс.Метрику с использованием API.

Что такое офлайн-конверсии и какие сложности бывают при их оцифровке

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

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

Сценарий может быть следующим: пользователь, авторизованный в сервисах Яндекс через Яндекс ID и на десктопе, и на смартфоне, заходит на сайт, Метрика присваивает ему ClientID. Далее этот же пользователь приходит в офлайн-точку, и благодаря Яндекс.Картам определяется его местоположение. Он оформляет заказ в магазине/офисе и в момент подтверждения его заказа идет сопоставление данных ClientID Яндекс.Метрики и Яндекс ID на смартфоне, после чего офлайн-конверсия присваивается источнику трафика на сайте.

Александр Пелевин
Руководитель группы веб-аналитики Kokoc.com

Зачем передавать заказы из CRM в Яндекс.Метрику

С помощью Яндекс Метрики можно связывать действия клиентов на сайте и вне интернета и учитывать офлайн-конверсии. Они отслеживаются с помощью целей, для них рассчитываются целевые метрики (конверсия, количество целевых визитов).

Передача этих данных в Яндекс.Метрику позволяет:

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

  2. Оценить эффективность трафика. Офлайн-конверсии нужно учитывать и передавать, чтобы смотреть на трафик, который пришел с рекламы, но который мы не видим непосредственно в Метрике по различным рода причинам.

  3. Анализировать воронки продаж. Вы получите данные о том, на каком этапе клиенты чаще всего отказываются от покупки.

  4. Улучшить таргетинг. Данные о конверсиях помогут точнее настраивать рекламные кампании.

Способы отправки заказов из CRM в Яндекс Метрику

  1. Вручную через файлы CSV. Нужно подготовить CSV-файл с конверсиями, перейти в Метрику и загрузить файл на странице «Настройка» в блоке «Загрузка офлайн-конверсий».

  2. Через сервер (sftp или https). Подходит для покупок по телефону. Необходимо, чтобы был подключен коллтрекинг и чтобы все конверсии были размечены yclid.

  3. С помощью API Метрики. Подходит для покупок по телефону с выкупом товара. В Метрике должен быть включен учет офлайн-конверсий, а сами конверсии должны быть размечены ClientID/UserID/yclid.

  4. Из CRM-системы по API. Подходит для онлайн-заказов с сайта. Должна быть действующая интеграция между CRM и метрикой. Именно про этот способ мы и хотим поговорить подробно.

Как правило, интернет-магазины подключены к Битрикс24, amoCRM и другим известным на рынке системам. В Метрике есть подробная инструкция по передаче данных. Но часто бывает так, что клиент пользуется самописной кастомной системой, и эти инструкции не всегда актуальны.

Недавно отдел аналитики Kokoc.com провел блестящую работу по передаче офлайн-конверсий из кастомной CRM в Метрику. Решили поделиться нашими инсайтами и полезным опытом — это будет актуально для бизнесов, которые используют самописные CRM. Расскажем пошагово, что мы делали.

Кейс: как передавать заказы из CRM в Яндекс.Метрику

В мае 2024 к Kokoc Group обратилась компания «Московские окна» — им требовался подрядчик по ведению рекламы в Яндекс.Директ. Уже в начале июне возникла масштабная задача — компания переходила на новый сайт, и нужно было настроить на нем не только события по конверсиям, но и передачу заказов из CRM в Яндекс.Метрику. Сложность заключалась в том, что клиент использует самописную CRM, у которой, по сравнению с известными на рынке CRM-системами, нет готовой интеграции с Яндекс.Метрикой. К счастью, на стороне клиента присутствовала команда разработки, для которой нам предстояло написать ТЗ на основе справочных материалов Яндекс.Метрики

Для настройки контекста мы настроили стандартные цели, колл-трекинг, бизнес-аналитик со стороны клиента запросил проброс офлайн-конверсий из CRM в Яндекс.Метрику. Мы созвонились с бизнес-аналитиком клиента и выяснили, что у них очень сложная воронка. Статусов по заказам как минимум 10, из них по желанию клиента 4 статуса должны передаваться в Метрику, а остальные 6 нет. Есть еще промежуточные статусы, которые должны передаваться не стандартным способом, а через дополнительный идентификатор JS-события.

Никита Косцов
Веб-аналитик Kokoc.com

В массовых CRM это делается довольно легко, но поскольку CRM клиента самописная, кастомная, пришлось углубляться и писать подробное ТЗ, в котором расписан процесс проброса пошагово. Покажем эти шаги.

Шаг 1: подготовка данных в CRM

Для передачи данных в Яндекс.Метрику необходимо подготовить файл в формате JSON или CSV. Этот файл должен содержать информацию о заказах, клиентах и их действиях. Вот ключевые поля, которые должны быть включены:

  • id — уникальный идентификатор заказа в CRM.

  • client_uniq_id — идентификатор клиента на стороне CRM.

  • client_type — тип клиента (например, CONTACT).

  • create_date_time — дата и время создания заказа.order_status — статус заказа (например, «оплачен», «отменен»).revenue — доход от заказа.

  • contactPhone — номер телефона клиента.

  • utm-метки (utm_source, utm_medium, utm_campaign и так далее) — данные о рекламных каналах.

Важно было также прописать требования к выгружаемым данным:

  1. Данные из CRM должны быть доступны для скачивания по http (s) ссылке.

  2. Тело ответа должно иметь json формат.

  3. Для получения доступа к данным крайне желательно предусмотреть авторизацию с помощью логина и пароля. В этом случае вместе со ссылкой нужно предоставить логин и пароль. Для реализации авторизации можно создать приложение-endpoint. Пример такого приложения показан в файле rest_api_endpoint_from_crm_jsons.py либо другим удобным способом.

  4. Названия свойств элементов должны быть указаны в camelCase со строчной первой буквой.

  5. Допускается для отдельных сделок или товаров пропускать необязательные свойства, если значения этих свойств не определены.

Последним требованием была выгрузка по срокам — поскольку клиенту нужно было сравнивать количество сделок за предыдущие периоды, до перехода на новый сайт, то сделки, воронки и статусы выгружались с определенной даты, а именно с 01.01.2023 по 31.05.2024 и далее.

Поскольку есть две сущности — заказы и клиенты, то со стороны CRM данные отправляются в виде двух отдельных JSON-файлов.

В нашем случае задача также осложнялась тем, что клиент хотел видеть в отчетах Яндекс.Метрики исключительно сделки из ограниченного числа воронок, некоторые атрибуты пришлось расписать детальнее. Мы составили таблицу со статусами заказов из воронок, которые необходимо выгружать в том или ином статусе в Яндекс.Метрику:

Подробная таблица с условиями отправки заказов из CRM в Яндекс.метрику

Шаг 2: настройка передачи данных через API Яндекс.Метрики

Для передачи данных используется API Яндекс.Метрики. Вот основные шаги:

1. Создание атрибутов. В Метрике необходимо создать атрибуты, которые будут соответствовать полям из CRM (например, «статус заказа», «идентификатор клиента»).

2. Формирование запроса. Данные передаются методом POST в формате JSON.

Пример тела запроса для заказов:

Пример тела запроса для клиентов:

3. Отправка данных. Запрос отправляется на endpoint API Яндекс.Метрики. Ответ сервера будет содержать информацию об успешности обработки данных.

Шаг 3: управление статусами заказов

Статусы заказов играют ключевую роль в аналитике. В CRM должны быть настроены следующие статусы:

  • Заказ создан (IN_PROGRESS): Заказы, которые находятся в работе.

  • Заказ оплачен (PAID): Заказы, которые были успешно оплачены.

  • Заказ отменен (CANCELLED): Заказы, от которых клиент отказался.

  • Спам-заказ (SPAM): Нецелевые заказы.

Каждый статус передается в Яндекс.Метрику с соответствующим идентификатором цели. Это позволяет аналитикам видеть, на каком этапе воронки находятся заказы.

Таким образом все заявки, отправленные с сайта, автоматически попадают в CRM. В CRM реализована логика обработки заявок, в том числе изменение их статусов. Статусы заявок выгружаются в Яндекс.Метрику в соответствии с целями.

Бизнес-аналитик получает актуальные данные из CRM в Яндекс.Метрике для анализа статусов заявок, а также может оценить эффективность продаж и рекламных кампаний, основываясь на данных о целевых контактах, созданных и оплаченных заказах, а также отмененных и спам-заявках.

Рассмотрим пример использования: клиент оформил заказ на сайте, но оплатил его через менеджера. В CRM заказ получил статус «Оплачен». Данные о заказе передаются в Яндекс.Метрику, где аналитик видит, что этот заказ был связан с рекламной кампанией в Яндекс.Директе. Это позволяет оценить ROI кампании и принять решение о ее оптимизации.

Результаты, которых удалось достичь

В интерфейсе Яндекс.Метрики для клиента был создан специальный отчет по UTM-меткам со статусами заказов. Соответственно, клиент может видеть актуальную ситуацию по заказам за нужный период. До настройки в Метрику пробрасывались только часть статусов заказов, и на момент написания ТЗ для нового сайта требовалось доработать воронку со всеми статусами:

Воронка заказов в Метрике

После внедрения ТЗ заказы стали показываться в разных статусах:

Статусы заказов в Метрике

А что же с бизнесовой точки зрения? Спросим Алену Присенко, руководителя группы контекстной рекламы Kokoc.com:

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

Алена Присенко
Руководитель группы контекстной рекламы Kokoc.com

Рекомендации по настройке

  1. Периодичность обновления. Данные должны обновляться ежедневно, чтобы аналитика оставалась актуальной.

  2. Проверка данных. Убедитесь, что все поля заполнены корректно, особенно даты и идентификаторы.

  3. Использование yclid. Для точной привязки заказов к рекламным кампаниям используйте параметр yclid, который передается из Яндекс.Директа. Однако данный параметр может быть заменен на ClientID Яндекс.Метрики.

Церемония награждения
«НПБК. Эффективность»
Вечер сильных решений,
ярких побед и главных имён рынка
16 июня · «Воробьёвы Холл»
Купить билет