Партнёрка показывает 100 лидов за вчера, трекер показывает 70. Ни одна из цифр не обязана быть неправильной. Системы считают разное, в разное время и по разным правилам, а разрыв обычно складывается из нескольких небольших причин, а не из одной большой ошибки. Чтобы с ним разобраться, перестаньте сравнивать итоги и начните сопоставлять отдельные конверсии.
Ниже порядок работы: что выгрузить, как сопоставить, какие причины проверять первыми, и разобранный пример с выдуманными цифрами. Подход подходит к любому трекеру и любой партнёрке, названия пунктов меню будут отличаться.
Выгрузите конверсии из партнёрки вместе с click ID, выгрузите конверсии из трекера за тот же период в том же часовом поясе и сопоставьте по click ID. Каждая конверсия, которая есть только с одной стороны, попадает в одну из нескольких корзин: разница статусов (pending, rejected), потерянный click ID, постбэк, который не дошёл, сдвиг границы суток, дубли или валюта. Расхождение в пару процентов между кликами и трекером нормально. Если разрыв 30 процентов, одна из корзин большая, и сопоставление покажет, какая.
Шаг 1: перестаньте сравнивать итоги
Две суммы говорят только о том, что разрыв есть. Чтобы найти причину, нужен список строк с каждой стороны. Из партнёрки выгрузите все конверсии за период хотя бы с такими полями: click ID (часто он называется subid или aff_sub), время конверсии, статус, выплата и оффер. Из трекера выгрузите то же самое за тот же период.
Перед сравнением приведите обе стороны к одним правилам:
- Один период и один часовой пояс. Подробнее ниже, это самая частая причина расхождения по дням.
- Одно событие. «Лидом» партнёрка может считать регистрацию, депозит или подтверждённую продажу. Убедитесь, что тип конверсии в трекере соответствует тому же событию.
- Один фильтр по статусам. Если в итог партнёрки входят pending и rejected, включите их и в свою выгрузку, а фильтровать будете потом.
Шаг 2: сопоставьте по click ID
Положите оба списка в таблицу и используйте click ID как ключ. Получится три группы:
- Есть в обоих. Совпали. На этих строках сравните статус и выплату, чтобы поймать более мелкие различия.
- Только в партнёрке. Конверсия есть у партнёрки, а у трекера нет. Именно эти строки нужно разбирать: постбэк не пришёл, click ID пустой или другой, либо вмешался фильтр.
- Только в трекере. Встречается реже. Обычно это дубли, тестовые постбэки или конверсия, которую партнёрка потом удалила.
Строки партнёрки без click ID вообще образуют отдельную группу. Их не сопоставить, зато они показывают, где ID был потерян. Как значение путешествует по цепочке, описано в материале click_id и subid: как передать параметры через редирект.
Типичные причины в порядке проверки
| Причина | Как проявляется | Как проверить и исправить |
|---|---|---|
| Часовой пояс и границы суток | За один день цифры расходятся, за неделю совпадают; разница переезжает на соседний день | Узнать пояс отчёта партнёрки и выставить такой же в трекере или сравнивать целые недели |
| Разные статусы | В итог партнёрки входят pending и rejected, трекер считает только approved, или наоборот | Сравнить по статусам. Строки в pending попадут в доход, только когда их апрувнут |
| Постбэк не срабатывает на часть событий | Конверсии есть у партнёрки и нет в трекере, click ID при этом корректный | Проверить URL постбэка для каждого типа события и лог постбэков в партнёрке. См. постбэк не приходит |
| Click ID теряется на части источников или устройств | Строки партнёрки с пустым subid, часто сгруппированные по источнику, браузеру или устройству | Сгруппировать строки с пустым subid по источнику и устройству и проверить этот путь |
| Дубли | Один click ID дважды или постбэк отправлен дважды по одной конверсии | Убрать дубли по click ID и событию, выяснить, повторяет ли партнёрка постбэки |
| Окно атрибуции | Конверсии, случившиеся через несколько дней после клика, есть только с одной стороны | Сравнить срок жизни клика в трекере с окном партнёрки |
| Валюта и выплата | Количество совпадает, деньги нет | Сравнить выплату по совпавшим строкам, проверить валюту в постбэке и валюту хранения в трекере |
| Боты считаются по-разному | Клики расходятся ещё до всяких конверсий | Сравнить сырые клики и клики только людей на каждой стороне, см. ниже |
| Кэш и задержка отчётов | Цифры меняются, если обновить страницу через час | Смотреть время обновления отчёта, сравнивать закрытые периоды, а не текущий час |
Часовой пояс и границы суток
Партнёрки отчитываются в фиксированном часовом поясе, который часто нельзя поменять, а трекеры в поясе сервера или в поясе самого пользователя. Конверсия в 23:40 в одном поясе уже следующий день в другом. За месяц эффект усредняется, но за один день способен переложить заметное число лидов из одного столбца в другой.
Помогают две привычки. Узнайте, в каком поясе отчитывается ваша партнёрка, и запишите это рядом с отчётами. А при сверке берите период, который достаточно длинный и закрыт с обеих сторон, например полные сутки несколько дней назад. В TDS.SO границы суток в статистике следуют часовому поясу пользователя, поэтому выставьте тот же пояс, что и у партнёрки, если хотите, чтобы дневные цифры сходились.
Статусы: pending, approved, rejected
Это самый крупный отдельный источник расхождений на офферах с ручной проверкой, например в финансах, нутре или с любым лидом, который смотрит человек. Партнёрка засчитывает конверсию в момент поступления, со статусом pending. Трекер может считать только approved, а смену статуса записывает, только если партнёрка присылает второй постбэк. В TDS.SO трекер (в бете) берёт доход из approved-конверсий, а расход считает по всем кликам, поэтому лид в pending в доход не попадёт, пока статус не изменится.
Проверьте два момента: отправляет ли партнёрка постбэк при смене статуса (pending в approved, approved в rejected) и обрабатывает ли ваш URL постбэка поле статуса. Если нет, трекер либо никогда не увидит апрув, либо никогда не увидит отклонение.
Боты и количество кликов
Иногда разрыв начинается раньше конверсий. Рекламная сеть выставила счёт за 1000 кликов, трекер показал 870. Причины: клики, при которых ссылка трекера так и не загрузилась (человек закрыл страницу), двойной счёт на стороне источника и трафик, отфильтрованный вашими правилами. Трекер с фильтрацией ботов запишет их с причиной, но в число людей не включит. Источник, как правило, считает каждый отправленный клик.
Сначала сравните сырые клики с сырыми, потом людей с людьми. В TDS.SO обзор показывает всего кликов, уникальных посетителей, людей и ботов по дням, а лог кликов хранит отфильтрованные клики с причиной (например vpn или datacenter), так что видно, что отложено в сторону. Если хотите настроить эту часть, на странице фильтрации трафика описаны уровни и сигналы. Про принцип работы читайте в материале JS fingerprint против блокировки по IP.
Разбор на выдуманных цифрах
Допустим, партнёрка показывает 100 лидов за вчера, трекер 70. Вы выгружаете оба списка и сопоставляете по click ID. Недостающие 30 строк раскладываются так:
| Корзина | Строк | Что это значит |
|---|---|---|
| Пустой click ID у партнёрки | 11 | Все с одного мобильного источника: в браузере приложения ссылка кнопки лендинга шла без параметра |
| Pending у партнёрки | 10 | Click ID корректный, статус pending; трекер считает только approved, поэтому они появятся после проверки |
| Около полуночи | 6 | Конверсии между 23:00 и 01:00; у партнёрки и трекера разные часовые пояса, поэтому они попали на разные дни |
| Постбэк не дошёл | 3 | Click ID корректный, статус approved, в трекере нет; лог постбэков у партнёрки показывает таймауты |
Одиннадцать плюс десять плюс шесть плюс три дают тридцать. Настоящие потери только в первой и последней строках (14 конверсий, по которым вы могли бы оптимизироваться). Pending-строки придут сами, а полуночные лежат в трекере под другой датой. После того как вы исправите ссылку на лендинге и разберётесь с таймаутами, завтрашний разрыв должен сократиться до одних pending-строк, и по этому вы поймёте, что правка сработала.
Обе стороны были правы по своим правилам, поэтому сопоставление не выбирает победителя. Оно превращает «цифры не сходятся» в короткий список того, что можно изменить.
Какой разрыв считать нормальным
Фиксированного числа, на которое можно опереться, нет. Пара процентов между кликами и трекером встречается часто, а небольшая разница в конверсиях ожидаема из-за времени и статусов. Важна стабильность: если разрыв держится на уровне нескольких процентов и объясняется pending-строками и часовыми поясами, оставьте как есть. Если он подскакивает по одному источнику, одному устройству или одному дню, на этом пути что-то изменилось, и сопоставление укажет, на каком.
Ещё одно правило: не принимайте бюджетные решения по вчерашним цифрам, если у оффера есть период проверки. Подождите, пока у большинства pending-строк появится окончательный статус.
Частые вопросы
Какой цифре верить, партнёрки или трекера?
Деньги вам платят по цифрам партнёрки. Для оптимизации полезнее цифры трекера, потому что в них есть ваши sub-параметры. Сверяйте их, чтобы понимать, насколько они расходятся и почему.
Почему в сумме цифры совпадают, а по дням нет?
Это указывает на часовые пояса или отложенные апрувы. Неделя или закрытый месяц сойдутся, отдельный день нет.
Почему у партнёрки конверсий больше, чем в трекере, хотя пустых click ID нет?
Сначала посмотрите на статусы, потом на лог постбэков у партнёрки: там видны неудачные и повторные запросы. Корректный click ID, который не добрался до трекера, чаще всего значит проблему с постбэком.
Как часто сверять статистику?
Для большинства схем достаточно раза в неделю и сразу после смены лендинга, метода редиректа или URL постбэка.
Если вы ведёте конверсии в TDS.SO, на странице аналитики описано, как считаются клики, люди и боты, а трекер с постбэками, конверсиями и ROI находится в бете.
Гайды и разборы о маршрутизации, фильтрации ботов и трекинге от команды TDS.SO.
Все статьи автора