Кросс-доменный трекер для девелопера
First-touch атрибуция без cookies через 6 сайтов
Пользователь заходил с рекламы на лендинг посёлка, уходил, через неделю возвращался на корпсайт и оставлял заявку. Метрика видела второй визит как «прямой трафик» — Директ не получал атрибуцию. Маркетолог не понимал, какой посёлок и канал реально работает. Каждый лендинг на отдельном домене, cookies между сайтами не передаются, стандартный cross-domain tracking ломается при переходе через органику.
Связать первое посещение любого из 6 сайтов с итоговой заявкой. Показать полный путь пользователя: лендинг A (откуда пришёл) → корпсайт (где заявка). Сохранять first-touch атрибуцию без cookies и без зависимости от сторонних платформ.
Как это сделано
Стратегия — Fingerprinting вместо cookies
Canvas + WebGL + параметры экрана + язык + ядра CPU + часовой пояс → fingerprint → сервер → постоянный uid (5-значный). Отклонены: URL-параметр ?uid (ломается при прямом вводе), iframe-пинг (блокируется Safari ITP), Метрика cross-domain (нет кастомных отчётов, нет API для CRM).
Единый трекер — 1 строка на все сайты
JS-тег ~4 КБ: одна строка подключения, один токен привязывает все сайты к аккаунту клиента. Асинхронно, не блокирует загрузку. Дедупликация: повторный визит на ту же страницу в 30 сек не записывается. Поддержка SPA: перехват history.pushState + popstate.
Запись визитов и передача uid в формы
POST /api/visit.php: uid, URL, title, реферер, UTM, устройство, страна, IP. Любая форма с data-tracker-form автоматически получает скрытое поле tracker_uid — менеджер видит uid в письме с заявкой.
Дашборд journeys.php
Показывает только пользователей, посетивших несколько сайтов. Столбцы: первый сайт, utm_source, цепочка переходов, последний источник, дней между касаниями. Пример: [Посёлок Сосновый] (yandex/cpc) → [Корпсайт] (прямой) — прямое доказательство работы рекламы.
Виджет «Номер подарка»
На лендинге показывает uid пользователю. При звонке клиент называет номер → менеджер мгновенно открывает историю. Снижает барьер идентификации: клиент сам называет свой uid без объяснений.
Схема БД и агрегаты
clients (аккаунты и токены), 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-дашборд показывает динамику визитов и конверсий.
Инструмент закрывает слепое пятно стандартной аналитики — связь между первым рекламным касанием на одном сайте и заявкой на другом. Масштабируется на любое количество сайтов без изменений инфраструктуры: один токен → неограниченное число доменов.
Частые вопросы
Атрибуция - определение рекламного источника, который привёл к заявке. Стандартная Метрика привязывает конверсию к последнему визиту, а не к первому касанию. Если человек пришёл с рекламы, ушёл, а через неделю вернулся напрямую и оставил заявку - Директ не получает атрибуцию, хотя именно он привёл клиента.
Метрика не отслеживает переходы между разными доменами. Пользователь попал на лендинг с Директа, через несколько дней вручную набрал адрес корпсайта - это запишется как прямой трафик. Реальный first-touch источник теряется, и данные по эффективности каналов искажаются.
Через собственный трекер на основе fingerprinting: при первом визите генерируется uid по параметрам браузера и устройства, который сохраняется на сервере. При заявке на любом из связанных доменов uid передаётся в форму автоматически. Менеджер видит полный путь: первый сайт, рекламный источник, дату первого контакта.