Отслеживание действий пользователя на сайте (трекинг)

Возможности и способы установки

Вы можете отслеживать поведение пользователя на вашем сайте, записывать его активность, действия с товарами, заказы и прочее. По полученным данным сегментировать базу по покупательской или пользовательской активности, что позволит проводить маркетинговые кампании намного эффективнее.

С подключенным отслеживанием вам доступны такие функции, как:

  • Сегментация по действиям пользователя на сайте
  • Сегментация по покупательской активности
  • Отслеживание прибыли с рассылок
  • Отслеживание выручки, количества заказов и среднего чека для каждого пользователя

Всего существует два способа установки - трекинг или API. Вы можете определить, какой из способов вам подходит, исходя из плюсов и минусов каждого варианта.

Трекинг

Плюсы:

  • Относительно простая установка, требующая нескольких часов разработчика, поддерживающего ваш сайт, или фронтенд специалиста
  • Отслеживание заработка с рассылок
  • Вывод в карточке контакта информации о количестве заказов, сумме заказов и среднем чеке

Минусы:

  • Трекинг - это отдельный платный модуль сервиса

API

Плюсы:

  • Полностью бесплатно

Минусы:

  • Довольно трудозатратная настройка, требующая нескольких дней работы бэкенд специалиста
  • Функционал отслеживания заработка с рассылок и вывод покупательской активности в карточке контакта недоступен

Ниже описаны инструкции по установке для каждого из вариантов.

Подключение трекинга

Поставьте скрипт на сайт перед закрывающим тегом </body>.

<script type="text/javascript">
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = '//cdn.enkod.ru/script/enpop.min.js';
    script.async = true;
    var first = document.getElementsByTagName('script')[0];
    first.parentNode.insertBefore(script, first);
    var enKodBox = window.enKodBox = window.enKodBox || {};    
    var ekEvents = window.ekEvents || [];
    enKodBox['token'] = 'СИСТЕМНОЕ_ИМЯ';
</script>

Системное имя аккаунта задается при создании аккаунта в платформе и не равно отправляющему домену или адресу сайта. Вы можете узнать системное имя у вашего персонального менеджера.

Обращение к скрипту будет выглядеть так:

<script type="text/javascript">
    ekEvents.push('название действия', { param1: 'и', param2: 'объект', param3: 'с параметрами' })
</script>

Первый аргумент – это название действия, а второй аргумент – это хэшмап с параметрами.

Ниже описан список событий, которые можно отслеживать.

Открытие страницы с товаром

<script type="text/javascript">
    ekEvents.push('productOpen', { productId: 'артикул товара', groupId: 'идентификатор группы товаров', param: 'value' }); 
</script>

Зарезервированные названия полей

Имя Тип Описание Обязательность
productId String Артикул товара Обязательно
groupId String ID группы товаров Обязательно для enRecom (если присутствует)

После обязательного параметра можно указать через запятую любые параметры товара, которые вы хотите передать в сервис. Например, категория товара, группа и тд.

Добавление товара в корзину

Зарезервированные названия полей

Имя Тип Описание Обязательность
productId String Артикул товара Обязательно
groupId String ID группы товаров Обязательно для enRecom (если присутствует)
count Int Количество товара. По умолчанию значение 1. Можно присвоить любое значение Необязательно

Этот метод можно использовать несколькими способами. Рассмотрим их с примерами:

  • добавление одного товара в корзину
<script type="text/javascript">
    ekEvents.push('productAdd', { productId: 'артикул товара'}); 
</script>
  • добавление товара в корзину с дополнительными полями
<script type="text/javascript">
    ekEvents.push('productAdd', { productId: 'артикул товара', category: '1', group: 'some-group', param: 'value'}); 
</script>
  • добавление нескольких одинаковых товаров одним вызовом метода. Для этого достаточно передать параметр count.
 
<script type="text/javascript">
    ekEvents.push('productAdd', { productId: 'артикул товара', count: 2}); 
</script>
  • добавление нескольких разных товаров одним вызовом метода. В параметр прописывается массив с товарами, если не указано количество count, то по умолчанию берётся значение 1.
<script type="text/javascript">
    ekEvents.push('productAdd', [{ productId: 'артикул товара', count: 2}, { productId: 'другой артикул', count: 5}]); 
