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

Пользовательские данные

Email

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

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

Отслеживание событий и поведения

Передача данных о поведении пользователей на сайте через JavaScript

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

Мы безопасно храним в зашифрованном виде в нашей системе контактные данные, полученные во время событий, такие как адреса электронной почты, телефонные номера и другие.

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

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

Важно

1. Особое внимание уделите передаче данных о контактах.

2. Нет необходимости настраивать все события, приведенные ниже, — выберите только входящие в ваш тарифный план.

Список событий

1. Базовые (тариф Advanced):

  • ProductPage
  • StatusCart
  • PurchasedItems
  • CustomerData

2. Продвинутые (тариф Professional):

  • ProductPage
  • StatusCart
  • PurchasedItems
  • CustomerData
  • CategoryPage
  • SearchRequest
  • AddToWishlist

3. Рекомендации на сайте:

  • ProductPage
  • StatusCart
  • PurchasedItems
  • CustomerData
  • CategoryPage
  • MainPage
  • NotFound
  • ProductImpression

Проверьте отправку событий и их параметры в консоли браузера на вкладке Network. Трекинговые события называются webevent.

Network

Скрипт

Script eS

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

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

Установка

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

Может быть установлен с помощью GTM, но это грозит потерей трафика, так как почти все контент-фильтры блокируют 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');

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

Описание

Отправка события 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

  • Еmail контакта

user_phone

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

Тип: String

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

user_es_contact_id

100500

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

Тип: String

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

События базовой сегментации (тариф Advanced)

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

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 должен совпадать с параметром <g:id> в фиде. Если в фиде ID товара передается в другом параметре, согласуйте это с support@esputnik.com.

Также обратите внимание на тип данных в параметрах price и isInStock.

Параметры

Название

Пример

Описание

productKey

“24-MB02”

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

Тип: String

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

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

price

“153”

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

Тип: String

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

isInStock

“1”

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

Тип: Int

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

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

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

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

Tags

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

Тип: Object

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

Корзина

StatusCart

Описание

Корзина передается как массив данных. Событие нужно передавать каждый раз:

  • при добавлении товара в корзину со страниц категории, товара и главной
  • при удалении товара из корзины во всплывающем окне или на странице корзины/чекаута
  • при очистке корзины (если есть возможность)

Обратите внимание

Событие StatusCart передает не факт добавления конкретного товара в корзину, а актуальное состояние корзины. Если в корзину добавляется первый товар, то в событии StatusCart передается массив с одним товаром. Если добавляется 2-й, 3-й и т.д. товары, то в событиях StatusCart передается массив из 2-х, 3-х и т.д. товаров. Та же логика работает и при удалении товаров из корзины.

Параметр GUID. В каждом событии StatusCart необходимо передавать параметр GUID. Это уникальный идентификатор текущего состояния корзины. Каждый раз, когда вы отправляете событие StatusCart, необходимо передавать новое значение 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

"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. Значение этого параметра генерировать не требуется. Используйте значение GUID из последнего события StatusCart.

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

Пример конструкции
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

CustomerData должна отправляться:

  • при регистрации на сайте;
  • при авторизации на сайте;
  • при вводе личных данных на странице чекаута. Если к моменту оформления заказа пользователь уже авторизован, можно не отправлять это событие;
  • из личного кабинета, если пользователь обновляет информацию (добавляет/изменяет номер телефона или email).

Обратите внимание

При регистрации пользователя кроме события CustomerData нужно обязательно дополнительно передать в систему контакт методом https://docs.esputnik.com/reference/addcontact-1, поскольку само событие CustomerData не создает контакт в eSputnik.

Если кроме трекинга на сайте будет настраиваться трекинг в мобильном приложении, необходимо в запросе создания контакта дополнительно передавать параметр externalCustomerId (ваш внутренний идентификатор контакта).

Пример

eS('sendEvent', 'CustomerData', {
    'CustomerData': {
        'externalCustomerId': '1234509876',
        'user_email': 'example@email.com',
        'user_name': 'Johny',
        '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

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

Дополнительные события для расширенной сегментации (тариф Pro)

Категория

CategoryPage

Описание

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

Обратите внимание

categoryKey должен совпадать с названиями категорий в фиде. Если в фиде категории передаются так: <g:google_product_category>Обувь > Кроссовки > Кроссовки для бега</g:google_product_category>, то и в categoryKey нужно передавать Обувь, Кроссовки или Кроссовки для бега соответственно. Если категория в виде идентификатора, тогда и в фиде следует изменить ее на идентификатор. С технической точки зрения не важно, какой вариант будет выбран, но с практической точки зрения лучше использовать именно названия категорий.

Пример

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

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

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

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” - товар в наличии

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

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

Описание

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

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

Пример

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

Параметры

Название

Пример

Описание

search

"Coffe"

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

Тип: String

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

isFound

0/1

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

Тип: Int

Если список пуст, возвращается 0, если содержит даные - 1.

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

Карточка товара (дополнительные настройки)

ProductPage

ProductPage

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

Если на странице корзины/оформления заказа не отправляется StatusCart (не было изменений в корзине), а нужно отображать рекомендательный блок для корзины, отправляйте событие eS('sendEvent', 'StatusCartPage')

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

MainPage

Описание

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

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

Пример

eS('sendEvent', 'MainPage');

Страница "404"

NotFound

Описание

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

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

Пример

eS('sendEvent', 'NotFound');

Показы

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_r963v1317"
      },
      {
        "product_id": "430738",
        "container_type": "1253_r963v1317"
      },
      {
        "product_id": "429983",
        "container_type": "1253_r963v1317"
      }
    ],
    "Tags": {
      "some_tags": [
        "1",
        "a2"
      ],
      "some_tags1": [
        "4",
        "gg"
      ]
    }
  }
});

Параметры

Название

Пример

Описание

product_id

"PK1"

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

Тип: String

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

container_type

"1253"

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

Тип: String

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

Tags

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

Тип: Object

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

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

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