Как я забираю расходы Яндекс Директа в учёт

14.10.2026 · 8 мин чтения
Тёмная пластина и коралловый диск на чёрном подиуме
Пока расход Директа живёт только в кабинете, а сделки живут в CRM, связь между ними я собираю руками. Здесь один узкий кусок этой работы: поле Cost в отчёте, параметр IncludeVAT, место, куда я кладу сумму в учёте, и проверки до того, как цифра коснётся сделки.

Зачем я забираю расход в учёт

Запрос простой: сколько кампания потратила и какие сделки с неё дошли до учёта. Пока деньги в Директе или в Метрике, а менеджеры в CRM, ответ живёт в недельной таблице. Я такой свод не держу: ошибку в нём видно слишком поздно.
Два контура я не смешиваю. В первом сделки из CRM уходят в Метрику, и Директ оптимизируется по этим заявкам. Во втором расход Директа приходит в CRM или в BI и лежит рядом с продажами. Первое улучшает закупку. Второе показывает расход уже внутри учёта.
Виджет Метрики в amoCRM сам расход не принесёт. Справка говорит прямо: amoCRM отдаёт данные в Метрику и не получает их обратно. Для этой связки расход смотрят в отчёте «Источники, расходы и ROI». Если решение в карточке сделки, сумма должна жить в регистре CRM.
  • Видно, какая кампания съела план, а какая сидит без денег.
  • Рядом с расходом лежат лиды и сделки с теми же метками.
  • В регистр тяну только то, что стыкуется с лидом. Остальное оставляю в кабинете.

Токен и сервис отчётов здесь не разбираю

Как получить токен и как устроен Reports API, я уже разобрал в отдельной статье. Здесь только расход: какое поле забираю, входит ли в него НДС, куда кладу строку в CRM и что сверяю, прежде чем сумма попадёт в сделку.

Что я читаю в поле Cost

В Reports API Директа версии v5 поле Cost — стоимость кликов за выбранный срез. В учёт беру не запросы из Мастера отчётов, а агрегат за день или неделю: кампания или объявление, дата и сумма. Мастер открываю раньше, только чтобы проверить кампании и метки. В CRM уходит уже агрегат.
Когда нужен уровень объявления, беру тип отчёта AD_PERFORMANCE_REPORT. В нём есть AdId, CampaignId, Impressions, Clicks и Cost. Если хватает кампании целиком, беру CAMPAIGN_PERFORMANCE_REPORT. Для BI в Битрикс24 в справке описан тот же отчёт и набор tracking_source_expenses. Там лежат Date, CampaignId, EXPENSES, CLICKS, CPC, а строки стыкуют по SOURCE_ID.
Сумму я прошу в обычной валюте аккаунта. В заголовке для этого стоит returnMoneyInMicros со значением false. Если оставить микроединицы, в регистр попадёт число другого масштаба. Запрос при этом может быть успешным, и ошибку видно только на сверке с кабинетом.
Тёмная панель отчёта с тремя коралловыми столбцами на чёрном фоне
В учёт я забираю колонку стоимости кликов, а не ленту поисковых запросов.

Что значит IncludeVAT

Рядом с Cost стоят два переключателя запроса. IncludeVAT принимает YES или NO и решает, войдёт ли НДС в сумму. IncludeDiscount решает, попадут ли скидки. Это не косметика. Если вчера сумма пришла с налогом, а сегодня без, регистр и кабинет разъедутся при тех же кликах.
Отчёт Метрики «Директ, расходы» показывает расход без НДС и вешает его на дату клика. При оплате за конверсии эта дата может не совпасть с датой конверсии в отчёте Директа. Кампании с оплатой за показы там не отображаются. На сверке с кабинетом я сначала проверяю эти отличия, потом ищу сбой выгрузки.
В коннекторе к Битрикс24 та же развилка лежит в двух полях: spent без НДС и spent_vat с НДС, рядом campaign_id, phrase и clicks. В регистр кладу оба или подписываю выбранный режим. Число без пометки про налог не принимаю.
ПараметрКак я читаю сумму
IncludeVAT со значением YESНДС входит в Cost
IncludeVAT со значением NOНДС в Cost не входит
IncludeDiscountСкидка либо сидит в сумме, либо снята до неё
returnMoneyInMicros со значением falseСумма в валюте аккаунта, не в микроединицах
Отчёт Метрики «Директ, расходы»Без НДС, дата клика, нет кампаний с оплатой за показы

Куда я кладу расход, пока он не в сделке

