Налаштування 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), — пристрій або програмне забезпечення для фільтрації сайтів за їхнім контентом, що не дозволяє отримати доступ до певних сайтів або послуг мережі Інтернет. Система дозволяє блокувати веб-сайти з контентом, не призначеним для перегляду.

Приклад

<script>
!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>

Параметри

Назва

Приклад

Опис

script

"00000000000000000"

Обов'язковий

type: string

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

TRACKING

true

Необов'язковий (true за замовчуванням)

type: boolean

Прапорець увімкнення трекінгу за конфігом

У випадку передачі подій методом es.JS API значення має бути задане як false, при цьому залишається автоматичне надсилання події PageView при перезавантаженні сторінки

RECOMS

true

Необов'язковий (true за замовчуванням)

type: boolean

Прапорець відображення рекомендацій за конфігом (може працювати без TRACKING, але crawler config обов’язково має бути описаний)

 

Перегляд сторінки

Опис

Відправка події PageView - відбувається автоматично при перезавантаженні сторінки, якщо у вас односторінковий сайт і при переході в інші розділи сайту не відбувається перезавантаження сторінки, можете налаштувати передачу події самостійно.

Приклад

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

Дані користувача сайту

У всіх подіях

Опис

Відправка події з усіх типів сторінок з локатором користувача (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, а в GeneralInfo в "s_location" передати параметр "sc_content", який можна отримати з посилання цільового товару, отриманного в рекомендаціях.

Якщо необхідно передавати додаткові параметри події, потрібно використовувати іншу конструкцію

Приклад

eS('sendEventWithTags', 'ProductPage', {
  "ProductPage": {
    "Product": {
      "productKey": "72354",
      "price": "754 USD",
      "isInStock": "1",
      "tag_something": [
        "abc",
        "bca"
      ]
    },
    "Tags": {
      "some_tags": [
        "some_tag1",
        "some_tag2"
      ]
    }
  }
});

Параметри

Назва

Приклад

Опис

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': '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”
Обов'язковий
Type: string
  • Унікальний ідентифікатор, що зв'язує дві події StatusCart і PurchasedItems
  • Повинен бути ідентичним GUID'у події purchasedItems
  • Може бути згенерований з випадкових чисел і латинських букв
  • GUID є зв'язуючим між останнім кошиком і покупкою
  • . Він повинен бути унікальним для кожного стану кошика
  • Він повинен бути унікальним для кожного стану кошика, наприклад являти собою статистично унікальний 128-бітний ідентифікатор, який записується у вигляді рядка з тридцяти двох шістнадцятирічних цифр, розбитою на групи дефісами.
productKey

“24-MB02”

Обов'язковий

type: string

  • Будь-який ідентифікатор товару, наявний у фіді

  • Має збігатися з productKey події ProductPage 

price

"153"

Обов'язковий

type: string

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

quantity

5

Обов'язковий

type: string

  • Кількість однієї позиції товару

currency

"UAH"

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

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('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"

Обов’язковий

type: string

  • Номер замовлення

GUID

"6F9619FF-8B86-D011-B42D-00CF4FC964FF"

Обов’язковий

type: string

  • Унікальний ідентифікатор, що зв'язує дві події StatusCart і PurchasedItems

  • Повинен бути ідентичним GUID'у події purchasedItems

  • Може бути згенерований з випадкових чисел і латинських букв

  • GUID є зв'язуючим між останнім кошиком і покупкою

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

productKey

"PK1"

Обов’язковий

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"
        ]
    }
});

Якщо необхідно передавати додаткові параметри події, потрібно використовувати іншу конструкцію

Приклад
eS('sendEventWithTags', 'CategoryPage', {
  "CategoryPage": {
    "Category": {
      "categoryKey": "Для малышей"
    },
    "Tags": {
      "some_tags": [
        "1",
        "a2"
      ],
      "some_tags1": [
        "4",
        "gg"
      ]
    }
  }
});

Параметри

Назва

Приклад

Опис

CategoryPage

"Для малюків"

Обов’язковий

type: string

  • Ідентифікатор категорії

  • Може бути назва категорії або будь-який інший ідентифікатор, наявний у фіді

Tags

Необов’язковий

Type: object

  • Додаткові поля

Покази

ProductImpression DEPRECATED, відправляємо автоматично якщо рекомендації відобразились користовачу сайту.

Опис

При виведенні рекомендаційних блоків для відображення показів на адмінпанелі у вкладці "Reports" необхідно відправити запит, який міститиме інформацію про показані товари.

Приклад

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

Якщо необхідно передавати додаткові параметри події, потрібно використовувати іншу конструкцію

Приклад
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"

Обов’язковий

type: string

  • Ідентифікатор товару, який було показано

container_type

"1253"

Обов’язковий

type: string

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

Tags

Необов’язковий

Type: object

  • Додаткові поля

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

Залишилися питання?
Спеціалісти обов'язково нададуть відповідь та допоможуть вирішити вашу проблему!
Зворотний дзвінок
Залишіть заявку – і наш спеціаліст зв'яжеться з вами в робочий час.
Відправити заявку
Консультація в чаті
Готові до ваших запитань!
Написати в чат
Електронна пошта
Напишіть в службу підтримки eSputnik.
Надіслати email