Данные в Carrot quest служат фундаментом для построения персональной коммуникации с пользователями, автоматизации коммуникаций и аналитики, поэтому от Carrot quest будет значительно больше пользы, если тщательно настроить сбор данных.
Под "сбором данных" подразумевается:
Есть несколько способов собирать данные:
Мастер сбора данных.
Это специальный интерфейс в панели Администратора, который позволяет собирать данные, не прибегая к программированию.
Подробнее можно узнать в нашей базе знаний.
Этот способ идеально подходит для быстрого старта.
JavaScript библиотеки
Это наиболее простой и предпочтительный API, используемый в браузере.
REST API (Web API).
Этот способ подходит для сбора данных с вашего сервера, например об оплате покупки.
Ниже мы приведем примеры того, как отслеживать события и свойства, используя JavaScript API и REST API. Для мастера сбора данных есть подробная инструкция в базе знаний.
Для передачи в карточку пользователя события о заходе на страницу “Page1” достаточно выполнить код на JavaScript:
carrotquest.track('Page1');
Первый аргумент - имя события.
Вторым аргументом (необязательным) можно передать любое JS-объект с любым количеством дополнительных параметров.
Для понимания давайте рассмотрим несколько кейсов.
Код для этого случая будет выглядеть примерно так:
carrotquest.track('$product_viewed', {
'$name': 'Платье',
'$url': 'http://example.com/dress',
'$amount': '3000',
'$img': 'http://example.com/dress.img',
});
Событие "Посмотрел товар" является стандартным, поэтому используется ключ $product_viewed
вместо названия события.
Если по какой-то причине передавать информацию о просмотренном товаре вам удобнее с сервера, то вы можете передать её через REST API (пример написан на cURL).
В качестве {user_id}
можно использовать наш внутренний ID, который хранится в куке carrotquest_uid
, либо ваш собственный User ID (в таком случае в by_user_id
нужно передать true
):
curl -X POST \
--data-urlencode "event=$product_viewed" \
--data-urlencode '$name=Платье' \
--data-urlencode "$url =http://example.com/dress" \
--data-urlencode "$amount=3000" \
--data-urlencode "$img=http://example.com/dress.img" \
-H "Authorization: Token XXX" \
"https://api.carrotquest.io/users/{user_id}/events"
carrotquest.track('registered', {
'$email': 'test@mail.ru',
'$phone': '8911177711',
'interesting_functions': ['chat', 'emaling']
});
Для передачи через REST API (пример написан на cURL).
В качестве {user_id}
можно использовать наш внутренний ID, который хранится в куке carrotquest_uid
, либо ваш собственный User ID (в таком случае в by_user_id
нужно передать true
):
curl -X POST \
--data-urlencode "event=registered" \
--data-urlencode "$email=test@mail.ru" \
--data-urlencode "$phone=8911177711" \
--data-urlencode "interesting_functions=['chat', 'emaling']" \
-H "Authorization: Token XXX" \
https://api.carrotquest.io/users/{user_id}/events
Подробное описание методов передачи событий на JavaScript находится в разделе JavaScript API, пункт track.
О передаче событий через REST API можно подробнее узнать в разделе REST API, пункт events.
Для передачи свойств пользователя к нам в систему используется метод на JavaScript:
carrotquest.identify({
'nameProps': 'value'
});
Подробное описание метода carrotquest.identify.
Например, после регистрации пользователя необходимо передать его email, телефон, количество заказов и дату регистрации:
carrotquest.identify({
'$name': 'Maks',
'$email': 'super-maks@gmail.com',
'$orders_count': 6,
'RegDate': '2015-05-05T15:02:00'
});
Для передачи через REST API (пример написан на cURL)
curl -X POST \
--data-urlencode "operations=[
{"op": "update_or_create", "key": "$name", "value": "Maks"},
{"op": "update_or_create", "key": "$email", "value": "super-maks@gmail.com"},
{"op": "update_or_create", "key": "$orders_count", "value": "6"},
{"op": "update_or_create", "key": "RegDate", "value": "2015-05-05T15:02:00"}
]" \
-H "Authorization: Token XXX" \
https://api.carrotquest.io/users/8173131/props
Все свойства, начинающиеся с символа $
, являются системными ($name
, $email
, $phone
, $orders_count
).
Они имеют строго заданный тип и используются в интерфейсе и в стандартных сценариях, а также в аналитике.
Поэтому настоятельно рекомендуем их передавать.
Все свойства без символа $
являются пользовательскими (то есть, вашими), вы сами решаете, как их назвать и какой формат данных в них передавать.
Подробнее почитать про форматы свойств и посмотреть список системных свойств можно тут.
Важно! Ваши свойства не должны начинаться с символа $
.