Яндекс.Метрика
Виджет умеет сам отправлять события поиска в ваш счётчик Яндекс.Метрики. После настройки вы видите поиск в привычных отчётах Метрики — рядом с остальным трафиком сайта, в тех же сегментах и воронках, — не открывая кабинет Searchforce.
Писать код не нужно: виджет находит на странице ваш счётчик через window.ym, которую ставит обычный код Метрики.
Что нужно сделать
Порядок важен: сначала создайте цели в Метрике, потом включайте интеграцию. Метрика молча выбрасывает обращение к цели, которой ещё нет, и не пересчитывает её задним числом — цели, созданные позже, начнут набирать данные только с момента создания.
1. Создайте цели в Метрике
В кабинете Метрики откройте раздел «Конверсии» и нажмите «Добавить цель».

В окне «Новая цель» выберите «Целевое событие» — в группе «Пользовательские события», первая кнопка. Это то, что раньше называлось «JavaScript-событие» (Метрика так и подписывает: «Целевое событие · ex JS-событие»).

Заполните два поля:
- Название цели — любое, для удобства предлагаем своё в таблице ниже;
- Идентификатор цели — значение из колонки «Идентификатор». Выпадающий список слева от поля менять не нужно, оставьте «Содержит».

| Идентификатор | Название | Когда срабатывает |
|---|---|---|
searchforce_open | Поиск: открыт | Покупатель открыл поиск: развернул оверлей поисковой строки либо на странице появилась полная выдача. На каждое открытие |
searchforce_search | Поиск: запрос | Покупатель ввёл запрос и остановился (пауза 1,5 секунды). Набор по буквам в одну цель не превращается |
searchforce_no_results | Поиск: ничего не найдено | Тот же устоявшийся запрос, но выдача пустая. Это подмножество предыдущей цели: безрезультатный поиск даёт обе |
searchforce_product_click | Поиск: клик по товару | Клик по товару в выдаче поиска. Клики по обычному каталогу сюда не попадают |
searchforce_add_to_cart | Поиск: товар добавлен в корзину | Товар добавлен в корзину после поиска: либо прямо из выдачи, либо в течение 24 часов после того, как покупатель что-то искал |
searchforce_goal | Поиск: целевое действие | Целевое действие на сайте без корзины («Узнать цену», «Заказать») — после НАБРАННОГО запроса, в течение 24 часов. Только для проектов в режиме «Цель конверсии» |
Заводить все шесть не обязательно — создайте те, что нужны. Обращения к несозданным целям просто ни на что не влияют.
Если полная выдача — это ваш каталог
searchforce_open считается и тогда, когда выдача просто появилась на странице. У большинства сайтов полная выдача живёт на отдельной странице поиска, и цель читается как «зашёл в поиск». Но если вы смонтировали её как основной листинг каталога, цель будет срабатывать на каждом просмотре каталога — тогда ориентируйтесь на searchforce_search, а searchforce_open не создавайте.
2. Включите интеграцию в кабинете Searchforce
Проект → Интеграции → карточка «Яндекс Метрика» → «Подключить»:
- Номер счётчика — только цифры, номер того счётчика, что стоит на сайте (в кабинете Метрики он написан в шапке рядом с адресом сайта, а также в «Настройки» → вкладка «Счётчик»). Если на сайте несколько счётчиков, укажите тот, в котором хотите видеть поиск;
- Адрес страницы поиска — шаблон адреса, под которым поиск попадёт в отчёты;
{query}заменяется на поисковую фразу. По умолчанию/search/?q={query}.
Нажмите «Сохранить и опубликовать». Виджет пересобирается — код интеграции запекается в сам файл виджета, поэтому включение занимает столько же, сколько обычная публикация. Пока сборка идёт, страница пишет об этом; как сообщение пропало — события пошли. Отключить интеграцию можно там же, ссылкой «Отключить» на карточке.
3. Проверьте
Откройте сайт, поищите что-нибудь, затем в Метрике — раздел «Конверсии». Достижения появляются в течение нескольких минут.
Быстрее — консолью браузера прямо на сайте: сначала подпишитесь на отправку, потом поищите.
js
const original = window.ym;
window.ym = (...args) => { console.log('ym →', args); return original(...args); };Первым аргументом идёт номер вашего счётчика, поэтому в консоли на один устоявшийся запрос должны появиться две строки:
ym → [12345678, 'hit', '/search/?q=платье', { referer: 'https://ваш-сайт/…' }]
ym → [12345678, 'reachGoal', 'searchforce_search']Адрес страницы поиска: зачем он нужен
Кроме целей виджет отправляет на каждый устоявшийся запрос виртуальный просмотр страницы (хит) с адресом из этого поля. Это единственный способ получить в Метрике сами поисковые фразы: вся её встроенная механика внутреннего поиска работает от GET-параметров адреса просмотров.
Что это даёт:
- цель «Поиск по сайту» — Метрика создаёт её сама, если в настройках счётчика включены автоматические цели; при необходимости её можно добавить и руками: «Добавить цель» → группа «Вовлечённость» → «Поиск по сайту». Она распознаёт параметры
q,text,queryиsearch; если в вашем шаблоне параметр другой (например?search_text=), укажите его в настройках самой цели; - сами фразы — Отчёты → Содержание → По параметрам URL: сегмент «Просмотр → Параметр и его значение в URL», параметр из вашего шаблона.
Если у сайта есть настоящая страница поиска, укажите её адрес — тот же, что в разделе «Виджет» → «Привязка к странице» → «URL страницы выдачи». Тогда виртуальные просмотры сойдутся с реальными в один адрес, и отчёты не разъедутся на две похожие строки.
Если поиск живёт только в оверлее и отдельной страницы нет, оставьте дефолтный /search/?q={query}: такого адреса на сайте не существует, зато поисковые просмотры легко отделить от остальных в любом отчёте.
Хиты влияют на просмотры и отказы
Виртуальный просмотр Метрика считает полноценным просмотром. Значит: растут «Просмотры» и «Глубина просмотра», а визит с поиском перестаёт быть отказом, если длился меньше 15 секунд (более долгие визиты Метрика и так не считает отказами). Дедупликации по фразе нет: применение фильтров и переход по страницам выдачи на том же запросе дадут ещё по просмотру.
Если вам важнее чистота этих метрик, чем поисковые фразы в Метрике, — не включайте интеграцию, а поставьте цели сами через события виджета: цели просмотров не создают.
Выручка из поиска
Отдельной цели «покупка после поиска» мы не отправляем: считать выручку в двух системах по-разному — верный способ получить два разных числа. Собрать её в Метрике можно двумя способами, оба используют ваши же данные о заказах.
Сегмент поверх отчёта о заказах (рекомендуем, если у вас настроена электронная коммерция Метрики). Отчёты → Электронная коммерция → Источники заказов, затем сегмент: «Визиты, в которых» → «Поведение» → «Достижение цели» → searchforce_search. Получите доход и число заказов по визитам с поиском, на ваших собственных данных о заказах.
Составная цель. Конверсии → «Добавить цель» → группа «Составные цели» → «Составная цель»: шаг 1 — целевое событие searchforce_search, шаг 2 — ваша существующая цель покупки (страница «спасибо», событие заказа, возврат из платёжной системы).
Почему цифры в Метрике меньше наших — две причины
Границы окна. И сегмент, и составная цель работают в границах одного визита Метрики: визит заканчивается после 30 минут неактивности. Наша панель атрибутирует покупку поиску в течение 24 часов — покупатель может искать вечером, а купить утром, и мы такой заказ учтём, а Метрика уже нет.
Разные определения «из поиска». Наша панель отвечает на вопрос «сколько выручки привёл поиск» и считает поисковым в том числе клик по товару из превью популярных в пустом оверлее: покупатель ничего не набирал, но товар ему показал именно поиск. Цели searchforce_add_to_cart и searchforce_goal в Метрике строже — им нужен набранный запрос, потому что цель называется поиском и должна значить именно его. По нашим замерам на живых проектах это единицы процентов выручки из поиска.
Поэтому «покупок после поиска» в Метрике всегда будет меньше, чем в нашем кабинете. Это не расхождение данных, а две разные метрики: для сравнения периодов и динамики годятся обе, для «сколько принёс поиск целиком» — наша панель, для «сколько принесли набранные запросы» — Метрика.
Что интеграция не делает
- не заменяет наш трекинг. Аналитика Searchforce работает независимо и остаётся источником правды по запросам, кликам и выручке из поиска. Отключение интеграции ни на что в нашем кабинете не влияет;
- не отправляет текст запроса никуда, кроме вашего счётчика. Данные уходят напрямую из браузера покупателя в Метрику, тем же вызовом, каким её код отправляет остальные события вашего сайта;
- не создаёт цели за вас — Метрика позволяет это только своим сервисам-партнёрам.
Поисковые фразы — пользовательский ввод
В поиск по каталогу иногда вводят телефоны, адреса и имена. Передавая фразы в Метрику, вы передаёте их так же, как их передавала бы обычная страница поиска на вашем сайте с ?q= в адресе, — новой категории данных не появляется. Но владелец счётчика по условиям Метрики отвечает за то, что в него попадает, и автоматической очистки персональных данных у Метрики нет. Если политика вашей компании этого не допускает — не включайте интеграцию.
Если что-то не работает
В Метрике нет достижений целей. Проверьте по порядку: цель создана с типом «Целевое событие» и точным идентификатором из таблицы (без пробелов и опечаток); номер счётчика в кабинете совпадает с тем, что стоит на сайте; виджет пересобрался после сохранения интеграции.
Метрика подключается через Google Tag Manager. Виджет отправляет событие только если window.ym уже существует. При загрузке Метрики через GTM она появляется позже, и самые ранние события (например открытие поиска сразу после загрузки страницы) могут не уйти. Поставьте код Метрики прямо в <head> страницы — так надёжнее и для остальных её отчётов.
Достижений подозрительно много. Так и должно быть у searchforce_open (его считаем на каждое открытие оверлея) и у searchforce_search при активной работе с фильтрами. Смотрите на «Конверсию», а не на «Достижения цели»: конверсия считается по визитам.
Нужны свои цели или другая система аналитики. Все события виджета доступны для подписки — см. События виджета.