Расхождение статистики: почему цифры разные
Расхождение статистики — это разница между показателями одной и той же цепочки в отчётах разных систем учёта. Сеть насчитала сто кликов, аналитика рекламодателя — девяносто два перехода, подтверждённых конверсий меньше, чем заявок в CRM. Оператор собирает скриншоты, вебмастер требует объяснений, рекламодатель не понимает, за что платит. Расхождение статистики — не аномалия и не чья-то ошибка, а свойство любой цепочки, где одно событие считают несколько систем. В этой статье — где именно теряются клики и конверсии, какой порядок сверки закрывает большинство случаев за один проход и что искать в логах постбэков.
Причины
Каждая сторона измеряет своё событие в своей точке. Трекер сети регистрирует клик по партнёрской ссылке — в момент перехода. Счётчик на сайте рекламодателя видит визит — уже после редиректа и загрузки страницы, и только если скрипт успел сработать. Конверсию сеть узнаёт из s2s-постбэка, рекламодатель — из своего трекера или CRM. Это три разных измерения одного пути, и у каждого своё определение события и своя погрешность. Сравнивать их один к одному — всё равно что сравнивать показания спидометра и навигатора: оба про скорость, но считают её по-разному.
Вторая причина — фильтрация. Методики подсчёта крупных рекламных систем опираются на отраслевые рекомендации IAB: роботов, ошибки браузеров и непользовательскую активность в отчёты не берут. Но антифрод у каждой системы свой: то, что один счётчик запишет как клик, другой спишет в недействительный трафик. В практике рекламных аудитов нормой считается расхождение до 15%, а с учётом блокировщиков рекламы и различий антифрода — до 15–20%. Всё, что выходит за этот коридор, уже сигнал: ищут ошибку установки кода, кэширование вызовов счётчика или потерю части запросов.
Третья причина — границы суток. Сеть считает статистику по своему часовому поясу, рекламодатель — по своему. Конверсия в 23:58 по времени сети попадает в другой день в отчёте рекламодателя, и дневные срезы расходятся при одинаковых итогах. Месячные суммы при поясной разнице почти сходятся: несколько событий на краях суток переезжают в соседние дни, а за месяц взаимно гасятся. Если итоги равны, а дни нет — это именно пояса, а не потеря данных. Дешевле всего закрыть вопрос один раз: зафиксировать в договоре, по какому поясу стороны сверяются.
Четвёртая — дедупликация и атрибуция. Платформы склеивают повторные заявки от одного клиента, ставят конверсию последнему клику, ограничивают окно атрибуции. Если сеть и рекламодатель настроили эти правила по-разному, количество конверсий разойдётся при полностью исправной технике: обе цифры верные, просто каждая система посчитала свои события. Поэтому правила склейки дублей и окно атрибуции согласуют до запуска потока, а не после первого спорного отчёта.
Пятая — потерянные постбэки. s2s-запрос не дошёл из-за таймаута на стороне приёмника, в ссылке поменялось имя обязательного параметра, идентификатор клика передался пустым — и конверсия, которая у рекламодателя есть, в сети не появилась. Отдельный случай — изменения на стороне рекламодателя: обновление лендинга, смена домена, перенос трекера. В пятницу всё работало, в понедельник постбэки ушли не туда, и никто этого не заметил, пока не сверили отчёты.
Шестая причина — дата события в отчёте. Кабинет сети обычно ставит конверсию в тот день, когда пришёл постбэк, аналитика рекламодателя — в день визита. Постбэк, задержавшийся на несколько часов или повторно отправленный на следующий день, попадает в другой период, и две системы показывают одно событие в разных числах месяца. Поэтому сверяют закрытые периоды, а не «вчерашний день»: у открытых дней цифры по определению ещё изменятся.
Расхождение статистики в таких условиях — норма. Сигналом служит не сам факт разъехавшихся цифр, а его величина и поведение во времени: насколько цифры разошлись, с какого дня и держится ли разрыв на одном уровне.
Клики
Клик проходит путь из нескольких шагов: посетитель нажимает ссылку у вебмастера, трекер сети записывает клик и отдаёт редирект, браузер загружает страницу рекламодателя, там срабатывает счётчик аналитики. На каждом шаге часть событий теряется. Редирект не открылся из-за ошибки в ссылке или медленного ответа трекера. Страница грузилась долго, и посетитель ушёл раньше, чем успел сработать скрипт. Блокировщик рекламы отрезал счётчик. Переход сделал робот, и антифрод рекламодателя его отфильтровал. Кэш отдал закэшированный ответ без вызова счётчика. Каждая из этих причин оставляет одну и ту же картинку: клик в отчёте сети есть, визита в аналитике рекламодателя нет.

