Настройка Web Tracking методом отправки событий через вызов функций eS.JS

Если вы уже установили скрипт на сайт, можете настроить передачу событий в eSputnik для отслеживания поведения посетителей сайта.

События можно отправлять в систему двумя способами: через браузер, вызывая функцию eS.JS, или из бэкенда, используя REST API. В этой инструкции рассмотрим первый вариант.

Скрипт

Script eS

Назначение скрипта

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

Установка

Скрипт должен быть установлен на всех страницах вашего сайта.

Устанавливается разметку в конце блока

<body>

Может быть установлен с помощью GTM1, но это грозит потерей трафика, так как почти все контент-фильтры2 блокируют GTM.

GTM (Google Tag Manager) - решение от Google, которое позволяет размещать пользовательские скрипты на страницах сайта без непосредственного вмешательства в его код.

Контент-фильтры, или программа ограниче́ния веб-контента (англ. Content-control software или web filtering software) — устройство или программное обеспечение для фильтрации сайтов по их содержимому, не позволяющее получить доступ к определённым сайтам или услугам сети Интернет. Система позволяет блокировать веб-сайты с содержимым, не предназначенным для просмотра.

Пример

!function(t, e, c, n) {
    var s = e.createElement(c);
    s.async = 1, s.src = 'https://statics.esputnik.com/scripts/' + n + '.js';
    var r = e.scripts[0];
    r.parentNode.insertBefore(s, r);
    var f = function() {
        f.c(arguments);
    };
    f.q = [];
    f.c = function() {
        f.q.push(arguments);
    };
    t['eS'] = t['eS'] || f;
}(window, document, 'script', '000000000000000000');
</script>
<script>
eS('init', {
    TRACKING: false,
    RECOMS: true
});

Параметры

Название

Пример

Описание

script

"00000000000000000"

Обязательный

type: string

статический параметр с ID вашего магазина

TRACKING

true

Необязательный (true по умолчанию)

type: boolean

флаг включения трекинга по конфигу

в случае передачи событий методом es.JS API значение должно быть задано как false

RECOMS

true

Необязательный (true по умолчанию)

type: boolean

флаг отображения рекомендаций по конфигу (может работать без TRACKING, однако crawler config обязательно должен быть описан

Данные посетителя сайта

Во всех событиях

Описание

Отправка события со всех типов страниц с локатором пользователя (email, phoneNumber, contactId).

Необходимо для матчинга контактов с Cookies.

Пример

{
  "GeneralInfo": {},
    "user_email": "example@email.com",
    "user_phone": "380501234567",
    "user_es_contact_id":100500
  },
  "ProductPage": {
    "productKey": "24-WG02"
  }
}

Параметры

Название

Пример

Описание

user_email

"example@email.com"

Опциональный

type: string

  • email контакта

user_phone

"380501234567"

Опциональный

type: string

  • номер телефона контакта

user_es_contact_id

100500

Опциональный

Type: int

  • При подключенном функионале сборе веб пуш токенов данный идентификатор контакта находится во внутреннем хранилище браузера: Local Storage -> esWebPushContactId

Карточка товара

ProductPage

Описание

Отправка события ProductPage - карточка товара, содержащая наличие, цену и код продукта.

Необходима для расчета и вывода рекомендаций и отправки брошенных просмотров.

Пример

eS('sendEvent', 'ProductPage', {
        'ProductPage': {
            'productKey': '24-MB02',            
            'price': '153',
            'isInStock': 1,
            'tag_some_field': ['123'],
            'tag_another_field': ['321', '213']
        }});

Если в рекомендационном блоке, при нажатии на кнопку “купить” товар сразу добавляется в корзину, то необходимо при добавлении в корзину отправлять дополнительное события ProductPage

Параметры

Название

Пример

Описание

productKey

“24-MB02”

Обязательный

type: string

  • Любой идентификатор товара, который есть в фиде

  • Должен совпадать с productKey события StatusCart

price

“153”

Необязательный

type: string

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

  • Если цена на сайте изменилась, а в фиде еще нет, то запишется значение с сайта

