Настройка Tracking, методом отправки событий | Поддержка eSputnik

Email

Омниканальность

Автоматизация

Настройка Web Tracking методом отправки событий через JavaScript

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

События можно отправлять в систему двумя способами:

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

Скрипт

Script eS

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

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

Установка

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

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

<body>

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

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

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

Пример

<script>
!function(t, e, c, n) {
    var s = e.createElement(c);
    s.async = 1, s.src = 'https://cdn.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>

Параметры

Название

Пример

Описание

script

"00000000000000000"

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

Тип: String

Статический параметр, содержащий ID вашего магазина.

TRACKING

true

Опциональный (true по умолчанию)

Тип: Boolean

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

В случае передачи событий методом es.JS, API значение должно быть задано как false, при этом остается автоматическая отправка события PageView при перезагрузке страницы.

RECOMS

true

Опциональный (true по умолчанию)

Тип: Boolean

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

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

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

Описание

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

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

Пример

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

Параметры

Название

Пример

Описание

externalCustomerId

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

Тип: String

  • Внешний идентификатор контакта
user_email

"example@email.com"
Опциональный

Тип: String

  • Еmail контакта

user_phone

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

Тип: String

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

user_es_contact_id

100500

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

Тип: String

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

Просмотр страницы

PageView

Описание

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

Пример

eS('sendEvent', 'PageView', {
 'PageView': { }
});

 

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

ProductPage

Описание

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

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

Пример

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

Если в рекомендационном блоке, при нажатии на кнопку “купить” товар сразу добавляется в корзину, то необходимо при добавлении в корзину отправлять дополнительное событие ProductPage, в GeneralInfo в "s_location" передавать параметр "sc_content", который можно получить из ссылки целевого товара, полученного в рекомендациях.

Параметры

Название

Пример

Описание

productKey

“24-MB02”

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

Тип: String

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

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

price

“153”

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

Тип: String

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

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

isInStock

“1”

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

Тип: Int

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

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

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

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

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

Tags

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

Тип: Object

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

Список желаний

AddToWishlist

Описание

Отправка события AddToWishlist происходит в момент добавления товара в список желаемого (избранное).
Необходима для расчета и вывода рекомендаций и отправки триггеров связанных с списком желаний.

Пример

eS('sendEvent', 'AddToWishlist', {
        'AddToWishlist': {
            'productKey': '24-MB02',            
            'price': '153',
            'isInStock': 1
        }});

Параметры

Название

Пример

Описание

productKey

“24-MB02”

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

Тип: String

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

price

“153”

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

Тип: String

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

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

isInStock

“1”

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

Тип: Int

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

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

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

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

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

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

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('sendEventWithTags', 'StatusCart', {
  "StatusCart": {
    "GUID": "6F9619FF-8B86-D011-B42D-00CF4FC964FF",
    "Products": [
      {
        "productKey": "430738",
        "price": 201.95,
        "discount": 180,
        "quantity": 1,
        "price_currency_code": "UAH",
        "tag_something": [
          "aaa",
          "bbb"
        ]
      },
      {
        "productKey": "902339",
        "price": 596,
        "discount": 590,
        "quantity": 1,
        "price_currency_code": "UAH",
        "tag_something": [
          "aaa",
          "bbb"
        ]
      }
    ],
    "Tags": {
      "some_tags": [
        "1",
        "a2"
      ],
      "some_tags1": [
        "4",
        "gg"
      ]
    }
  }
});

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

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

Параметры

Название

Пример

Описание

GUID

“2c914e9c-43ee-bf41-6f80-b97db1e8ab7e”
Обязательный

Тип: String

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

“24-MB02”

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

Тип: String

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

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

price

"153"

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

Тип: String

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

quantity

"5"

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

Тип: String

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

currency

"RUB"

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

Тип: String

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

Tags

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

Тип: 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('sendEventWithTags', 'PurchasedItems', {
  "PurchasedItems": {
    "Products": [
      {
        "product_id": "430738",
        "unit_price": "201.95",
        "quantity": 1
      },
      {
        "product_id": "211452",
        "unit_price": "341.80",
        "quantity": 2
      }
    ],
    "OrderNumber": "123/2017",
    "Tags": {
      "block_id": [
        "21246_r335v507"
      ],
      "some_tags1": [
        "4",
        "gg"
      ]
    }
  }
});

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

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

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

Пример конструкции
eS('sendEventWithTags', 'PurchasedItems', {
  "PurchasedItems": {
    "GUID": "6F9619FF-8B86-D011-B42D-00CF4FC964FF",
    "OrderNumber": "123/2017",
    "Tags": {
      "some_tags": [
        "1",
        "a2"
      ],
      "some_tags1": [
        "4",
        "gg"
      ]
    }
  }
});

Название

Пример

Описание

OrderNumber

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

Тип: String

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

GUID

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

Тип: String

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

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

productKey

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

Тип: String

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

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

price

"21.70"

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

Тип: String

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

quantity

"1"

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

Тип: String

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

currency

"UAH"

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

Тип: String

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

Tags

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

Тип: Object

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

blockId

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

Тип: String

  • Берется из строки запроса параметра URL sc_content=

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

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

CustomerData

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

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

Пример

eS('sendEvent', 'CustomerData', {
    'CustomerData': {
        'externalCustomerId': '1234509876',
        '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',
    }
});

Параметры

Название

Пример

Описание

externalCustomerId

"1234509876"

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

Тип: String

Внешний идентификатор контакта

user_email

"example@email.com"

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

Тип: String

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

user_name

"Johny"

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

Тип: String

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

user_client_id

"123"

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

Тип: String

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

user_card_id

"321"

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

Тип: String

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

user_phone

"3801111111111"

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

Тип: String

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

Категория

CategoryPage

Описание

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

Пример

eS('sendEvent', 'CategoryPage', {
    "CategoryPage": {
        "categoryKey": "509876"
    },
    "Tags": {
        "some_tags": [
            "gh",
            "a2"
        ],
        "some_tags1": [
            "4",
            "gg"
        ]
    }
});

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

Пример конструкции
eS('sendEventWithTags', 'CategoryPage', {
  "CategoryPage": {
    "Category": {
      "categoryKey": "509876"
    },
    "Tags": {
      "some_tags": [
        "1",
        "a2"
      ],
      "some_tags1": [
        "4",
        "gg"
      ]
    }
  }
});

Параметры

Название

Пример

Описание

categoryKey 

"509876"

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

Тип: String

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

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

Tags

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

Тип: Object

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

Показы

ProductImpression отправляется автоматически если рекомендации отобразились пользователю сайта.

Если Вы настраиваете вызов рекомендаций через JS API, необходимо вызывать метод ProductImpressions, когда рекомендация появляется в области просмотра браузера у пользователя (когда пользователь видит рекомендацию), чтобы отслеживание работало правильно. Вы можете использовать Intersection Observer API для определения видимости элемента для пользователя или любым другим методом по вашему выбору. В запросе должны быть указаны параметры, которые были возвращены в ответе getRecommendations: идентификаторы продуктов и container_type, содержащий  ID блока и variant_id.

Описание

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

Пример

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

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

Пример конструкции
eS('sendEventWithTags', 'ProductImpression', {
  "ProductImpression": {
    "Products": [
      {
        "product_id": "430968",
        "container_type": "1253"
      },
      {
        "product_id": "430738",
        "container_type": "1254"
      },
      {
        "product_id": "429983",
        "container_type": "1255"
      }
    ],
    "Tags": {
      "some_tags": [
        "1",
        "a2"
      ],
      "some_tags1": [
        "4",
        "gg"
      ]
    }
  }
});

Параметры

Название

Пример

Описание

product_id

"PK1"

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

Тип: String

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

container_type

"1253"

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

Тип: String

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

Tags

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

Тип: Object

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

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

Поисковые запросы

SearchRequest (опциональный)

Описание

Для сбора статистики по поисковым запросам необходимо отправить вводимое значение со строки поиска.

Данное событие используется для триггеров. Его нужно отправлять только в случае, когда поиск не дал результатов. В триггере такие контакты будут получать персональные рекомендации (в данный момент, выдача рекомендаций не зависит от значения, введенного в поиске, поддержка этой функции предполагается в будущем).

Пример

eS('sendEvent', 'SearchRequest', {
    "SearchRequest": {
"search":"input_value",
"isFound": 1
}
});

Параметры

Название

Пример

Описание

search

"Coffe"

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

Тип: String

Вводимое значение со строки поиска. То, что мы ищем на сайте

isFound

0/1

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

Тип: Int

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