Яндекс Метрика и GA4: счётчик, события, цели
Зачем:Вы поставите счётчик так, чтобы он считал честно, и настроите цель на главное действие из брифа, не засчитывая одно действие дважды. После урока на странице стоит код счётчика (один раз), форма отправляет цель при отправке, а у вас готов план событий и абзац для политики обработки данных.
30 минут
Озвучено синтезом речи (Qwen3-TTS), голос не принадлежит человеку.
Счётчик (Яндекс Метрика, GA4) — код JavaScript на страницах, который сообщает сервису о визитах, просмотрах и событиях. Цель — важное событие, например заявка.
Как узнать, что происходит на сайте
В прошлом уроке вы записали гипотезы. Чтобы их проверить, нужен инструмент, который считает, что делают люди на вашем сайте. Такой инструмент называется счётчиком (или системой веб-аналитики). Это маленький фрагмент кода на JavaScript, который вы вставляете на страницы. Когда человек открывает страницу, код отправляет на сервер сервиса краткое сообщение: «открыта такая-то страница, с такого-то устройства, пришли оттуда». Сервис складывает такие сообщения и показывает отчёты.
Два счётчика, которые вы будете встречать чаще всего:
- Яндекс Метрика. Бесплатный сервис Яндекса. Широко используется в российских проектах, понимает метки UTM из урока про соцсети, дружит с Яндекс Директом и Вебмастером. Для сайта, которому нужны люди из России, это обычный выбор.
- Google Analytics 4 (GA4). Бесплатный сервис Google. Распространён во всём мире. Условия использования и доступность из России меняются, поэтому для проекта в России его чаще ставят рядом, а не вместо.
Принцип у них одинаковый, а различия в словах и в том, как считаются некоторые числа (о них следующий урок). Ставить два счётчика не обязательно: для небольшого сайта хватит одного, и он должен считать честно.
Откуда это. Первые счётчики посещений 1990-х были просто числом внизу страницы, о которых вы читали в уроке про 1996 год. Настоящая веб-аналитика появилась, когда компании стали анализировать журналы запросов серверов и потом добавили JavaScript-метки. Google выпустил Analytics в 2005 году после покупки компании Urchin (вы слышали это имя в уроке про UTM), Яндекс Метрика появилась позже, в конце 2000-х, а GA4 в 2020 году заменил прежнюю версию, в которой центральным была «сессия», на модель «всё событие».
Установка: один раз и в одном месте
Код выдаёт сам сервис, когда вы создаёте счётчик. В Метрике он выглядит так (номер счётчика условный):
<script>
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(12345678, "init", { clickmap: true, trackLinks: true, accurateTrackBounce: true });
</script> Первая часть (длинная функция) загружает сам счётчик с сервера Метрики и создаёт функцию ym. Вторая, ym(12345678, "init", {...}), включает счётчик с вашим номером и параметрами: карта кликов, учёт переходов по внешним ссылкам, «точный отказ» (о нём следующий урок). Вебвизор вы можете включить там же (параметр webvisor), но делать это нужно осознанно, и об этом есть отдельный урок.
В GA4 код короче и содержит свой идентификатор:
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXX');
</script> Правила установки одинаковы для обоих:
- В head каждой страницы, чтобы счётчик начал работать, как только страница открылась, и не потерял быстрых уходов.
- Ровно один раз. Дубль удваивает просмотры. Откройте исходный код страницы и найдите слово
initилиconfig: оно должно встретиться один раз. - На всех страницах, включая «Спасибо» (там вы будете считать цель).
- Не на локальной копии для тестов, иначе в статистику попадут ваши собственные клики. Лучше создать отдельный счётчик для проверки.
Если сайт сделан в конструкторе или CMS, код вставляют не в файл, а в настройки: в Tilda это «Настройки сайта», раздел аналитики, куда вносится только номер счётчика; в WordPress код вставляют в шапку темы (в идеале дочерней темы) или плагином для вставки кода; в 1С-Битрикс в шаблон сайта, в шапку. Названия разделов в системах меняются, поэтому сверяйтесь со справкой вашей версии.
Что считает счётчик
Четыре слова, которые нужно различать, потому что в отчётах каждое значит своё.
- Визит (в GA4 «сеанс»): один приход человека. Серия его действий считается одним визитом, пока человек не замолчит; после паузы (как правило, тридцать минут; сверяйте со справкой) следующий приход считается новым визитом.
- Просмотр: одна загруженная страница. За визит их может быть несколько.
- Событие: любое действие, о котором страница сообщила счётчику. Прокрутка, нажатие, воспроизведение видео. В GA4 событием является и просмотр страницы (
page_view). - Цель (в GA4 «ключевое событие»): событие, которое вы назвали важным для проекта. Заявка, звонок, скачивание.
Откройте схему и попробуйте. Нажимайте на то, что может сделать посетитель, и смотрите, как счётчик превращает это в записи. Затем включите дубль кода и отключите защиту от повторов, и вы увидите две самые частые ошибки.
Всё сходится: одно действие одна запись.
Счётчик выдуманный и никуда ничего не отправляет: журнал только в этой схеме.
Цель через JavaScript
Цели бывают разные: открытие страницы (например «Спасибо»), число просмотров за визит, время на сайте, составная цель по шагам. Самая гибкая и самая частая цель JavaScript-событие: страница сама сообщает счётчику, что человек сделал важное. В Метрике:
ym(12345678, 'reachGoal', 'lead_submit'); Первое число номер вашего счётчика, второе слово фиксировано, третье название цели: вы его придумываете и затем указываете в Метрике, когда создаёте цель типа «JavaScript-событие» (идентификатор должен совпасть до буквы). В GA4 то же самое пишется gtag('event', 'generate_lead'), а затем событие отмечается ключевым.
Когда вызывать. При действии человека, а не при открытии страницы: при отправке формы (событие submit у формы, о событиях вы читали в части про JavaScript), при нажатии на номер телефона, при записи. Если форма уходит без перезагрузки страницы, цель отправляют, когда сервер ответил «успешно», а не при нажатии на кнопку: иначе в цель попадут и ошибочные отправки (об ответе сервера вы знаете из части про HTTP: код 200 или ошибка).
Один раз за действие. Человек может нажать кнопку дважды, страница может перерисоваться, обработчик может подвеситься дважды. Поэтому цель защищают: переменная-флаг («уже отправляли») или обработчик, который срабатывает один раз ({ once: true }). Без этого конверсия растёт сама собой, и вы принимаете решения по ложным числам.
Не отправляйте в цель персональные данные. Название цели и параметры должны быть техническими: lead_submit, а не имя человека или его телефон. Счётчик не место для хранения контактов (для этого есть форма и ваша почта).
Как назвать. Вы уже договорились о схеме в уроке про лестницу ценности: объект_действие, латиницей, строчными, навсегда одно имя.
Проверка: правда ли срабатывает
После настройки обязательно проверьте.
- Откройте страницу с параметром
?_ym_debug=2в адресе и консоль браузера (вы знакомились с инструментами разработчика в начале курса): Метрика будет писать, что она отправляет. - Сделайте действие сами. В консоли должна появиться одна запись о цели.
- Повторите действие. Вторая запись не должна появиться.
- Через несколько минут цель появится в отчётах сервиса (отчёты чуть запаздывают).
- Не забудьте убрать тестовые визиты из статистики, например фильтром по своему адресу.
План событий
Прежде чем ставить цели, составьте план событий: короткую таблицу, где для каждого события записано, как оно называется, когда срабатывает, как защищено от повторов и как называется в другом счётчике. Это дешёвый способ не запутаться через полгода. Начните с главного действия из брифа и одного-двух шагов к нему (нажатие на телефон, прокрутка до подтверждений).
Данные, закон и честность
Счётчик получает данные о людях: адрес страницы, время, устройство, источник перехода, файлы cookie и IP-адрес. В сочетании с другими сведениями такие данные могут считаться персональными, и закон о персональных данных (152-ФЗ) требует, чтобы вы об этом сказали человеку и объяснили цель. Вот ориентир на сегодня (а не юридическая консультация, ваш юрист должен проверить):
- В политике обработки данных должно быть сказано, какие сервисы вы используете, какие данные они собирают и зачем (вы напишете такой абзац в практике).
- Не собирайте лишнего. Не включайте Вебвизор там, где он не нужен, не передавайте в цели имена и телефоны. Об этом следующие уроки части.
- Согласие и уведомление о cookie. В России нет отдельного закона о cookie, как в Европе, но принято сообщать об их использовании. Как сделать баннер, который не обманывает, вы научитесь в уроке про этику аналитики.
- Если на сайт заходят люди из других стран, там действуют свои правила (например европейский GDPR).
Проверьте себя: почему цель «заявка» нужно защищать от повторной отправки?
Человек может нажать кнопку несколько раз, и одно действие превратится в несколько записей. Конверсия вырастет без всякой пользы, и решения будут приниматься по ложным числам.
Практика
Доработайте страницу и план.
- Код счётчика в head: загрузчик Метрики и вызов
ym(номер, "init", …), один раз. - Цель в конце body: при отправке формы вызывается
ym(…, "reachGoal", "lead_submit"), но не больше одного раза за действие. - План событий из двух строк: имя, когда срабатывает, защита, имя в GA4. Главное действие из брифа названо теми же словами.
- Где вставлять код в Tilda, WordPress и Битрикс.
- Абзац для политики с Метрикой, cookie и IP-адресом.
Проверка смотрит на то, что код есть и один, что цель отправляется с защитой, что в плане корректные имена и что политика полная. Работает ли это на живом сайте, покажет режим отладки: проверьте его сами, как описано выше.
Практика
Готовлю вашу страницу…
Тест
Вопрос 1 из 6
Карточки
Эти карточки попадут в повторение, когда вы завершите урок.
Чем визит, просмотр, событие и цель отличаются?
Ответ
Визит: приход человека на сайт. Просмотр: загруженная страница. Событие: действие, о котором страница сообщила счётчику. Цель: событие, которое вы назвали важным.
Сколько раз ставить код счётчика на страницу?
Ответ
Один раз, в head каждой страницы. Дубль удваивает просмотры и цели. После установки проверьте это в исходном коде страницы.
Как отправить цель из JavaScript в Метрике?
Ответ
ym(номер, "reachGoal", "название_цели"). Вызывайте при действии человека и защищайте от повторов, чтобы одно действие давало одну цель.
Как проверить, что цель срабатывает?
Ответ
Добавьте к адресу страницы параметр _ym_debug=2 и смотрите консоль браузера; плюс сделайте действие сами и посмотрите отчёт. Проверяйте, что цель приходит один раз.
Как устроена аналитика GA4?
Ответ
Всё в ней событие (page_view, scroll, click, generate_lead). Главные отмечают как ключевые. Отправка: gtag("event", "generate_lead").
Источники
- Яндекс Метрика: быстрый старт только ссылка, по-русски
- Яндекс Метрика: инициализация счётчика только ссылка, по-русски
- Яндекс Метрика: достижение цели (reachGoal) только ссылка, по-русски
- Google Analytics: события в GA4 (Developers) CC BY, по-английски
- Яндекс.Метрика (Википедия) CC BY-SA, по-русски
- Федеральный закон «О персональных данных» 152-ФЗ (КонсультантПлюс) только ссылка, по-русски
Видео
Настройка целей в Яндекс Метрике (Митяев Маркетинг)
Видео загрузится с youtube-nocookie.com только после нажатия.
Дальше
Теперь вы знаете: установка счётчика Яндекс Метрики, визиты, просмотры, события и цели.