</script>

Удаление товара из корзины

Зарезервированные названия полей

Имя Тип Описание Обязательность
productId String Артикул товара Обязательно
groupId String ID группы товаров Обязательно для enRecom (если присутствует)
count Int Количество товара. По умолчанию значение 1. Можно присвоить любое значение Необязательно

Этот метод можно использовать несколькими способами. Рассмотрим их с примерами:

  • удаление одного товара из корзины
<script type="text/javascript">
    ekEvents.push('productRemove', { productId: 'артикул товара'}); 
</script>
  • удаление нескольких одинаковых товаров одним вызовом метода. Для этого достаточно передать параметр count.
<script type="text/javascript">
    ekEvents.push('productRemove', { productId: 'артикул товара', count: 2}); 
</script>
  • удаление нескольких разных товаров одним вызовом метода. В параметр прописывается массив с товарами, если не указано количество count, то по умолчанию берётся значение 1.
<script type="text/javascript">
    ekEvents.push('productRemove', [{ productId: 'артикул товара', count: 2}, { productId: 'другой артикул', count: 5}]); 
</script>

Добавление товара в избранное

Зарезервированные названия полей

Имя Тип Описание Обязательность
productId String Артикул товара Обязательно
groupId String ID группы товаров Обязательно для enRecom (если присутствует)

Этот метод можно использовать несколькими способами. Рассмотрим их с примерами:

  • добавление одного товара в избранное
<script type="text/javascript">
    ekEvents.push('productLike', { productId: 'артикул товара'}); 
</script>
  • добавление товара в избранное с дополнительными полями
<script type="text/javascript">
    ekEvents.push('productLike', { productId: 'артикул товара', category: '1', group: 'some-group', param: 'value'}); 
</script>
  • добавление нескольких разных товаров одним вызовом метода. В параметр прописывается массив с товарами.
<script type="text/javascript">
    ekEvents.push('productLike', [{ productId: 'артикул товара'}, { productId: 'другой артикул'}]); 
</script>

Удаление товара из списка избранного

Зарезервированные названия полей

Имя Тип Описание Обязательность
productId String Артикул товара Обязательно
groupId String ID группы товаров Обязательно для enRecom (если присутствует)

Этот метод можно использовать несколькими способами. Рассмотрим их с примерами:

  • удаление одного товара из списка избранного
<script type="text/javascript">
    ekEvents.push('productDislike', { productId: 'артикул товара'}); 
</script>
  • удаление нескольких разных товаров одним вызовом метода. В параметр прописывается массив с товарами.
<script type="text/javascript">
    ekEvents.push('productDislike', [{ productId: 'артикул товара'}, { productId: 'другой артикул'}]); 
</script>

Покупка

Зарезервированные названия полей

Имя Тип Описание Обязательность
orderId String ID покупки. Если не передаётся, то генерируется автоматически Обязательно
groupId String ID группы товаров Обязательно для enRecom (если присутствует)
items [{}] Маccив с товарами Обязательно
sum Int Сумма покупки Необязательно
price Float/Int Цена товара Обязательно для enRecom
count Int Сумма покупки Обязательно для enRecom
<script type="text/javascript">
    ekEvents.push('productBuy',{orderId: 'id',  sum: 1000,  items: [{productId: 'Артикул товара 1', count: 5}, {productId: 'Артикул товара 2', count: 1}]})
</script>
  • передача дополнительных параметров заказа
<script type="text/javascript">
    ekEvents.push('productBuy',{orderId: 'id', items: [{productId: 'Артикул товара', count: 5}], finalPrice: '100', param: 'value'})
</script>

Захват емейла на любой из форм (логин, регистрация, быстрая покупка)

Зарезервированные названия полей

Имя Тип Описание Обязательность
groups Int/String [] Массив с id групп рассылок и/или системными именами групп рассылок, которые должны быть присвоены подписчику при добавлении в платформу Необязательно
fields Object Список основных полей Необязательно
extraFields ObjectСписок дополнительных полей Необязательно
mainChannel StringОсновной канал - либо 'email' либо 'phone'. Передается только в том случае, если в методе subscribe передаются 2 канала сразу Необязательно