Cost я не пишу сразу в карточку сделки. Сначала строка падает в регистр: дата, кампания, сумма и признак налога. Сделка получает часть расхода только после склейки. Клей — utm, ClientID в поле _ym_uid и для офлайн-конверсий yclid. Два лида с одного клика ломают связку: сумма прилипнет дважды или не прилипнет никуда.
СистемаКуда ложится расходКогда обновляется
Битрикс24Сквозная аналитика или tracking_source_expenses в BIПосле подключения кабинета и по запросу отчёта
1С:CRMРегистр «Затраты рекламных кампаний»Регламентное задание раз в сутки по умолчанию
RetailCRMМодуль «Маркетинговые расходы»Синхронизация примерно раз в 12 часов
amoCRMВ карточку штатно не приходит, цифра остаётся в МетрикеСделки уходят в Метрику, расход обратно не едет
Свой контур ETLСвой регистр из отчёта по объявлениям или кампаниямПо расписанию скрипта, Make или n8n
Стопка тёмных карточек в лотке и папка, связанные коралловой лентой
Сумма сначала лежит в регистре расходов и только потом стыкуется со сделкой.
В Битрикс24 Директ подключают в сквозной аналитике: CRM собирает расход и трафик, оттуда же окупаемость и стоимость лида. Свой срез беру в BI-конструкторе, снова AD_PERFORMANCE_REPORT и tracking_source_expenses по SOURCE_ID.
В 1С:CRM затраты грузят через «Статистику сайта», опция «Загружать затраты из Яндекс.Директ», задание по умолчанию раз в сутки. Окупаемость в «Сквозной аналитике» считают от выручки, себестоимость товара туда сама не входит. Поле cost в офлайн-заказах Центра конверсий — себестоимость заказа, не стоимость кликов. В регистр рекламы я его не кладу.
В RetailCRM модуль «Маркетинговые расходы» ходит в Директ по OAuth и обновляется примерно раз в 12 часов. Смотрю отчёт «Финансы», раздел маркетинг. Источники заказов модуль берёт из Google Analytics и utm. Источники Метрики в описании модуля не заявлены.
С amoCRM правило отдельное. Штатная связка отдаёт сделки и контакты в Метрику и не кладёт расход в карточку. Для передачи нужны UTM, _ym_uid и _ym_counter, окно — 48 часов после создания сделки. Если цифра нужна внутри amo, путь обходной: промежуточный сервис, своё поле через API или отдельный дашборд. Roistat и Alytics держат расход у себя, не в родном поле CRM. Для Alytics нужны ymid и utm. Для API Директа в Roistat нужны права на редактирование и доступ к API.
  • Таблица из Мастера отчётов — черновик. В сделку кладу её после сверки с кабинетом.
  • Модуль CRM забирает расход сам, если контур — деньги внутри учёта.
  • ETL на Make, n8n или скрипте нужен, когда регистра нет. Там же фиксирую IncludeVAT и IncludeDiscount.
  • Файл расходов Директа в Метрику не гружу при включённой автопередаче: цифры удвоятся.

Что я сверяю до сделки

Сверку я делаю за вчера, до того как регистр начинает кормить отчёт по сделкам. Сравниваю кабинет или ответ API, регистр CRM, отчёт Метрики и метки на сделках. Пока эти четыре слоя не сходятся, цифра в сделку не попадает.
  1. Сумма Cost за вчера в API или в кабинете равна полю CRM, строке tracking_source_expenses или spent в коннекторе.
  2. Налог один: IncludeVAT в запросе, spent и spent_vat в коннекторе, отчёт Метрики «Директ, расходы» без НДС.
  3. Дата ясна заранее: клик или конверсия. При оплате за конверсии Метрика и Директ могут смотреть на разные дни.
  4. Ручной файл расходов Директа не загружен в Метрику поверх автопередачи, иначе расход удваивается.
  5. На объявлениях, быстрых ссылках, в коллтрекинге и в сделках за период одни utm и один ClientID.
  6. В регистре валюта аккаунта: returnMoneyInMicros в запросе был false.
  7. Дубля лида с одного клика нет, иначе сумма сядет на две сделки или останется на кампании.
Три коралловые галочки на тёмных плитках и лупа над средней
В сделку сумма попадает только после сверки налога, даты и меток.
Коллтрекинг проверяю отдельно. Звонок — свой тип конверсии. Без него часть лидов останется без источника, даже если расход кампании уже лежит в CRM.

Когда сумма честная, а окупаемость всё равно разная

Совпавший Cost не гарантирует одну окупаемость в CRM и в Директе. Расходятся цели, дата клика и дата конверсии, налог. В 1С расчёт не видит себестоимость. В Метрике окупаемость для цели orders смотрит на прибыль и расходы, и цель может быть не той, что в стратегии Директа.
Cost в отчёте статистики — стоимость кликов, ей место в регистре рекламы. Поле cost в офлайн-заказах — себестоимость заказа. В сделку оно приходит другим путём.
Когда сверка за вчера сходится, регистр может кормить отчёт по сделкам. До этого цифра остаётся в регистре и в кабинете. Почти верную сумму руководству не показываю: по ней уже принимают решения.
SEO

Сверю расход до сделки

Посмотрю поле Cost, режим IncludeVAT и регистр CRM и скажу, что сверить, пока цифра не попала в сделку.
SEO-специалист и автор материала
Читайте также