INOTrackбыстрота, надежность и ахуенность
статья · 8 мин чтения

Расходы из VK Ads и Яндекс.Директа автоматически: подключение и сопоставление с потоками

Расход подтягивается из кабинета раз в час и ложится на те же кампании и объявления, что и клики. Как подключить и почему расход привязан к кампании, а не к потоку.

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

В inotrack расходы VK Рекламы и Яндекс.Директа подтягиваются по API раз в час и ложатся на те же кампании, группы и объявления, по которым идут клики. Ниже — как это подключить на своём сервере, как устроено сопоставление и почему расход привязан к кампании, а не к потоку.

Как расход находит свои клики

Сначала механика — без неё настройка превращается в набор заклинаний.

Строка расхода из кабинета — это «кампания, группа, объявление, день, сумма». Клик в трекере — это «поток, источник, параметры ссылки». Чтобы посчитать ROI, их нужно связать. В inotrack связь идёт по четырём ключам:

  • источник трафика — к нему привязывается подключение кабинета;
  • кампания — клик берёт её из utm_campaign (или campaign, campaign_id);
  • группа объявлений — из utm_content (или adset);
  • объявление — из utm_term (или creative).

Интеграция пишет расход в те же ключи. Если в ссылке объявления стоят идентификаторы из кабинета, а интеграция настроена на связь по ID, расход и клики встречаются в одной строке отчёта.

Отсюда главное правило: шаблон ссылки в объявлении и режим связи в интеграции должны говорить на одном языке. ID с ID, названия с названиями.

Что нужно на своём сервере

У self-hosted есть особенность: вход «одной кнопкой» работает через OAuth-приложение, и на своём сервере это приложение — ваше.

Владелец инстанса один раз регистрирует приложение в консоли разработчика площадки и вписывает его идентификатор и секрет в файл настроек сервера:

  • для Яндекса — INOTRACK_YANDEX_CLIENT_ID и INOTRACK_YANDEX_CLIENT_SECRET; одно приложение Яндекса может обслуживать Директ, Метрику и Вебмастер, если в нём включены нужные права. Для Директа это доступ к API Директа;
  • для VK Рекламы — INOTRACK_VK_CLIENT_ID и INOTRACK_VK_CLIENT_SECRET.

Адрес возврата, который нужно указать в приложении, — на домене вашей панели:

https://<панель>/api/integrations/oauth/yandex_direct/callback
https://<панель>/api/integrations/oauth/vk_ads/callback

Без этих настроек кнопка входа ответит, что OAuth-приложение на сервере не настроено. Токены можно вставить и вручную — в форме есть поля «Access token» и «Refresh token», — но обновляться сами они не смогут. Для VK Рекламы это существенно: её токен доступа живёт сутки.

Ещё одно условие: на сервере должен быть задан ключ шифрования интеграций. Установщик генерирует его сам. Токены кабинетов хранятся на вашем сервере зашифрованными и обратно в форму не отдаются.

Шаг 1. Источник и шаблон ссылки

Откройте «Источники» → «Новый источник». Источник хранит шаблон параметров для ссылки объявления и связывает клики с расходами кабинета.

VK Реклама. Тип — «ВКонтакте». В поле «Параметры ссылки»:

utm_campaign={{ad_plan_id}}&utm_content={{campaign_id}}&utm_term={{banner_id}}

Здесь есть ловушка: в макросах VK campaign_id означает группу объявлений, а кампания — это ad_plan_id. Перепутаете — расход ляжет мимо кликов. Собственный идентификатор клика VK дописывает к ссылке сам, трекер его сохраняет.

Яндекс.Директ. Тип — «Яндекс.Директ». Параметры:

utm_campaign={campaign_id}&utm_content={gbid}&utm_term={ad_id}

{gbid} — идентификатор группы, {ad_id} — объявления.

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

Шаг 2. Подключение кабинета

«Интеграции» → «Рекламные площадки» → «Подключение».

