при этом не переписывать десятки форм и обработчиков.
Решение
Реализована универсальная система, которая работает на всех формах сайта без вмешательства в существующую логику.
Получение visitor ID
ID берётся из Яндекс.Метрики (clientID). Если Метрика недоступна (например, из-за блокировщика рекламы или антивируса), автоматически генерируется fallback ID.
Надёжное хранение
Идентификатор сохраняется:
в localStorage — для работы на фронте,
в cookie — для передачи в PHP.
Это гарантирует сохранность ID при любых сценариях.
Работа со всеми формами без правок
Скрипт:
динамически добавляет скрытое поле во все формы,
поддерживает попапы и динамически загружаемые элементы,
работает даже с нестандартными формами без <form>.
Универсальная интеграция с CRM
На сервере реализован единый PHP-хук:
автоматически добавляет visitor ID в передаваемые в CRM данные,
не требует изменения существующих обработчиков.
Результат
Все заявки в CRM теперь содержат visitor ID;
Можно связывать обращения одного пользователя;
Улучшена сквозная аналитика и маркетинг;
Внедрение выполнено без риска для текущего сайта.
Итог
Решение реализовано централизованно, отказоустойчиво и масштабируемо — без необходимости переписывать существующий код и формы.