Первые шаги
Отслеживание событий и поведения
- Получение и установка скрипта веб-трекинга
- Настройка трекинга привязкой к селекторам сайта
- Настройка и использование веб-трекинга для персонализации контента на сайте и в рассылках
- Настройка Web Tracking методом отправки событий через JavaScript
- Передача данных о поведении посетителей сайта через REST API
Пользовательские данные
- Обзор адаптивного email-редактора
- Создание оформления для письма
- Создание сквозных модулей
- Настройка адаптивности
- Настройка Smart-элементов
- Оформление промовкладки для Gmail
- Добавление Rolloverʼа
- Добавление фона в письмо
- Добавление анкорных ссылок
- Библиотека блоков (Модули)
- Добавление блока "Видео"
- Добавление таблицы в письмо
- Работа с блоком "Баннер"
- Добавление пользовательских шрифтов
- Добавление кастомных иконок соцсетей
- Работа с блоком "Соцсети"
- Создание кнопки CTA
- Редактирование HTML и CSS
- Робота с блоком "Изображения"
- Работа с блоком “Таймер"
- Настройка блока "Меню"
- Создание футера
Омниканальность
- SDK для мобильных приложений
- Управление ключами доступа к мобильному SDK
- Подключение мобильного приложения
- Создание Google проекта для Mob Push
- Создание мобильных push-сообщений
- Настройка аналитики доставляемости и кликов
- Планирование мобильных push-уведомлений
- Настройка универсальных ссылок (deeplinks & Universal links)
- Отчеты по мобильным push-рассылкам
Автоматизация
- Запуск сценария после импорта контактов
- Двойное подтверждение подписки
- Приветственная серия
- Запуск Welcome-серии для разных категорий
- Регулярный сценарий для группы
- Поздравление с днем рождения
- Привязка сценария к кнопке
- Согласование переменных события со сценарием на примере сценария "Заказ доставлен"
- Сбор отзывов о заказе
- Реактивация клиентов и подписчиков
- Отправка рассылки непрочитавшим
- Контроль триггеров
- Если сценарий не работает
Персонализация
- Подстановка промокода из файла
- Подстановка промокода с использованием API
- Принципы генерации промокодов с помощью PHP/JAVA
- Подстановка промокода с помощью персонализации
- Загрузка промокодов для использования в сценарии
- Генерация промокодов в сценарии
- Отправка промокода с помощью препроцессора
- HTTP-запрос для передачи промокода из сообщения в карточку контакта
Аналитика
- Отчёт по email-рассылке
- Отчет по AMP-рассылке
- Отчеты по мобильным push-рассылкам
- Отчет по SMS-рассылке
- Отчет по Web-push рассылке
- Отчет по Viber-рассылке
- Настройка передачи UTM-меток
- Визуализация дохода от рассылок
- Отслеживание эффективности рассылок в Google Analytics
- Как открыть CSV-файл после экспорта
Мультиязычность
Товарные рекомендации
API
Смена системы
Документы
Интеграция
Настройка Web Tracking методом отправки событий через JavaScript
Если вы уже установили скрипт на сайт, можете настроить передачу событий в eSputnik для отслеживания поведения посетителей сайта.
События можно отправлять в систему двумя способами:
- через браузер, вызывая функцию eS.JS;
- из бэкенда, используя REST API. В этой инструкции рассмотрим первый вариант.
Скрипт
Script eS
Назначение скрипта
Скрипт фиксирует страницу нахождения каждого посетителя и позволяет вызывать и посылать события с любой страницы, где он установлен.
Установка
Скрипт должен быть установлен на всех страницах вашего сайта.
Устанавливается в разметку в конце блока
<body>
Может быть установлен с помощью GTM1, но это грозит потерей трафика, так как почти все контент-фильтры2 блокируют GTM.
1 GTM (Google Tag Manager) - решение от Google, которое позволяет размещать пользовательские скрипты на страницах сайта без непосредственного вмешательства в его код.
2 Контент-фильтры, или программа ограниче́ния веб-контента (англ. 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 |
|
user_phone |
"380501234567" Тип: String |
|
user_es_contact_id |
100500 Опциональный Тип: String |
|
Просмотр страницы
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 |
|
price |
“153” Опциональный Тип: String |
|
isInStock |
“1” Опциональный Тип: Int |
|
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 |
|
Главная страница
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 |
|
productKey |
“24-MB02” Обязательный Тип: String |
|
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"
});
Если необходимо передавать дополнительные параметры события, нужно использовать другую конструкцию
Пример конструкции
"PurchasedItems": {
"GUID": "6F9619FF-8B86-D011-B42D-00CF4FC964FF",
"OrderNumber": "123/2017",
"Tags": {
"some_tags": [
"1",
"a2"
],
"some_tags1": [
"4",
"gg"
]
}
}
});
Название |
Пример |
Описание |
OrderNumber |
"1234/2017" Тип: String |
|
"6F9619FF-8B86-D011-B42D-00CF4FC964FF" Тип: String |
|
|
productKey |
Обязательный Тип: String |
|
price |
"21.70" Обязательный Тип: String |
|
quantity |
"1" Обязательный Тип: String |
|
currency |
"UAH" Опциональный Тип: String |
|
Tags |
Опциональный Тип: Object |
|
blockId |
Опциональный Тип: String |
|
Пользователь
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 |
Обязательный Тип: String |
|
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"
]
}
});
Если Вам необходимо передавать дополнительные параметры события, нужно использовать другую конструкцию
Пример конструкции
"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"
}]
});
Если необходимо передавать дополнительные параметры события, нужно использовать другую конструкцию
Пример конструкции
"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. |