Подключение рекламной площадки для импорта расходов: кабинет и токен
  1. Вид подключения — «VK Реклама» или «Яндекс.Директ».
  2. Источник трафика — источник из первого шага. Через него расход свяжется с кликами.
  3. Связь с кликами трекера — «По ID кампании, группы и объявления». Это режим по умолчанию, и он соответствует шаблонам выше. Режим «По названиям» нужен, только если в метках ссылки у вас названия.
  4. Вход. Кнопка входа откроет страницу площадки. Войдите под аккаунтом с доступом к рекламному кабинету и разрешите доступ.
  5. Выбор кабинета. После возврата трекер покажет список кабинетов аккаунта. Отметьте нужный и нажмите «Сохранить выбор».

У Директа в списке будет ваш собственный аккаунт, а если вы входите под агентством — ещё и клиенты агентства: расход берётся по выбранному клиенту.

Одно подключение — один кабинет. Несколько кабинетов подключаются отдельными записями; каждую можно привязать к своему источнику.

Шаг 3. Ссылка в объявлении

Ссылку для объявления берите на странице потока: там есть вариант «для кабинета площадки» — трекинговая ссылка, к которой уже дописан шаблон источника. Её и вставляйте в объявление.

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

Шаг 4. Первый цикл

Синхронизация запускается при старте трекера и дальше раз в час. Не ждать помогает кнопка «Запустить синхронизацию» в строке подключения.

Подключённые рекламные кабинеты и время последней синхронизации расходов

Что забирается:

  • расход, показы и клики по дням — на уровне кампании, группы и объявления;
  • за текущий день — каждый час;
  • за вчерашний — ещё раз при первом прогоне новых суток: кабинеты досчитывают расход задним числом.

Сутки считаются по UTC. Поэтому «вчерашний» расход окончательно сходится с кабинетом не в полночь по Москве, а после первого прогона нового дня.

Особенности площадок

Яндекс.Директ

  • Суммы без НДС. Трекер запрашивает отчёт без НДС. Если вы привыкли к цифрам кабинета с НДС, расход в трекере будет меньше — это не ошибка.
  • Отчёт строится не мгновенно. Директ может поставить отчёт в очередь. Трекер ждёт его готовности в рамках того же прогона, а не откладывает на час.
  • Уровень объявлений. Расход приходит с идентификаторами кампании, группы и объявления — как раз тем, что стоит в шаблоне ссылки.

VK Реклама

  • Три уровня с другими названиями. Кампания — это «ad plan», группа — «ad group», объявление — «banner». В отчётах трекера они называются привычно.
  • Удалённые объявления. Статистика запрашивается по списку объявлений кабинета, а удалённые в этот список по умолчанию не входят. Расход объявления, которое удалили в течение дня, не подтянется. Останавливайте объявления, а не удаляйте, пока день не закрыт.
  • Валюта кабинета. По умолчанию расход считается в рублях.

Валюты

Расход в рублях, выплата сети в долларах — обычная ситуация. Каждая строка расхода пересчитывается по курсу ЦБ на свою дату; курсы обновляются раз в сутки. Строка, для которой курса нет, не записывается нулём, а попадает в ошибки синхронизации. Нулевой расход в отчёте опаснее отсутствующего: он делает убыточную кампанию «бесплатной».

Расход и потоки

Теперь о том, что часто понимают неправильно.

Расход в inotrack привязан к источнику и кампании, а не к потоку. Кабинет ничего не знает о потоках трекера: он отдаёт сумму по кампании, группе и объявлению. Поэтому:

  • отчёт по источнику, кампании, группе и объявлению показывает расход, прибыль и ROI;
  • отчёт в разрезе потока расход не показывает: панель не предлагает такое сочетание, а API отвечает ошибкой, вместо того чтобы нарисовать ноль;
  • по этой же причине расход, прибыль и ROI недоступны роли баера: его отчёты ограничены его потоками, а источник бывает общим у нескольких баеров.

