Модуль статистики позволяет упростить передачу данных в системы сбора статистики посещений и анализа поведения посетителей сайта — Google Analytics и Яндекс.Метрику (далее — «системы сбора статистики»):
Интеграция с системами сбора статистики доступна с версии Netcat 5.7, отправка событий электронной коммерции — с версии 5.9.
Функции модуля для отправки событий недоступны в Internet Explorer версии 8 и младше.
В системах сбора статистики под событиями понимается взаимодействие пользователя с элементами страниц сайта, которое можно отслеживать независимо от просмотров страниц — например, нажатие на какую-либо ссылку или кнопку, отправка формы и т. п.
Модуль отправляет события сразу во все подключённые системы сбора статистики (Google Analytics и Яндекс.Метрику).
В именах стандартных событий, параметрах этих событий используются соглашения, принятые для скрипта Google Analytics gtag.js. При отправке данных о событиях с использованием других скриптов Google Analytics (gtm.js, analytics.js, ga.js) и в Яндекс.Метрику сведения о событиях приводятся к необходимому виду.
У каждого события взаимодействия могут быть заданы действие (action), категория (category) и ярлык (label).
Категории и ярлыки позволяют объединить события по логически связанным типам событий или элементам страниц сайта. Подробные рекомендации по категориям и ярлыкам есть в документации Google Analytics.
категория_действие
, например для отправки формы с категорией «feedback
»: feedback_submit
data-analytics-*-category
).Существует несколько способов указать, когда надо отправить то или иное событие:
data-analytics-*
для стандартных действий (click, view, submit). Событие будет отправлено после соответствующего взаимодействия посетителя сайта с элементом, у которого указаны эти data-атрибуты.Передача событий электронной коммерции поддерживается для Яндекс.Метрики, Google Analytics (gtag.js, analytics.js) и Google Tag Manager.
Яндекс.Метрика позволяет фиксировать только основные события электронной коммерции (просмотр страницы товара, работа с корзиной, оформление заказа). Передача данных должна быть настроена через dataLayer
.
Для Google Tag Manager Data Layer должен иметь имя dataLayer
.
Для Google Analytics (analytics.js) должен быть включен плагин «Расширенная электронная торговля» (“ec”). Плагин «Электронная торговля» (“ecommerce”) не поддерживается.
Для старой версии Google Analytics (ga.js) передача событий электронной коммерции не поддерживается; для регистрации этих событий обновите код счётчика до analytics.js.
В текущей версии автоматическая отправка события “refund” при полном или частичном возврате заказа не поддерживается.
Событие | nc_stats_analytics_event() | gtag.js (event) | analytics.js (ec:setAction) | Google Tag Manager (<ActionType>) | Яндекс.Метрика (<ActionType>) |
---|---|---|---|---|---|
просмотр страницы товара | view_item | view_item | detail | detail | detail |
добавление товара в корзину | add_to_cart | add_to_cart | add | add | add |
удаление товара из корзины | remove_from_cart | remove_from_cart | remove | remove | remove |
оформление заказа | purchase | purchase | purchase | purchase | purchase |
показ товара в списке | view_item_list | view_item_list | (отдельного действия нет, но событие отслеживается) | impressions | — |
нажатие на товар в списке | select_content | click | click | click | — |
показ внутренней рекламы | view_promotion | view_promotion | (отдельного действия нет, но событие отслеживается) | promoView | — |
нажатие на внутренней рекламе | select_content | select_content | promo_click | promoClick | — |
этап оформления заказа | begin_checkout, checkout_step | begin_checkout, checkout_step | checkout | checkout | — |
установка параметра заказа | set_checkout_option | set_checkout_option | checkout_option | checkoutOption | — |
возврат | refund | refund | refund | refund | refund |
Параметры интеграции с системами сбора статистики задаются на вкладке «Аналитика и Метрика» в настройках модуля «Статистика посещений». Параметры настраиваются отдельно для каждого из сайтов.
В настройках модуля для каждого из сайтов, где будет происходить сбор статистики, необходимо указать код для вставки хотя бы одного счётчика.
Если на страницах сайта (в макете сайта) уже добавлен JavaScript-код, содержащий идентификаторы счётчиков Яндекс.Метрики или Google Analytics, будут использоваться уже имеющиеся на странице скрипты и их настройки, то есть код не будет добавляться на страницы повторно.
Если в макете сайта счётчики не вставлены, они будут добавлены в указанное в настройках модуля место (в начале или в конце тэга <body>).
Добавьте в Яндекс.Метрику новый счётчик или выберите существующий, а затем получите и скопируйте HTML-код счётчика в поле «Код счётчика Яндекс.Метрики» в настройках модуля.
В настоящее время модуль не поддерживает интеграцию с Яндекс.Метрикой, подключённой с использованием нового API (скрипт tag.js
).
В настройках модуля (или в макете дизайна) необходимо добавить скрипт watch.js
; для получения
кода счётчика на сайте Яндекс.Метрики выберите в настройках опцию «Устаревший код счётчика».
Для событий взаимодействия (просмотр — view, нажатие на элемент — click, отправка формы — submit) идентификатор цели составляется из категории и действия, разделённых символом подчёркивания. Например, при нажатии на ссылку с атрибутами:
<a href="/contacts/" data-analytics-click-category="contacts_link">Контакты</a>
идентификатор цели Яндекс.Метрики будет равен contacts_link_click
.
Для фиксирования событий взаимодействия необходимо создать в настройках Яндекс.Метрики цели типа «JavaScript-событие» (или составные цели с шагами «Событие» с соответствующим идентификатором).
Если вы хотите отслеживать события электронной коммерции, на странице получения кода счётчика выберите пункт «Отправка в Метрику данных электронной коммерции» и имя контейнера данных “dataLayer”.
При проверке настроек необходимо учитывать, что данные по событиям отображаются в Яндекс.Метрике с небольшой задержкой.
Для подключения Google Tag Manager добавьте код со страницы «Администрирование / Установить Диспетчер тегов Google» из всех полей (для <head> и для <body>) в поле «Код отслеживания Google Universal Analytics или Google Tag Manager» в настройках модуля.
Модуль поддерживает работу с Google Analytics через подключение скриптов gtag.js, analytics.js, Google Tag Manager; также поддерживается использование устаревшего скрипта статистики ga.js (кроме отслеживания событий электронной коммерции).
Рекомендуемым скриптом для подключения сбора статистики Google Analytics является более новый и обладающий наибольшими возможностями скрипт gtag.js. Если вы уже используете на вашем сайте другие скрипты для подключения Google Analytics (analytics.js или ga.js), рассмотрите возможность их замены на gtag.js.
При любом подключении сбора статистики для передачи событий электронной коммерции в настройках Google Analytics (меню «Администратор / Аккаунт / Ресурс / Представление / Настройки электронной торговли») должно быть включено отслеживание электронной торговли и отчёты для расширенной электронной торговли.
Обратите внимание, что обработка событий электронной коммерции в Google Analytics может занимать до двух суток.
При использовании Google Tag Manager переменная контейнера данных должна называться dataLayer
.
Для передачи событий в аналитику через Google Tag Manager:
{{event_category}}
{{event_action}}
{{event_label}}
true
для параметра «Включить расширенные функции электронной торговли» и отметить чекбокс «Использовать уровень данных»event_
— регулярное выражение (события передаются со свойством “event
”, равным “event_ДЕЙСТВИЕ
”)Необходимые условия для передачи событий электронной коммерции через Диспетчер тегов Google:
event_.*
).Код для подключения счётчика можно получить на странице «Администратор / Ресурс / Отслеживание / Код отслеживания» в панели управления Google Analytics.
Функция отслеживания должна иметь стандартное имя (gtag
).
Для добавления скрипта analytics.js необходимо вставить соответствующий код в поле «Код отслеживания Google Universal Analytics или Google Tag Manager» и заменить в нём UA-XXXXX-Y
на идентификатор отслеживания со страницы «Код отслеживания» настроек ресурса в Google Analytics.
Если вы хотите отслеживать события электронной коммерции в Google Analytics, включите отслеживание электронной торговли и отчёты для расширенной электронной торговли в настройках представления и добавьте в код отслеживания в настройках модуля подключение плагина “Extended Ecommerce” (плагин «Электронная торговля» “ecommerce” не поддерживается):
<script> // ··· (здесь код для подключения Google Analytics) ··· ga('require', 'ec'); </script>
Скрипт ga.js является устаревшим; Google рекомендует заменить его на современную версию (gtag.js). Netcat отправляет события взаимодействия через данный скрипт, но отправка событий электронной коммерции через устаревший скрипт не поддерживается.
Если у тегов на странице есть определённые атрибуты data-analytics, при взаимодействии посетителей сайта с ними будут автоматически отправлены события в системы сбора статистики:
data-analytics-click-category
, data-analytics-click-label
) — событие с действием click
и указанными в этих атрибутах категорией и ярлыком;data-analytics-view-category
, data-analytics-view-label
), элемент должен иметь ненулевую высоту — событие с действием view
;data-analytics-submit-category
, data-analytics-submit-label
у тега <form>
) — событие с действием submit
;data-analytics-*-action
позволяет переопределить стандартное действие (click, view, submit), отправляемое в системы сбора статистики.data-analytics-item
) — события view_item
, select_content
;data-analytics-promo
) — события view_promotion
, select_content
.Для отправки событий click, view, submit на основании разметки страницы у соответствующих элементов должен присутствовать атрибут data-analytics-ДЕЙСТВИЕ-category
. Если такого атрибута нет, событие отправлено не будет.
При отправке событий по data-атрибутам может быть указано несколько категорий и ярлыков через запятую, при этом будут отправлены события со всеми сочетаниями категорий и ярлыков, например:
Атрибуты<form data-analytics-submit-category="form, feedback" data-analytics-submit-label="landing, landing_header">
Параметры, отправляемые в Google Analytics | Цель и дополнительные параметры, отправляемые в Яндекс.Метрику |
---|---|
'submit', { event_category: 'form', event_label: 'landing' } 'submit', { event_category: 'form', event_label: 'landing_header' } 'submit', { event_category: 'feedback', event_label: 'landing' } 'submit', { event_category: 'feedback', event_label: 'landing_header' } |
'form_submit', { event_label: 'landing' } 'form_submit', { event_label: 'landing_header' } 'feedback_submit', { event_label: 'landing' } 'feedback_submit', { event_label: 'landing_header' } |
Если у элемента в атрибуте data-analytics-item
указаны свойства товара, для него сработают события просмотра в списке, а нажатия на ссылки внутри данного элемента будут расценены как переход к странице товара.
Информация о товаре должна быть задана в виде JSON-строки, которая соответствует объекту с описанием свойств товара в формате Google Analytics (gtag.js).
Для облегчения формирования такого атрибута используйте метод nc_stats_analytics::get_item_attribute()
.
Аналогично можно отслеживать показы внутренней рекламы (атрибут data-analytics-promo
).
Отслеживание просмотров и переходов по спискам товаров и внутренней рекламы поддерживается только в Google Analytics.
Для отправки событий из JavaScript можно использовать функцию nc_stats_analytics_event(event_name, event_data)
.
Аргументы функции nc_stats_analytics_event()
:
event_name
— название события (также соответствует категории события), обязательный аргумент;event_data
— объект с параметрами события.Формат значений для этой функции совпадает с аргументами для функции gtag()
Google Analytics.
При использовании gtag.js данные будут отправлены в том виде, как они переданы. Для других способов передачи в Google Analytics и для Яндекс.Метрики данные будут приведены к формату, подходящему для них:
event = event_НазваниеСобытия
.event_data
в неизменном виде (и их можно соответствующим образом использовать в свойствах тега Universal Analytics).ga()
.event_data
не задана категория события (event_category
) и это не событие электронной коммерции, категория будет равна “event”.КатегорияСобытия_НазваниеСобытия
(если категория не задана, она будет равна будет равна “event”); все параметры из event_data
будут переданы как дополнительные параметры. Дополнительные параметры можно использовать в Яндекс.Метрике для сегментации отчётов по параметрам визитов и в отчёте «параметры визитов».nc_stats_analytics_event('click', { event_category: 'обратный_звонок', event_label: 'из_хедера' });
Будет отправлено событие:
event_category = обратный_звонок event_action = click event_label = из_хедера
nc_stats_analytics_event('begin_checkout', { items: [ { name: 'Товар 1', quantity: 1, price: '200.00' }, { name: 'Товар 2', quantity: 2, price: '500.00' } ] });
Будет отправлено событие:
Формирует атрибут data-analytics-item
с его значением для указанного товара. Аргументы:
$item
— товар (nc_netshop_item
), для которого генерируется атрибут;$list_name
— название списка (например, «Рекомендуемые»), опционально;$list_position
— положение товара в списке, опционально.Если отслеживание электронной коммерции отключено в настройках модуля, метод вернёт пустую строку.
Пример:
<div <?= nc_module_check_by_keyword('stats') ? nc_stats_analytics::get_item_attribute($item, 'Каталог', $curPos + $f_RowNum + 1) : '' ?>> --- ТОВАР --- </div>
Формирует атрибут data-analytics-promo
с его значением для указанной внутренней рекламы. Аргументы функции — массив, в котором указаны свойства рекламы в формате, как для функции Google Analytics gtag()
.
Пример:
<div <?= nc_module_check_by_keyword('stats') ? nc_stats_analytics::get_promo_attribute(array( 'name' => 'Название рекламной кампании', 'creative_name' => 'Название баннера или объявления', 'creative_slot' => 'Область страницы, порядковый номер баннера', )) : '' ?>> --- БАННЕР --- </div>
В настройках форм создания заявок (например, на страницах, созданных через лендинг-конструктор) можно указать события при открытии и отправке форм. Эти параметры действуют аналогично добавлению data-атрибутов.
Для вывода в консоль браузера параметров вызова функций отправки статистики и некоторой другой информации о работе функции nc_stats_analytics_event()
необходимо установить cookie с именем “nc_stats_debug
” и непустым значением, и перезагрузить страницу.
Например, такую cookie можно установить в консоли браузера:
document.cookie = 'nc_stats_debug=1; path=/';