Перші кроки
Відстеження подій та поведінки
- Отримання та встановлення скрипта веб-трекінгу
- Налаштування трекінгу прив'язкою до селекторів сайту
- Налаштування та використання вебтрекінгу для персоналізації контенту на сайті та в розсилках
- Налаштування Web Tracking методом відправлення подій через JavaScript
- Передавання даних про поведінку відвідувачів сайту через REST API
Дані користувача
- Огляд адаптивного email-редактора
- Cтворення оформлення для листа
- Створення синхронізованих модулів
- Налаштування адаптивності
- Налаштування Smart-елементів
- Оформлення промовкладки для Gmail
- Додавання Rolloverʼа
- Додавання фону до листа
- Додавання анкорних посилань
- Бібліотека блоків (Модулі)
- Додавання таблиці до листа
- Додавання кастомних шрифтів
- Додавання кастомних іконок соцмереж
- Створення кнопки СТA
- Робота з блоком "Зображення"
Омніканальність
- SDK для мобільних застосунків
- Керування ключами доступу до мобільного SDK
- Підключення мобільного додатка
- Створення Google проекту для Mob Push
- Створення мобільних push-повідомлень
- Налаштування аналітики доставлень та кліків
- Планування мобільних push-повідомлень
- Налаштування універсальних посилань (deeplinks & Universal links)
- Звіти за мобільними push-розсилками
Автоматизація
Персоналізація
- Підстановка промокоду з файлу
- Підстановка промокоду з використанням API
- Принципи генерації промокодів за допомогою PHP/JAVA
- Підстановка промокоду за допомогою персоналізації
- Завантаження промокодів для використання в сценарії
- Генерація промокодів у сценарії
- Відправлення промокоду за допомогою передпроцесора
- HTTP-запит для передачі промокоду з повідомлення до картки контакту
Аналітика
Товарні рекомендації
API
- Інтеграція з API — найчастіші питання
- API-ключі
- Ресурси API для додавання контактів
- Використання API-ресурсу Generate event
- Передача замовлень API-ресурсом Generate event
- Отримання рекомендацій щодо API ресурсом Contact recommendations based on web tracking
- Використання API-ресурсу Send prepared message
Зміна системи
Документи
Інтеграція
Налаштування 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 обов’язково має бути описаний) |
Перегляд сторінки
Опис
Відправка події PageView - відбувається автоматично при перезавантаженні сторінки, якщо у вас односторінковий сайт і при переході в інші розділи сайту не відбувається перезавантаження сторінки, можете налаштувати передачу події самостійно.
Приклад
eS('sendEvent', 'PageView', {
'PageView': { }
});
Дані користувача сайту
У всіх подіях
Опис
Відправка події з усіх типів сторінок з локатором користувача (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 |
|
Картка товару
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': 'UAH'
}
],
'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 |
"UAH" Опціональний Тип: 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 |
"PK1" Обов’язковий Тип: String |
|
price |
"21.70" Обов’язковий Тип: String |
|
quantity |
"1" Обов’язковий Тип: String |
|
currency |
"UAH" Опціональний Тип: String |
|
Tags |
Опціональний Type: 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 |
1/0 Необовʼязковий Тип: Int |
Якщо список пустий, повертається значення 0. Якщо список містить дані - 1. |