isInStock

“1”

Необязательный

type: int

  • Отвечает за наличие товара

  • Параметр может принимать два значения:

    • “0” - товар не в наличии

    • “1” - товар в наличии

  • Если наличие товара на сайте изменилось, а в фиде еще нет, то в базу запишется значение с сайта

Tags

Необязательный

Type: object

  • Дополнительные поля

Главная страница

MainPage

Описание

Отправка события MainPage - главная страница сайта.

Необходимо только для возможности отображения рекомендаций на сайте.

Пример

eS('sendEvent', 'MainPage');

Страница "404"

NotFound

Описание

Отправка события NotFound - отсутствующая страница сайта (страница 404).

Необходимо только для возможности отображения рекомендаций на сайте.

Пример

eS('sendEvent', 'NotFound');

Корзина

StatusCart

Важно

Так как возможна параллельная настройка на нашей и вашей стороне, событие StatusCart не может быть настроено отдельно от PurchasedItems. Если вы настроили передачу StatusCart нужно также передавать событие PurchasedItems. Причина указана в описании параметра GUID

Описание

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

Изменения должны отправляться со всех страниц (например, на карточке товара или странице категорий).

Если есть возможность очистки корзины, то нужно передавать пустую корзину тоже.

Пример корзины с товарами

eS('sendEvent', 'StatusCart', {
   'StatusCart': [
       {
           'productKey': '24-MB02',
           'price': '153',
           'quantity': '1',
           'currency': 'USD',
           "tag_something": [
               "aaa",
               "bbb"
           ]
       }, {
           'productKey': '123-321',
           'price': '450.00',
           'quantity': '3',
           'currency': 'USD'
       }
   ],
   'GUID': '2b914e9c-43ee-bf41-6f80-b97db1e8ab7e'
});

Пример пустой корзины

eS('sendEvent', 'StatusCart', {
            'StatusCart': [],
            'GUID': '2c914e9c-43ee-bf41-6f80-b97db1e8ab7e'
        });

Параметры

Название

Пример

Описание

GUID “2c914e9c-43ee-bf41-6f80-b97db1e8ab7e”
Обязательный
Type: string
  • Уникальный идентификатор, связывающий два события StatusCart и PurchasedItems
  • Должен быть идентичным GUID’у события purchasedItems
  • Может быть сгенерирован из случайных цифр и латинских букв
  • GUID является связующим между последней корзиной и покупкой
  • Он должен быть уникальным для каждого состояния корзины, например представлять собой статистически уникальный 128-битный идентификатор, который записывается в виде строки из тридцати двух шестнадцатеричных цифр, разбитой на группы дефисами.
productKey

“24-MB02”

Обязательный

type: string

  • Любой идентификатор товара, который есть в фиде

  • Должен совпадать с productKey события ProductPage 

price

"153"

Обязательный

type: string

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

quantity

"5"

Обязательный

type: string

  • Количество одного товара

currency

"RUB"

Опциональный

type: string

  • Денежная единица, для товара

Tags

Необязательный

Type: object

  • Дополнительные поля

Продажа

PurchasedItems

Описание

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

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

Пример с товарами (только для “Покупка в один клик”)

eS('sendEvent', 'PurchasedItems', {
    "OrderNumber": "123/2017",
    "PurchasedItems": [{
        "productKey": "24-MB02",
        "price": "153",
        "quantity": "1",
        "currency": "UAH"
    }],
    "Tags": {
        "blockId": ["19787_r119v224"]
    }
});

Пример с товарами (Покупка с сайта)

eS('sendEvent', 'PurchasedItems', {
    "OrderNumber": "123/2017",
    "PurchasedItems": [{
        "productKey": "24-MB02",
        "price": "153",
        "quantity": "1",
        "currency": "UAH"
    }],
"GUID": "6F9619FF-8B86-D011-B42D-00CF4FC964FF"
});

Название

Пример

Описание

OrderNumber

"1234/2017"
Обязательный

type: string

  • Номер заказа

GUID

