Кросс-доменный трекер для девелопера
First-touch атрибуция без cookies через 6 сайтов
Контекст и проблема
Пользователь заходил с рекламы на лендинг посёлка, уходил, через неделю возвращался на корпсайт и оставлял заявку. Метрика видела второй визит как «прямой трафик» — Директ не получал атрибуцию. Маркетолог не понимал, какой посёлок и канал реально работает. Каждый лендинг на отдельном домене, cookies между сайтами не передаются, стандартный cross-domain tracking ломается при переходе через органику.
Что нужно было сделать
Связать первое посещение любого из 6 сайтов с итоговой заявкой. Показать полный путь пользователя: лендинг A (откуда пришёл) → корпсайт (где заявка). Сохранять first-touch атрибуцию без cookies и без зависимости от сторонних платформ.
Как решал
Стратегия — Fingerprinting вместо cookies
Стратегия — Fingerprinting вместо cookies
Canvas + WebGL + параметры экрана + язык + ядра CPU + часовой пояс → fingerprint → сервер → постоянный uid (5-значный). Отклонены: URL-параметр ?uid (ломается при прямом вводе), iframe-пинг (блокируется Safari ITP), Метрика cross-domain (нет кастомных отчётов, нет API для CRM).
Единый трекер — 1 строка на все сайты
Единый трекер — 1 строка на все сайты
JS-тег ~4 КБ: `<script src="https://y-r-a.ru/t/tracker.js?t=ТОКЕН" defer></script>`. Один токен привязывает все сайты к аккаунту клиента. Асинхронно, не блокирует загрузку. Дедупликация: повторный визит на ту же страницу в 30 сек не записывается. Поддержка SPA: перехват history.pushState + popstate.
Запись визитов и передача uid в формы
Запись визитов и передача uid в формы
POST /api/visit.php: uid, URL, title, реферер, UTM, устройство, страна, IP. Любая форма с data-tracker-form автоматически получает скрытое поле tracker_uid — менеджер видит uid в письме с заявкой.
Дашборд journeys.php
Дашборд journeys.php
Показывает только пользователей, посетивших несколько сайтов. Столбцы: первый сайт, utm_source, цепочка переходов, последний источник, дней между касаниями. Пример: [Посёлок Сосновый] (yandex/cpc) → [Корпсайт] (прямой) — прямое доказательство работы рекламы.
Виджет «Номер подарка»
Виджет «Номер подарка»
На лендинге: `<div data-tracker-gift>` показывает uid пользователю. При звонке клиент называет номер → менеджер мгновенно открывает историю. Снижает барьер идентификации: клиент сам называет свой uid без объяснений.
Схема БД и агрегаты
Схема БД и агрегаты
clients (аккаунты и токены), niches, sites (domain, niche_id), fingerprints (fingerprint → uid, глобально), visits (uid, client_id, site_id, url, utm, device, country), events (конверсии), daily_stats (агрегаты, cron 00:05). Chart.js-дашборд показывает динамику визитов и конверсий.
Результат
Инструмент закрывает слепое пятно стандартной аналитики — связь между первым рекламным касанием на одном сайте и заявкой на другом. Масштабируется на любое количество сайтов без изменений инфраструктуры: один токен → неограниченное число доменов.