События (Эвенты)

Передача пользовательских данных с сайта осуществляется с помощью эвентов. Эвенты отсылаются в Convead в виде POST запроса в не зависимости от способа реализации отправки на js, php или любом другом языке.

Структура эвента

Формат отправки данных: POST

Адрес сервера: https://tracker.convead.io/watch/event

Переменные запроса:

app_key - APP ключ приложения Convead*
visitor_uid - уникальный id идентификатор зарегистрированного посетителя*
guest_uid - уникальный uid идентификатор гостя*
data - JSON строка с данными эвента *

Эти поля являются обязательными.

Формат объекта data:

{
  app_key:"xxxxx", // APP ключ приложения Convead*
  visitor_uid:"xxx", // уникальный id идентификатор зарегистрированного посетителя*
  guest_uid:"xxx", // уникальный uid идентификатор гостя*
  type:"link", // тип события*
  visitor_info:{ // объект visitor_info с информация о посетителе*
    "email":"mail@example.net"
  },
  url:"http://example.net/catalog", // адрес страницы*
  domain:"convead.ru", // домен*
  host:"convead.ru", // основной домен*
  path:"/catalog", // путь до страницы
  title:"Каталог", // title страницы
  referrer:"http://example.net/help", // предыдущая просмотранная страница
  properties:{}, // дополнительные параметры*
  attributes:{}  // атрибуты*
}

Одновременная передача значений guest_uid/visitor_uid означает, что посетитель перешел из состояния "гость" в состояние "зарегистрирован на сайте". В остальных случаях передается одно из значений этих параметров.

При успешной отправке сервер ответит 200 OK. Если эвент некорректен, то будет ответ с кодом ошибки.

Типы эвентов

add_to_cart

Добавляет одно наименование товара в корзину. 
 Вместо данного эвента рекомендуется использовать update_cart.

properties: {
  product_id: "123", // id товара
  qnt: 1, // количество товаров
  price: 1000, // цена
  product_name: "Сало диетическое", // название
  product_url: "http://site.net/product/1", // адрес карточки товара,
  product_image_url: "http://site.net/1.jpg" // ссылка на изображение товара
}

custom

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

properties: {
  key: "callback" // ключ пользовательского эвента
}

Ключ пользовательского эвента задается в разделе Мой аккаунт=>Мои события.

file

Сообщает о скачивании файла.

properties: {
  file_url: "http://mysite.ru/catalog.doc" // адрес файла
}

link

Автоматически вызывается в момент открытия страницы. Для ajax сайтов, на которых переход между страницами не вызывает перезагрузку страницы - срабатывает при смене URL в поле адрес браузера.

properties: {} // не имеет обязательных свойств

login

Сообщает о смене статуса посетителя из "Гость" в "Зарегистрированный пользователь" или из "Гость 1" в "Гость 2" (если известно, что посетитель сменил uid).
 Эвент вызывается автоматически из js api вместе с эвентом link.

properties: {} // не имеет обязательных свойств

logout

Сообщает о смене статуса посетителя из "Зарегистрированный пользователь" в "Гость" в момент выхода из учетной записи.
 Эвент вызывается автоматически из js api вместе с эвентом link.

properties: {} // не имеет обязательных свойств

mailto

Передает данные о клике по email адресу. Выражает намерение посетителя отправить письмо.

properties: {
  email: 'chuck-norris@example.com' // email адрес получателя письма
}

purchase

Эвент покупки. Обычно отсылается со страницы "спасибо за заказ".

properties: {
  order_id: "12345", // id заказа; при повторной отправки эвента заказа с неуникальным id он будет игнорироваться
  revenue: 99.99, // полная стоимость заказа с учетом стоимости доставки и скидок
  items: [ // массив из списка товаров в заказе
    {
      product_id: "1", // id наименования товара
      qnt: 1, // количество товаров
      price: 125.15, // цена
      product_name: "Сало диетическое", // название товара (необязательный параметр)
      product_url: "http://site.net/product/1", // адрес страницы товара (необязательный параметр)
      product_image_url: "http://site.net/1.jpg" // ссылка на изображение товара (необязательный 
    },
    {
      product_id: '2',
      qnt: 15,
      price: 127.02,
      product_name: "Булочки с маком",
      product_url: "http://site.net/product/2",
      product_image_url: "http://site.net/2.jpg"
    }
  ]
}

update_cart

Передает полный состав корзины на текущий момент. Если корзина очищена, то отправляется с пустым массивом items: []

properties: { 
  items:[
    {
      product_id: "1", // id наименования товара
      qnt: 1, // количество товаров
      price: 125.15, // цена
      product_name: "Сало диетическое", // название товара (необязательный параметр)
      product_url: "http://site.net/product/1", // адрес страницы товара
      product_image_url: "http://site.net/1.jpg" // ссылка на изображение товара (необязательный параметр)
    },
    {
      product_id: "2",
      qnt: 15,
      price: 127.02,
      product_name: "Булочки с маком",
      product_url: "http://site.net/product/2",
      product_image_url: "http://site.net/2.jpg"
    }
  ]
}

update_info

Используется для передачи обновленных данных посетителя в объекте visitor_info.

properties: {} // не имеет обязательных свойств

view_product

Эвент просмотра товара в карточке товара.

properties: {
  product_id: "123", // id товара
  product_name: "Сковородка RX9000", // название товара
  category_id: "123", // id раздела в котором расположен товар (необязательный параметр)
  product_url: window.location.href, // адрес страницы с товаром 
  product_image_url: "http://site.net/1.jpg" // ссылка на изображение товара (необязательный 
}

remove_from_cart

Удаляет qnt товаров из одного наименования товара корзины.
 Вместо данного эвента рекомендуется использовать update_cart.

properties: {
  product_id: "1", // id товара
  qnt: 2 // количество удаляемых товаров из наименования корзины
}

Примеры

Несколько примеров как можно отправить пользовательский эвент разными способами:

JavaScript API:

<script>
window.ConveadSettings = {
  app_key: "xxxx"
};
(function(w,d,c){w[c]=w[c]||function(){(w[c].q=w[c].q||[]).push(arguments)};var ts = (+new Date()/86400000|0)*86400;var s = d.createElement('script');s.type = 'text/javascript';s.async = true;s.charset = 'utf-8';s.src = 'https://tracker.convead.io/widgets/'+ts+'/widget-'+window.ConveadSettings.app_key+'.js';var x = d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);})(window,document,'convead');

convead("event", "custom", {key: "callback"}, {"email":"mail@example.net"});
</script>

PHP Tracker:

<?php
include_once("ConveadTracker.php");
$app_key = "xxxxxxx"; // APP-ключ вашего аккаунта, можно найти здесь: http://take.ms/Ejv3q
$visitor_uid = (is_logged_in() ? $current_user_id : false); // Если юзер авторизован, то подставляется его id, иначе - false
$guest_uid = (!empty($_COOKIE["convead_guest_uid"]) ? $_COOKIE["convead_guest_uid"] : false);

$convead = new ConveadTracker($app_key, $_SERVER['HTTP_HOST'], $guest_uid, $visitor_uid);
$convead->eventCustom("callback", array("email"=>"mail@example.net"));
?>

Все еще нужна помощь? Связаться с нами Связаться с нами