Сбор данных для SaaS

Как настроить передачу необходимых событий в онлайн-сервисе

Для настройки автоматических сообщений нам потребуется информация о действиях пользователя на сайте. Для SaaS интересны такие события и свойства как: регистрация, оплата заказа, доход с пользователя и др. Ниже приведены примеры скриптов, при выполнении которых на определенных страницах сайта нужные данные будут отправляться в Carrot quest. Также важным моментом интеграции является настройка передачи User ID и загрузка информации о пользователях, которые посещали сайт до установки сервиса.

Подробнее о всех возможностях использования API можно узнать в разделе для разработчиков.

💡 Настройка передачи User ID

User ID мы используем для объединения пользователей с разных устройств. Как только пользователь авторизуется в вашей системе необходимо передать нам его ID, командой (пример):

carrotquest.auth('25', 'hmac-sha256-hash');

Первый аргумент — User ID. Второй — хеш HMAC SHA 256 (Текстом для хеширования является User ID, ключом - User Auth Key его можно узнать в панели администратора, раздел Настройки - Разработчикам).

Пример на PHP:

$userId = '…';
$hash = hash_hmac('sha256', $userId, 'User-Auth-Key' );
echo "carrotquest.auth('".$userId."', '".$hash."')" 

Подробнее об передаче User ID можно посмотреть в этой статье, а о методе в разделе для разработчиков.

 

💡 События “Регистрация” и “Авторизация”

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

carrotquest.track("$registered", {"$email": user_email, "$name": user_name});
carrotquest.track("$authorized", {"$email": user_email, "$name": user_name});

вместо user_email в обоих случаях необходимо подставить емейл пользователя, а вместо user_name - имя пользователя.

 

💡 Свойство “Имя”, ”Email”, ”Телефон”

Для записи этих свойств должен выполняться скрипт при каждой отправке данных, введенных в поля "Имя", "Email" или "Телефон" на сайте (регистрация, авторизация, подписка или отправка любой формы обратной связи). Используйте в скрипте передачу только тех свойств, поля для которых есть в самой форме. Например, при отправке формы, где есть только "Имя" и "Email", убирайте из скрипта запись свойства $phone:

carrotquest.identify([
    {op: "update_or_create", key: "$email", value: user_email},
    {op: "update_or_create", key: "$phone", value: user_phone},
    {op: "update_or_create", key: "$name", value: user_name}
]);

где вместо user_email необходимо подставить емейл пользователя, вместо user_phone - телефон пользователя, а user_name заменить на имя пользователя.

 

💡 Передача событий и свойств пользователей

Для передачи любых других событий (зашел на страницу "Контакты", просмотрел видеоролик, поделился ссылкой с друзьями, подписался на рассылку новостей и т.д.) можно воспользоваться методами JS API:

// Без параметров
carrotquest.track('Event name');
// С параметрами
carrotquest.track('Event name', {
  'param1': 'value1',
  'param2': 340,
  'param3': '2014-05-23T05:12:45',
  'param4': false,
  'param5': ['key1', 'key2', 'key3']
});

либо методами Web API:

//Без параметров
curl -X POST \
  --data-urlencode "event=Order Created" \
  --data-urlencode "auth_token=XXX" \
  "https://api.carrotquest.io/v1/users/{id}/events"
//С параметрами
curl -X POST \
  --data-urlencode "event=Order Created" \
  --data-urlencode 'params={"item": "chicken"}' \
  --data-urlencode "auth_token=XXX" \
  "https://api.carrotquest.io/v1/users/{id}/events"

где ID это идентификатор пользователя из нашей системы (id пользователя лежит в cookie carrotquest_uid). Так же можно использовать ваш User ID в случае, если настроено склеивание. Подробнее о методах track и events.

Для установка свойств пользователя (идентификации) так же есть методы на JS API и Web API. Пример на JS API:

// Упрощенный формат:
carrotquest.identify({'$name': 'Maks', 'myProp': 'myValue'});
// Сложный формат:
carrotquest.identify([
  {op: 'add', key: 'segment1', value: 1},
  {op: 'update_or_create', key: 'segment2', value: 1},
]);

 Пример на Web API:

curl -X POST \
  --data-urlencode "operations=[{op: "update_or_create","key: "$name", value: "Maks"}]" \
  --data-urlencode "auth_token=XXX" \
  "https://api.carrotquest.io/v1/users/{id}/props"

 

💡 События и свойства при оформлении заказа

При заходе на страницу, подтверждающую успешное оформление заказа, должен выполняться следующий скрипт:

carrotquest.track('$order_completed', {
    "$order_id": order_id, 
    "$order_id_human": order_id_human, 
    "$order_amount": order_amount
}); 
carrotquest.identify([ 
    {op: "add", key: "$orders_count", value: 1}, 
    {op: "add", key: "$revenue", value: order_amount},
    {op: "update_or_create", key: "$last_payment", value: order_amount} 
]);

вместо order_amount необходимо вставить сумму заказа;
вместо order_id - id заказа в вашей системе;
вместо order_id_human - id заказа который видит человек при покупке (не обязательное поле).

Событие “Оплатил заказ”

На странице успеха оплаты должен выполняться следующий скрипт:

carrotquest.track("$order_paid", {"$order_id": order_id});

вместо order_id подставляем ID заказа.

Свойство “Сумма последнего заказа”

На странице успеха оплаты должен выполняться следующий скрипт:

carrotquest.identify([
    {op: "update_or_create", key: "$last_payment", value: order_amount},
]);    

вместо order_amount необходимо вставить сумму заказа.

Свойство “Доход с пользователя”

На странице успеха оплаты должен выполняться следующий скрипт:

carrotquest.identify([
    {op: "add", key: "$profit", value: order_amount}
]);

вместо order_amount необходимо вставить сумму заказа.

Свойство “Количество заказов”

На странице успеха оплаты должен выполняться следующий скрипт:

carrotquest.identify([
    {op: "add", key: "$orders_count", value: 1}
]);

 вместо 1 необходимо указать актуальное значение свойства.

Работает на