Из этого следует главное: клик сети и визит в аналитике — разные события с разными определениями, а не одна величина в двух таблицах. Аналитика может считать визит по факту загрузки страницы, трекер — по переходу через редирект; поэтому «потери» между ними бывают и тогда, когда ничего не сломано. Платформы партнёрского трекинга описывают расхождение как проблему всей цепочки учёта и рекомендуют проверять её в нескольких точках — от ссылки до постбэка, а не только сверять итоговые отчёты.
Практический порядок такой. Сначала сравнивают клики по дням. Расхождение, которое держится на одном уровне каждый день — скажем, сеть стабильно видит на восемь процентов больше, — говорит о методике или фильтрах. Провал в отдельные дни — о технических сбоях: в тот день что-то произошло, и дата это показывает. Затем смотрят в разрезе площадок и кампаний: расхождение на одной площадке — повод проверить её размещение и формат ссылки; равномерная разница по всем площадкам указывает на общую часть цепочки, а не на конкретное размещение.
Ожидаемое направление разницы тоже полезно знать заранее. Сеть записывает клик в момент перехода, до всякой проверки; рекламодатель применяет свои фильтры после. Поэтому при исправной технике у сети цифра обычно выше, а не ниже — не «сеть завышает», а порядок фильтрации. Если у сети оказалось меньше, чем у рекламодателя, это нетипичная картина, и искать нужно не фильтры, а обрыв цепочки: редирект, ссылку, доступность трекера.
Допуск заранее фиксируют в договоре с рекламодателем: чей учёт по кликам основной, какой процент расхождения считается рабочим, в какой срок стороны сверяются. Тогда каждая сверка не превращается в спор о том, что считать нормой. Отдельно стоит проверить саму ссылку: корректно ли передаётся идентификатор клика, не обрезают ли его редиректы или лендинг, не менялся ли адрес приёмника постбэка после последних правок на сайте рекламодателя.
Конверсии
У конверсии в CPA одно название и несколько состояний. Заявка появилась у рекламодателя, он отправляет s2s-постбэк в сеть, сеть ставит конверсию на холд, после проверки подтверждает её или отклоняет. Рекламодатель в отчёте видит свои лиды, сеть — поступившие и подтверждённые, вебмастер — холд и подтверждение. Пока холды по периоду не закрыты, три цифры по определению не могут совпасть: они про разные статусы одного потока.

Расхождения внутри этой цепочки делятся на четыре типа. Первое — постбэк не дошёл: таймаут, ошибка в адресе приёмника, обязательный параметр передан пустым. Второе — дубль склеен: дедупликация рекламодателя или сети убрала повторную заявку от одного клиента. Третье — холд кончился отклонением: рекламодатель не подтвердил заказ или антифрод срезал подозрительную конверсию. Четвёртое — разная атрибуция: конверсию записал другой источник или другое окно. С первыми двумя работает техника — повторная отправка и проверка ссылки; с последними — согласование правил до запуска потока. Подробнее про статусную модель — в материале про холды и подтверждение конверсий.
Из-за холдов сверять отчёты нужно по одному статусу. Самый честный срез для первой сверки — поступившие заявки: их видят обе стороны почти одновременно, холды ещё ничего не отфильтровали. Подтверждённые конверсии сравнивают после того, как холды по периоду закрылись: сверять подтверждения в середине периода — значит сравнивать цифры, которые ещё меняются. Это же объяснение хватает и для вебмастера, и объясняют ему механику со стороны сети, без обещаний: конверсия появилась в кабинете, но до выплаты ей нужно пройти холд, и цифра в отчёте рекламодателя не обязана совпадать с цифрой в кабинете в каждый отдельный момент.
Окно атрибуции и правила склейки дублей фиксируют до старта. Если рекламодатель ставит конверсию на первый клик, а сеть — на последний, часть конверсий уедет в чужие источники, и каждая сверка будет находить один и тот же «недостающий» процент. Достаточно один раз письменно договориться, чья модель основная, — и этот тип расхождений исчезает из обсуждения.
Сверка
Сверка отличается от спора наличием порядка. Последовательность, которая закрывает большинство случаев за один проход, выглядит так.
Сначала фиксируют период и срез: одна дата начала, один часовой пояс, один разрез — день, оффер, вебмастер. Потом сравнивают итог за период. Если итоги сходятся в пределах допуска, а дни нет — это часовые пояса, и дальше спорить не о чем. Если расходится и итог — спускаются на дневные срезы и находят день, с которого цифры разъехались. Точечное расхождение в один день обычно означает сбой или изменение: обновление ссылки, правки на лендинге, паузу в постбэках. Равномерное по всем дням — методику учёта.