Параметры поля fields: информация о подписчике

Имя Тип Описание Обязательность
email String Емейл пользователя Обязательно
firstName String Имя подписчика Необязательно
lastName String Фамилия подписчика Необязательно
phone String Номер телефона подписчика Необязательно
<script type="text/javascript">
    ekEvents.push('subscribe',{source: 'form', integrations: [1], groups: [18, "group_name"], fields: {email: '[email protected]', firstName: 'Имя', lastName: 'Фамилия', phone: '7900000000'}, extraFields: {systemName: 'value', systemName2: 'value'}})
</script>

Чтобы трекинг определил емейл-адрес контакта, попавшего на сайт из емейл-сообщения, в параметры ссылки при отправке нужно прописать URL-параметр

eksubsemail = 'email'

Захват дополнительной информации о контакте без привязки к емейлу

Используется для передачи данных о подписчике без привязки к его емейл-адресу. Например: запись города, номера телефона, возраста подписчика и т.д. до того, как он зарегистрируется или выполнит вход на сайте.

Зарезервированные названия полей

Имя Тип Описание Обязательность
extraFields ObjectСписок дополнительных полей Обязательно
ekEvents.push('addExtraFields',{extraFields: {city: 'Рязань', systemName: 'value'}})

Открытие любой страницы сайта

Метод используется для сегментации контактов по истории посещений на сайте. Должен быть установлен на каждой странице сайта. Вместе с методом ekEvents.push('subscribe') позволяет отслеживать заходы на страницу конкретных пользователей и сегментировать их по этим данным.

ekEvents.push('pageOpen')

Настройка трекинга на сайте с Google Tag Manager

Для использования нашего скрипта и методов в случае, если вы используете Google Tag Manager, необходимо следовать следующим шагам:

1. Для установки скрипта необходимо создать отдельный тег в GTM.

Подробнее о тегах в GTM вы можете прочитать в мануале Google

Чтобы разместить скрипт внутри тега в GTM, вам необходимо создать тег с типом «Custom HTML» и опцией срабатывания тега «Once per event» (по умолчанию). В тело тега поместить код скрипта, прописав соответствующее вашему аккаунту системное имя (не равно домену сайта или названию аккаунта, можете узнать у вашего персонального менеджера).

Соответствующий триггер для запуска тега должен основываться на первой загрузке любой из страниц сайта или просмотре страницы (триггер выбирается по необходимым вам условиям).

Подробнее о триггерах в мануале Google

2. Для использования методов трекинга вам необходимо создать тег с типом «Custom HTML» для каждого из методов. В теле тега для значений параметров необходимо прописать используемые вами на сайте переменные.

Для примера рассмотрим шаблон метода для добавления товара в корзину и рабочий метод в GTM с заполненными клиентскими переменными.

<script type="text/javascript">
    ekEvents.push('productAdd', { productId: 'артикул товара', variant: 'тип товара', category: 'категория товара', count: 'кол-во товаров'}); 
</script>

Для каждого тега необходимо установить триггер, при котором этот метод должен срабатывать, и исключения (если необходимо).

3. После создания тегов их нужно сохранить и опубликовать.

Проверка корректности работы методов трекинга в DevTools

Откройте сайт, перейдите в инструменты разработчика (F12 или Fn+F12).

Откройте необходимый раздел DevTools в соответствии со скриншотом.

Откройте любой товар, совершите любое целевое действие, на которое были установлены методы отслеживания (открытие карточки, добавление в корзину, заказ, добавление в избранное и т.д.).

Проверьте, что все методы enKod срабатывают корректно и без ошибок - возвращают статус «200 ОК».

API

Все методы для отслеживания действий пользователя доступны в нашей API-документации в разделе "Tracking".

Особенности использования API:

  • Для каждого нового посетителя нужно создать сессию
  • При каждом новом посещении нужно вызывать метод «Старт сессии» (только для тех посетителей, кому уже присвоили сессию)
  • Все остальные методы должны вызываться с сессией в заголовках
  • Не рекомендуется передавать покупку без канала коммуникации (емейл, телефон)
Последнее изменение: 2023.03.28 16:46 — Anastasia Aniskova