Как работает атрибуция
yclid, direct_campaign_id, vk_click_id: как Maxiflow связывает клик с подпиской.
Задача атрибуции — понять, из какого рекламного клика пришёл конкретный подписчик MAX-канала. Maxiflow сохраняет метки клика на своём редиректе, переносит их через MAX-подписку и записывает в лид. Дальше эти же метки уходят обратно в Метрику как офлайн-конверсия.
Путь клика: от рекламы до лида
Рекламная ссылка ведёт не сразу в MAX, а на промежуточный редирект Maxiflow: /r/<bot>?yclid=...&c=...&post=.... Готовые ссылки собираются в /traffic под нужный источник (Директ, VK или универсальная).
На редиректе Maxiflow делает три вещи одновременно:
- Пишет клик в таблицу сессий:
yclid,direct_campaign_id(параметрc),vk_click_id(параметрrb_clickid) и IP клиента. - Ставит куку
mfx_sidна 30 дней — по ней сессия найдётся, когда пользователь вернётся с MAX-поста. - Инициализирует счётчик Метрики тенанта и дожидается подтверждения
hit callback, только потом редиректит дальше. Без этого визит сyclidне успевает зарегистрироваться и офлайн-конверсия не сматчится.
Куда ведёт редирект
Дальнейший путь зависит от того, указан ли post в URL или channel_post_url у бота.
- Есть пост: пользователь попадает на пост в канале. Под постом — кнопка на
/g/<bot>. Когда её нажимают, браузер отдаёт кукуmfx_sid, Maxiflow поднимает сессию и открывает чат с ботом сstart=mfxsess_<id>. Бот по этому токену достаётyclidиз БД. - Нет поста: пользователь идёт сразу в чат бота с
start-пейлоадом видаyclid_<id>_c_<campaign>_vk_<clickid>. Никакой куки не нужно — метки едут прямо в payload.
Как только пользователь подписывается на канал, бот видит нового участника и создаёт лид. В лид записываются yclid, direct_campaign_id, vk_click_id из сессии или из start-payload.
VK Реклама
Для VK используется тот же редирект /r/<bot>, но метка называется rb_clickid — это макрос {{clickid}} из рекламного кабинета VK. Maxiflow валидирует формат (буквы, цифры, дефис, 6–64 символа) и сохраняет как vk_click_id. Дальше он живёт в сессии, попадает в start-payload как vk_<clickid> и записывается в лид рядом с yclid.
Прямой заход без метки
Если пользователь пришёл на пост без параметров или подписался напрямую через MAX-поиск, у лида не будет ни yclid, ни direct_campaign_id, ни vk_click_id. В интерфейсе такой лид помечен как Органика:
- В карточке диалога
/chatв блоке «Источник» стоит «Органика». - В
/subscribersв колонке источника — чип «Органика». - В
/dashboardэти лиды попадают в сегмент «Органика» на кольцевой диаграмме «Откуда приходят».
Прямой заход не ломает работу бота — магнит выдаётся, подписка засчитывается. Просто в Директ и Метрику такая конверсия не уйдёт, потому что связать её с рекламным кликом нечем.
Fallback по IP для Mini App
Куки не всегда доезжают через MAX-WebView. Если по куке mfx_sid не удалось найти сессию с yclid, /api/mini/check дополнительно ищет по IP клиента за последние 30 минут — но только сессии с непустым yclid. Если находит — использует её yclid для лида. Это спасает атрибуцию в мобильных сценариях, где браузер MAX не шарит куки с страницей редиректа.
Как читать сводку в кабинете
Основные срезы по атрибуции собираются на /dashboard:
- Плитка Из рекламы — все лиды, у которых есть
yclid. Рядом подпись «органика: N» — лиды без метки. - Кольцо Откуда приходят — та же разбивка визуально.
- Фильтр наверху страницы: «Все источники», «Только реклама», «Органика», «Кампания…» — переключает срез всех графиков ниже.
- График Динамика подписчиков — входы в бота по дням за последние 28 дней.
Стоимость по конкретным кампаниям Директа считается в /campaigns: CPL = расход кампаний / лиды, у которых есть yclid и subscribed_at. Заходы в бота без подписки в CPL не попадают.
Если Метрика показывает «Привязано 0 строк из 1», проверьте, что рекламные ссылки указывают именно на /r/<bot>, а не напрямую на max.ru. Без промежуточного редиректа Метрика не видит yclid в визите и не может сматчить офлайн-конверсию.