Как с этим жить на практике:

  1. Одна кампания — один поток. Если каждая рекламная кампания ведёт на свой поток, отчёт по кампании и есть отчёт по потоку.
  2. Называйте одинаково. Кампания в кабинете и поток в трекере с общим префиксом легко сопоставляются глазами.
  3. Не разводите одну кампанию по нескольким потокам. Клики разойдутся по потокам, а расход останется одной строкой.
  4. Отдельный источник на кабинет. Если на одной площадке у вас несколько кабинетов, заведите на каждый свой источник — расходы не смешаются.

Общая картина по деньгам — в P&L финмодуля: подтверждённый доход минус расход на трафик минус прочие расходы, с разбивкой по источникам.

Если расход не сходится

Сравнивайте одну кампанию за один день в одной валюте.

  • Расхода нет вообще. Откройте подключение: ошибка последней синхронизации написана в его карточке. Чаще всего это истёкший токен или не выбранный кабинет.
  • Расход есть, но не в тех строках, где клики. Ключи не совпали. В ссылке объявления стоят названия, а интеграция настроена на ID, — или наоборот. Либо в шаблоне перепутаны кампания и группа.
  • Клики есть, расход ноль. Трафик идёт по ссылке без шаблона источника: объявление создано до настройки или ссылка вставлена без параметров.
  • Расход меньше, чем в кабинете Директа. Сравните с суммой без НДС.
  • За вчера не сходится. Дождитесь первого прогона новых суток по UTC.
  • Расход VK меньше. Проверьте, не удаляли ли объявления в этот день.

Площадки без API

Для источников, которых нет в списке интеграций, расход вносится вручную в карточке источника: суммой за период или ценой клика. Во втором режиме трекер умножает цену на число кликов источника, не считая ботов и тестовые клики. Ручной расход участвует в тех же отчётах, что и импортированный.

Итог

Автоматический расход держится на трёх вещах: OAuth-приложение на вашем сервере, шаблон ссылки с идентификаторами кабинета и подключение, привязанное к источнику. После этого расход приходит сам каждый час, а ROI по кампаниям и объявлениям считается без таблиц.

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

Дальше

Другие статьи

статья

Как выбрать трекер для арбитража в 2026

Чек-лист из двенадцати пунктов: что проверить в трекере до того, как вести на него деньги, и как сделать это за неделю теста.

статья

Self-hosted трекер vs облачный: что выгоднее

Разбираем, из чего на самом деле состоит счёт за трекер, и при каких условиях свой сервер выгоднее облака — а при каких нет.

статья

Как настроить постбек Unicom24, Leads.su и Admitad в трекере

Пошагово: clickid в ссылке оффера, постбек-URL трекера в кабинете сети, статусы и суммы, проверка и сверка — на примере трёх CPA-сетей.

статья

Бот-фильтрация и защита лендов от скрейпинга

Боты съедают бюджет, портят статистику и уносят ленды. Разбираем, как трекер отличает их от людей и что безопасно с ними делать.

статья

Переезд с Keitaro за 10 минут

Импорт сам переносит настройки из Keitaro. Разбираем, что именно он забирает, что остаётся на тебе и в каком порядке переключать трафик.

статья

Сквозная аналитика расходов: FB, TikTok, Директ и push-сети

Расход из кабинетов, доход из постбеков и деньги в одном отчёте — без ежедневной таблицы. Как это устроено и где подводные камни.

статья

Как настроить постбек Leads.su, Admitad и CityAds в self-hosted трекере

Три сети — три степени готовности: пресет, пресет через интеграцию и свой маппинг. Разбираем каждую по коду трекера и говорим, что сверить в кабинете.

статья

Сверка конверсий по API: как находить потерянные постбеки

Потерянный постбек не виден изнутри трекера. Разбираем, как сверка с API сети находит такие заявки, дозаписывает их без дублей и что показывает отчёт.

статья

Переезд с Keitaro за вечер: импорт, домены и постбеки

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

статья

Self-hosted трекер на своём VPS: требования, установка и бэкапы

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

Поставь inotrack на свой сервер

Установка одной командой на чистый VPS за 10–15 минут. Ключ — сразу после оплаты на сайте или бесплатный на 7 дней.

Вопросы — в Telegram @SmokeJung.

Поддержка