"6F9619FF-8B86-D011-B42D-00CF4FC964FF"
Обязательный

type: string

  • Уникальный идентификатор, связывающий два события StatusCart и PurchasedItems
  • Должен быть идентичным GUID’у события purchasedItems
  • Может быть сгенерирован из случайных цифр и латинских букв
  • GUID является связующим между последней корзиной и покупкой
  • Он должен быть уникальным для каждого состояния корзины, например представлять собой статистически уникальный 128-битный идентификатор, который записывается в виде строки из тридцати двух шестнадцатеричных цифр, разбитой на группы дефисами.
productKey

Обязательный

type: string

  • Любой идентификатор товара, который есть в фиде

  • Должен совпадать с productKey события ProductPage 

price

"21.70"

Обязательный

type: string

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

quantity

"1"

Обязательный

type: string

  • Количество одного товара

currency

"UAH"

Опциональный

type: string

  • Денежная единица, для товара

Tags

Необязательный

Type: object

  • Дополнительные поля

blockId

Необязательный

Type: string

  • Берется из строки запроса параметра URL sc_content=
  • Если квери параметра нет в URL, то параметр blockId и значение не передаются

 

Пользователь

CustomerData

Для отправки триггеров по брошенным корзинам и брошенным просмотрам необходимо отправить запрос, в котором будет указана информация о пользователе.

Email должен отправляться минимум, в личном кабинете, на странице “Спасибо за покупку” и при регистрации.

Пример

eS('sendEvent', 'CustomerData', {
    'CustomerData': {
        'user_email': 'example@email.com',
        'user_name': 'Johny',
        'user_client_id': '123',
        'user_card_id': '321',
        'user_phone': '3801111111111',
        'user_city': 'Gdańsk',
        'user_tags_gender': 'male',
    }
});

Параметры

Название

Пример

Описание

user_email

"example@email.com"

Обязательный

type: string

  • Email пользователя, нужен для отправки брошенных корзин и просмотров

user_name

"Johny"

Необязательный

type: string

  • Имя пользователя

user_client_id

"123"

Необязательный

type: string

  • Идентификатор пользователя

user_card_id

"321"

Необязательный

type: string

  • Идентификатор карточки пользователя

user_phone

"3801111111111"

Необязательный

type: string

  • Телефон в международном формате

Категория

CategoryPage

Описание

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

Пример

eS('sendEvent', 'CategoryPage', {
    "CategoryPage": {
        "categoryKey": "Для малышей"
    },
    "Tags": {
        "some_tags": [
            "gh",
            "a2"
        ],
        "some_tags1": [
            "4",
            "gg"
        ]
    }
});

Параметры

Название

Пример

Описание

CategoryPage 

"Для малышей"

Обязательный

type: string

  • Идентификатор категории

  • Может быть название категории или любой другой идентификатор, который есть в фиде

Tags

Необязательный

Type: object

  • Дополнительные поля

Показы

ProductImpression DEPRECATED, отправляется если рекомендации вернулись

Описание

При выводе рекомендательных блоков для отображения показов в админпанели на вкладке “Reports” необходимо отправить запрос, в котором будет указана информация о показанных товарах .

Пример

eS('sendEvent', 'ProductImpressions', {
    "ProductImpression": [{
        "product_id": "430968",
        "container_type": "1253"
    }]
});

Параметры

Название

Пример

Описание

product_id

"PK1"

Обязательный

type: string

  • идентификатор товара, который был показан

container_type

"1253"

Обязательный

type: string

  • Номер блока рекомендаций

Tags

Необязательный

Type: object

Дополнительные поля

*Если блоков несколько на одной странице, все показы передаются в одном запросе.*Если блоков несколько на одной странице, все показы передаются в одном запросе.

Остались вопросы?
Специалисты обязательно ответят и помогут решить вашу проблему!
Обратный звонок
Оставьте заявку – и наш специалист свяжется с вами в рабочее время.
Отправить заявку
Консультация в чате
Готовы к вашим вопросам!
Написать в чат
Электронная почта
Напишите в службу поддержки eSputnik.
Отправить email