Для каждой расходящейся конверсии есть ровно один арбитр — идентификатор клика. Берут двадцать конверсий, которых не хватает в отчёте сети, и проходят каждую по цепочке: есть ли клик с таким идентификатором у сети, дошёл ли постбэк, что с ним сделал антифрод, где конверсия у рекламодателя. По каждой записывают результат: потерянный постбэк, пустой идентификатор, отклонение антифрода, чужая атрибуция. После двадцати таких проходов причина обычно видна без всякой статистики: двадцать примеров складываются в две-три повторяющиеся категории, и дальше работа идёт по категориям, а не по отдельным заявкам. Как устроен этот учёт в платформе — в разделе про выплаты и учёт.
Условный пример той же недели. Сеть показала пять тысяч кликов, аналитика рекламодателя — четыре тысячи шестьсот: разница восемь процентов, в пределах допуска, вопрос к кликам закрыт. Конверсий рекламодатель передал триста двадцать, в сети записалось триста пять. Пятнадцать расходящихся конверсий прошли по цепочке: у девяти в логе сети нет ни клика, ни постбэка — запросы ушли не туда после смены адреса приёмника; у шести идентификатор клика пришёл пустым — его терял новый лендинг. Две конкретные причины и два исправления вместо недели переписки со скриншотами.
Допуск закрепляют письменно. В договоре с рекламодателем имеет смысл указать: чей учёт основной по кликам и по конверсиям, какой процент расхождения считается рабочим и в какой срок стороны делают сверку. Плюс назначают регулярность: еженедельная сверка по трём-четырём цифрам — клики, заявки, подтверждённые конверсии, выплаты — снимает большинство вопросов до того, как они дойдут до переписки с рекламодателем.
Логи
Логи — то, что отличает сверку от гадания. В кабинете сети по каждому конверсионному событию должны быть видны дата и время, идентификатор клика, значения параметров постбэка и статус обработки. В логах постбэков видно событие, которого нет ни в одном отчёте: запрос, который рекламодатель отправил, а сеть не приняла. По одной такой записи находится то, что в отчётах выглядит как «просто разница в цифрах»: неверный адрес приёмника, пустой параметр, повторная отправка.
Что искать в логах при расхождении. Постбэк без записи у приёмника — не дошёл или ушёл на неверный адрес; сверяют адрес и повторяют отправку. Запись с пустым идентификатором клика — ссылка или лендинг потеряли его, и такую конверсию корректно атрибутировать нельзя; чинят ссылку, а не запись. Повторные записи с одним идентификатором — проверьте, кто склеил дубль: если у обеих сторон, вопроса нет; если только у одной — расходятся правила дедупликации. Отказ с признаком антифрода — сверьте с правилами оффера и покажите вебмастеру причину, чтобы он исправил трафик, а не спорил со статусом.
Сверку закрепляют как процедуру, а не как реакцию на конфликт. Процедура отвечает на три вопроса: кто и в какой день недели выгружает данные, какой шаблон выгрузки — период, оффер, вебмастер, статус — и что происходит со случаем, который не закрылся за один проход. С таким регламентом сверка из аврала превращается в плановую операцию на полчаса в неделю.
Сеть, которая даёт оператору логи постбэков и формат s2s, совместимый с конвенцией Affise, снимает большую часть этой работы: те же ссылки и параметры, что приняты на рынке, и полная история запросов (постбэки и S2S). Уведомления о событиях в систему клиента добавляют к этому раннее предупреждение: постбэк перестал доходить не в момент плановой сверки, а в момент сбоя. Если вы выбираете платформу под свою сеть, проверьте на демо ровно это: можно ли найти конкретный постбэк по идентификатору клика, увидеть причину отказа и выгрузить период целиком.
Расхождение статистики между сетью и рекламодателем не исчезает полностью никогда — и не должно: разные системы честно считают разные события. Управляемая величина другая: сколько времени проходит от момента «цифры разошлись» до найденной причины. Логи, согласованный допуск и порядок сверки сокращают это время до часов; спор по скриншотам оставляет его в днях.
Если поднимаете собственную CPA-сеть и хотите такой учёт на своей платформе — оставьте заявку на подключение тарифа «CPA-сеть» или посмотрите тарифы.