Веб-аналитика: Метрика и GA4

Счётчики Яндекс Метрики и Google Analytics 4 на страницах магазина OpenCart 4 с событиями электронной коммерции: просмотр товара, добавление в корзину, покупка.

Назначение и совместимость

В OpenCart 4.1.0.4 группа Расширения → Расширения → Аналитика пуста: ядро умеет выводить код аналитики, но ни одного расширения этого типа в поставке нет. Пакет добавляет два расширения типа «Аналитика»:

Яндекс МетрикаНомер счётчика, вебвизор, карта кликов, отслеживание ссылок, точный показатель отказов, электронная коммерция через контейнер dataLayer.
Google Analytics 4Идентификатор потока G-…, тег gtag.js, события view_item, add_to_cart, purchase.

Код счётчика выводится в <head> каждой страницы витрины штатным механизмом OpenCart — только у включённого расширения. Ядро не меняется: пакет работает через расширения типа «Аналитика» и два события витрины.

Проверено на OpenCart 4.1.0.4 и PHP 8.2 со штатной темой. Другие версии OpenCart 4 и сторонние темы не проверялись: код выводится там, где шаблон шапки темы выводит {{ analytic }} (в штатной теме — в <head>). Событие «добавление в корзину» рассчитано на штатную отправку форм витрины через jQuery.

В сборке OCM Store оба расширения уже установлены и выключены: введите номер счётчика или идентификатор потока, включите «Статус» и сохраните. Установщик и шаг «Установить» не нужны.

Установка и включение

  1. Расширения → Установщик → «Загрузить», файл analytics_oc4.ocmod.zip (имя не менять: OpenCart 4 берёт из него код расширения) → «Установить». В сборке OCM Store этот и следующий шаги уже сделаны.
  2. Расширения → Расширения, тип «Аналитика» → «Установить» у «Яндекс Метрика» и/или «Google Analytics 4». При установке любого из двух создаются общие данные пакета: события витрины и настройки обоих расширений по умолчанию (выключены).
  3. У строки магазина под расширением нажмите «Редактировать»: введите номер счётчика (Метрика) или идентификатор потока (GA4), включите «Статус», сохраните. Включить без идентификатора нельзя — на страницы попал бы неполный код.
  4. Откройте витрину: в исходном коде страницы (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 — товар: идентификатор, название, производитель, первая категория, цена, количество 1view_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 выбрана страница, OpenCart выводит код аналитики (любой, не только этого пакета) только после того, как посетитель нажмёт «Принять» в уведомлении о cookie. До согласия счётчиков на страницах нет — это поведение ядра OpenCart 4, а не ошибка настройки. Страница настроек расширения предупреждает об этом, когда уведомление включено.

В сборке OCM Store уведомление о cookie включено по умолчанию (страница «Политика обработки персональных данных»): счётчики начинают работать после согласия посетителя, что соответствует требованиям к персональным данным. Чтобы выводить счётчики без уведомления, выберите в настройке «Уведомление о cookie» значение «--- Нет ---».

Несколько магазинов

Настройки задаются для каждого магазина отдельно: в списке Расширения → Аналитика под установленным расширением перечислены все магазины с кнопкой «Редактировать» у каждого. Номер счётчика и флажки по умолчанию заполнены только для основного магазина; у дополнительных магазинов расширение выключено, пока вы не включите его на странице этого магазина. Строка магазина затемнена, пока расширение для него выключено.

Как проверить

Отключение и удаление

Чтобы временно убрать счётчик — выключите «Статус» на странице расширения. Удаление в Расширения → Аналитика (красная кнопка) убирает настройки расширения для всех магазинов; события витрины остаются, пока установлено второе расширение пакета, и удаляются вместе с последним. Файлы пакета удаляются в Установщике. Повторная установка восстанавливает настройки по умолчанию (выключено) — номер счётчика и идентификатор потока нужно ввести заново.

Типовые вопросы