Один скрипт на все страницы и домены сайта: визиты, источники, цели, формы, заявки и, если включено, записи сессий.
Весит несколько килобайт и глушит свои ошибки — сайт не страдает, даже если сервер аналитики недоступен. Ботов и
браузеры автотестов (navigator.webdriver: Selenium, Playwright) не считает.
Код установки
Панель → Настройки сайта → «Код установки». Вставьте перед </head> на всех страницах:
<script async src="https://ваш-сервер/t.js?s=ID"></script>
События уходят туда, откуда загружен скрипт. Если на сайте включён CSP, добавьте адрес сервера в script-src и
connect-src — готовая строка CSP там же, в «Коде установки». Неизвестный идентификатор — t.js отвечает пустым
скриптом /* webvane: unknown site */.
Браузер хранит t.js до часа: изменения настроек сайта (домены проекта, режим согласия, запись) доходят до
посетителей в течение часа.
Вызовы wv(...) до загрузки скрипта (он асинхронный) — через заглушку перед кодом установки, вызовы из очереди
счётчик выполнит сам:
<script>window.wv=window.wv||function(){(window.wv.q=window.wv.q||[]).push(arguments)}</script>
Цели
Отправка форм (form_submit), клики по ссылкам tel: (tel_click) и mailto: (mailto_click) считаются сами.
Свою цель — атрибутом на любом элементе (клик) или на форме (отправка формы считается этой целью вместо
form_submit), или из кода:
<button data-wv-goal="callback">Перезвоните мне</button>
wv('goal', 'order', { sum: 4990 });
Названия и правила целей — экран Цели → «+ Цель» (только администратору); галочка «это заявка» делает цель заявкой.
Заявки
Форма с атрибутом data-wv-lead при отправке передаёт в Webvane заявку вместе с источником визита: имя, телефон,
почту и комментарий из полей формы (по name, id и подсказке поля: name/имя, phone/tel/телефон, mail,
comment/message/сообщ; пароль — никогда). Из кода: wv('lead', { name: 'Иван', phone: '+7…' }). Заявки видны в
карточке визита («Заявка отправлена через форму …») и на экране Цели («Заявки по источникам»).
Формы
Формы находятся сами. Название формы — атрибут data-wv-form-title, aria-label или title, иначе заголовок внутри
формы, иначе текст кнопки отправки; идентификатор — id, name или data-wv-form. Значения полей не сохраняются —
только факт заполнения, время и ошибки (кроме формы заявки, см. выше). В каждую форму счётчик добавляет скрытое поле
wv_vid — номер посетителя и визита для бэкенда сайта (События продукта).
Пользователь продукта
Когда человек вошёл или зарегистрировался, сообщите номер его аккаунта — визиты свяжутся с аккаунтом, а реклама — с шагами в продукте (События продукта):
wv('identify', '4512'); // то же - wv('user', '4512')
Согласие на cookie
В режиме согласия (Настройки сайта → Посетитель и согласие → «режим согласия») счётчик до согласия посетителя не ставит cookie, не пишет запись сессии и не берёт номера Метрики и GA. Визиты при этом считаются, но номер посетителя живёт только в открытой вкладке — каждый новый заход выглядит новым посетителем. Согласие передаёт сайт:
wv('consent', 'granted'); // или 'denied'
После granted счётчик ставит cookie и начинает запись (если она включена). Если там же включено «учитывать Do Not
Track», посетители с флагом Do Not Track или Global Privacy Control всегда считаются так же, как без согласия.
Метрика и Google Analytics
Настройки сайта → Посетитель и согласие → «опознавать посетителя по cookie Яндекс Метрики и Google Analytics»:
новому посетителю номер берётся из cookie Яндекс Метрики (_ym_uid), Google Analytics (_ga) или VK (tmr_lvid);
в режиме согласия — только после согласия. Один человек — один номер в Webvane, Метрике и GA: их данные сводятся без догадок
(Подключения → Метрика).
Несколько доменов проекта
Сайт и продукт на разных доменах (webvane.ru → pflux.io): впишите домены продукта в Настройки сайта → Посетитель и согласие → Домены проекта.
Ссылки на них и на их поддомены понесут номер посетителя (?wv_vid=), и регистрация в продукте свяжется с визитом
на сайте и с объявлением, с которого человек пришёл. На втором домене должен стоять тот же счётчик: он запомнит номер
и уберёт wv_vid из адреса.
Маскирование в записях
Всё, что вводят в поля, в записи сессии скрыто всегда. Дополнительно скрыть блок — data-wv-mask, не записывать
вовсе — data-wv-block (Записи сессий).