Ежедневная сверка расхода с API Яндекс.Директа
Выгрузка может «успешно» пройти с неполными данными — заметят это через месяц. Как устроена ежедневная сверка расхода Директа и почему без неё нет доверия.
Есть неприятная особенность любых выгрузок из рекламных кабинетов (тот самый процесс ETL, только без автоматической проверки): они умеют молча врать.
Скрипт отработал, ошибок нет, таблица заполнилась, отчёт построился. А через месяц выясняется, что за прошлый вторник в данных не хватает трети расхода. Отчёт, на основе которого принимали решения, был неверным — и об этом никто не знал.
Откуда берутся дыры в данных
Причин ровно столько, сколько звеньев в цепочке, и все они бытовые.
- Данные в Директе дозревают. Статистика за вчера может уточняться ещё несколько дней: отсеиваются недействительные клики, корректируется расход. Цифра, забранная ночью, к пятнице становится другой.
- Токен доступа истёк. Доступ к кабинету выдаётся на время. Он тихо перестаёт работать, и выгрузка приносит пустоту — формально без ошибки.
- API не ответил. Лимиты, таймаут, разовый сбой на стороне сервиса. Одна кампания не доехала, остальные доехали.
- Кабинет переименовали. Логин рекламного кабинета поменялся, и данные начали складываться «мимо» — в отчёте их нет, хотя деньги тратятся.
Общее у всех этих случаев одно: сбой не выглядит как сбой. Таблица не пустая, график рисуется, тревогу поднимать некому.
Проверка — это отдельная работа
Поэтому мы не считаем выгрузку завершённой в тот момент, когда она закончилась. Каждый день автоматически происходит сверка: сколько денег, по мнению нашего хранилища, потрачено за период — и сколько говорит API Яндекс.Директа.
Логика простая, как инвентаризация на складе:
- Берём сумму расхода из нашей витрины за проверяемый период.
- Отдельным запросом спрашиваем ту же сумму напрямую у API Директа.
- Сравниваем. Если цифры разошлись — это повод разобраться, а не округлить.
Расхождение — не всегда авария. Иногда это те самые дозревающие данные. Но важно, что расхождение видно сразу, а не всплывает через месяц в разговоре с клиентом.
Правило, которое мы вывели на практике: данным можно доверять ровно настолько, насколько регулярно их проверяют. Непроверенная выгрузка — это не данные, а предположение.
Что происходит при расхождении
Сверка не просто ставит красный флажок — она показывает, где именно разошлось: по какому клиенту, какому рекламному кабинету и за какие даты. Дальше данные за проблемный период перезабираются, и сумма сходится.
Отдельно следим за токенами доступа. Сервис проверяет, живой ли доступ к каждому кабинету, — чтобы «выгрузка привезла ноль» не стало открытием месяца. Сейчас под наблюдением около 19 рекламных кабинетов 17 клиентов.
Почему это важно для владельца, а не только для технарей
Владельцу бизнеса всё равно, как устроена выгрузка. Ему важно другое: можно ли принимать решение по этому отчёту.
Без ежедневной сверки любой отчёт — это ещё и вопрос веры. С ней у цифры появляется происхождение: она сошлась с первоисточником, и это проверено не человеком по настроению, а автоматически и каждый день.
Именно поэтому мы считаем сверку не «дополнительной функцией», а условием, при котором аналитику вообще имеет смысл показывать. Что ещё стоит проверить перед подключением — в чек-листе подготовки к сквозной аналитике.