Веб-аналитика: Метрика и GA4
Счётчики Яндекс Метрики и Google Analytics 4 на страницах магазина OpenCart 4 с событиями электронной коммерции: просмотр товара, добавление в корзину, покупка.
Назначение и совместимость
В OpenCart 4.1.0.4 группа Расширения → Расширения → Аналитика пуста: ядро умеет выводить код аналитики, но ни одного расширения этого типа в поставке нет. Пакет добавляет два расширения типа «Аналитика»:
dataLayer.G-…, тег gtag.js, события view_item, add_to_cart, purchase.Код счётчика выводится в <head> каждой страницы витрины штатным механизмом OpenCart — только у включённого расширения. Ядро не меняется: пакет работает через расширения типа «Аналитика» и два события витрины.
Проверено на OpenCart 4.1.0.4 и PHP 8.2 со штатной темой. Другие версии OpenCart 4 и сторонние темы не проверялись: код выводится там, где шаблон шапки темы выводит {{ analytic }} (в штатной теме — в <head>). Событие «добавление в корзину» рассчитано на штатную отправку форм витрины через jQuery.
Установка и включение
- Расширения → Установщик → «Загрузить», файл
analytics_oc4.ocmod.zip(имя не менять: OpenCart 4 берёт из него код расширения) → «Установить». В сборке OCM Store этот и следующий шаги уже сделаны. - Расширения → Расширения, тип «Аналитика» → «Установить» у «Яндекс Метрика» и/или «Google Analytics 4». При установке любого из двух создаются общие данные пакета: события витрины и настройки обоих расширений по умолчанию (выключены).
- У строки магазина под расширением нажмите «Редактировать»: введите номер счётчика (Метрика) или идентификатор потока (GA4), включите «Статус», сохраните. Включить без идентификатора нельзя — на страницы попал бы неполный код.
- Откройте витрину: в исходном коде страницы (
Ctrl+U) в<head>появился код счётчика. Если в магазине включено уведомление о cookie, код появляется после согласия посетителя — см. раздел «Уведомление о cookie».
Права получает группа пользователя, который нажал «Установить». Другим группам — Система → Пользователи → Группы пользователей, маршруты extension/analytics_oc4/analytics/metrika и extension/analytics_oc4/analytics/google.
Яндекс Метрика
Номер счётчика
Счётчик создаётся в Яндекс Метрике (раздел «Счётчики» → «Добавить счётчик»: адрес сайта, часовой пояс, согласие с условиями). Номер — число из 8–9 цифр в списке счётчиков и в адресе отчётов; код вставлять не нужно, пакет формирует его сам по номеру и флажкам.
Настройки
Расширения → Расширения → Аналитика → Яндекс Метрика → Редактировать (у нужного магазина).
| Настройка | По умолчанию | Смысл |
|---|---|---|
| Статус | выключено | Выводить код счётчика на страницах. Включается только с номером счётчика |
| Номер счётчика | пусто | Только цифры, 1–12 знаков |
| Вебвизор | включено | Запись действий посетителей, карта скроллинга, аналитика форм (webvisor). В самой Метрике вебвизор включается отдельно в настройках счётчика |
| Карта кликов | включено | Сбор данных для карты кликов (clickmap) |
| Отслеживание ссылок | включено | Переходы по внешним ссылкам, загрузки файлов, кнопка «Поделиться» (trackLinks) |
| Точный показатель отказов | включено | Отказом считается визит короче 15 секунд (accurateTrackBounce) |
| Электронная коммерция | включено | Передавать просмотр товара, добавление в корзину и покупку в контейнер данных (ecommerce) |
| Контейнер данных | dataLayer | Имя JavaScript-массива для данных электронной коммерции; должно совпадать с именем контейнера в настройках счётчика Метрики. Латинские буквы, цифры, «_», «$»; пустое значение — dataLayer |
Код на странице — официальный фрагмент Метрики: загрузка https://mc.yandex.ru/metrika/tag.js, вызов ym(номер, "init", {…}) с выбранными флажками и <noscript>-картинка для браузеров без JavaScript.
Google Analytics 4
Идентификатор потока
В ресурсе Google Analytics 4: Администратор → Потоки данных → поток «Веб» → «Идентификатор потока данных» (Measurement ID) вида G-XXXXXXXXXX. Это не номер ресурса и не идентификатор UA-… старой версии Analytics — такие значения не принимаются.
Настройки
Расширения → Расширения → Аналитика → Google Analytics 4 → Редактировать.
| Настройка | По умолчанию | Смысл |
|---|---|---|
| Статус | выключено | Выводить тег на страницах. Включается только с идентификатором потока |
| Идентификатор потока | пусто | G- и 4–16 латинских букв или цифр; регистр приводится к верхнему |
| Электронная коммерция | включено | Отправлять события view_item, add_to_cart, purchase |
Код на странице — стандартный тег Google (gtag.js): подключение https://www.googletagmanager.com/gtag/js?id=G-…, gtag('js', …) и gtag('config', 'G-…'). Никакие другие параметры конфигурации не задаются: анонимизация адресов и настройки согласия в GA4 действуют по умолчанию и регулируются в самом сервисе.
Электронная коммерция
При включённом флажке «Электронная коммерция» расширения передают три события. Цены — в валюте, которую посетитель выбрал на витрине, с налогом, как они показаны на странице; покупка — в валюте заказа.
| Событие | Когда | Яндекс Метрика (контейнер) | Google Analytics 4 (gtag) |
|---|---|---|---|
| Просмотр товара | Открыта страница товара | ecommerce.detail — товар: идентификатор, название, производитель, первая категория, цена, количество 1 | view_item — items с теми же полями, value = цена |
| Добавление в корзину | Успешный ответ кнопки «В корзину» (страница товара, списки, модуль товаров) | ecommerce.add — товар и количество | add_to_cart — value = цена × количество |
| Покупка | Страница «Заказ оформлен» после подтверждения оплаты | ecommerce.purchase — номер заказа, сумма заказа (revenue), товары заказа | purchase — transaction_id, value, tax, shipping, currency, items |
Как это устроено: товар страницы и покупка добавляются в код счётчика при формировании страницы; для «добавления в корзину» событие витрины дописывает данные товара в ответ сервера на запрос «В корзину», а код счётчика на странице отправляет их по этому ответу. Покупка передаётся один раз: при обновлении страницы «Заказ оформлен» событие не повторяется.
dataLayer). Без этого данные приходят на страницу, но отчёты «Электронная коммерция» остаются пустыми. В GA4 события появляются в отчётах «Монетизация» автоматически; на обработку уходит до суток, текущие события видны в «Отчёты в реальном времени» и DebugView.dataLayer только записи с ключом ecommerce, а gtag кладёт в тот же массив свои вызовы — друг другу они не мешают.Уведомление о cookie
Если в Система → Настройки → Опции → Уведомление о cookie выбрана страница, OpenCart выводит код аналитики (любой, не только этого пакета) только после того, как посетитель нажмёт «Принять» в уведомлении о cookie. До согласия счётчиков на страницах нет — это поведение ядра OpenCart 4, а не ошибка настройки. Страница настроек расширения предупреждает об этом, когда уведомление включено.
В сборке OCM Store уведомление о cookie включено по умолчанию (страница «Политика обработки персональных данных»): счётчики начинают работать после согласия посетителя, что соответствует требованиям к персональным данным. Чтобы выводить счётчики без уведомления, выберите в настройке «Уведомление о cookie» значение «--- Нет ---».
Несколько магазинов
Настройки задаются для каждого магазина отдельно: в списке Расширения → Аналитика под установленным расширением перечислены все магазины с кнопкой «Редактировать» у каждого. Номер счётчика и флажки по умолчанию заполнены только для основного магазина; у дополнительных магазинов расширение выключено, пока вы не включите его на странице этого магазина. Строка магазина затемнена, пока расширение для него выключено.
Как проверить
- Код на странице. Откройте витрину, при включённом уведомлении о cookie примите его, затем исходный код страницы (
Ctrl+U): в<head>есть блокYandex.Metrika counterс вашим номером и/илиGoogle tag (gtag.js)с вашим идентификатором. - Метрика. В списке счётчиков статус «Счётчик установлен» обновляется после первых визитов; подробнее — «Проверка счётчика» в настройках счётчика. Электронная коммерция: откройте товар и страницу «Заказ оформлен» тестового заказа, затем отчёт «Электронная коммерция → Заказы» (данные появляются с задержкой).
- GA4. Отчёты → В реальном времени: ваш визит и события
view_item,add_to_cart,purchase; подробно — Администратор → DebugView с расширением браузера для отладки. - Выключение. Снимите «Статус» и сохраните: код исчезает со страниц сразу, кеш очищать не нужно.
Отключение и удаление
Чтобы временно убрать счётчик — выключите «Статус» на странице расширения. Удаление в Расширения → Аналитика (красная кнопка) убирает настройки расширения для всех магазинов; события витрины остаются, пока установлено второе расширение пакета, и удаляются вместе с последним. Файлы пакета удаляются в Установщике. Повторная установка восстанавливает настройки по умолчанию (выключено) — номер счётчика и идентификатор потока нужно ввести заново.
Типовые вопросы
- Код есть в исходнике, а в Метрике/GA4 ничего нет. Проверьте номер счётчика или идентификатор потока, домен сайта в настройках счётчика и блокировщики рекламы в браузере (они не пускают
mc.yandex.ruиgoogletagmanager.com). Данные в отчётах появляются с задержкой. - Кода на странице нет. Расширение выключено, не установлено для этого магазина, либо включено уведомление о cookie и посетитель его не принял. Сторонняя тема могла убрать вывод
{{ analytic }}из шапки. - Электронная коммерция в Метрике пуста. Электронная коммерция не включена в настройках счётчика или имя контейнера там отличается от настройки расширения.
- Нужен Google Tag Manager или старый Universal Analytics (
UA-…). Не поддерживаются: пакет подключает Метрику и GA4 напрямую. Для GTM используйте расширение-контейнер или вставку кода в шаблон темы. - Цены в событиях отличаются от цен в отчёте. События передают цены с налогом в валюте посетителя; сумма покупки — итог заказа в валюте заказа. Настройте валюту отчётов в Метрике/GA4 под основную валюту магазина.