Сбор данных о пользователе

Данные в Carrot quest служат фундаментом для построения персональной коммуникации с пользователями, автоматизации коммуникаций и аналитики, поэтому от Carrot quest будет значительно больше пользы, если тщательно настроить сбор данных.

Под "сбором данных" подразумевается:

Есть несколько способов собирать данные:

  • Мастер сбора данных.
    Это специальный интерфейс в панели Администратора, который позволяет собирать данные, не прибегая к программированию. Подробнее можно узнать в нашей базе знаний. Этот способ идеально подходит для быстрого старта.

  • JavaScript библиотеки
    Это наиболее простой и предпочтительный API, используемый в браузере.

  • REST API (Web API).
    Этот способ подходит для сбора данных с вашего сервера, например об оплате покупки.

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

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

Для передачи в карточку пользователя события о заходе на страницу “Page1” достаточно выполнить код на JavaScript:

carrotquest.track('Page1');

Первый аргумент - имя события.
Вторым аргументом (необязательным) можно передать любое JS-объект с любым количеством дополнительных параметров.

Для понимания давайте рассмотрим несколько кейсов.

Необходимо передать событие о просмотре товара c передачей информации о том, что за товар посмотрел пользователь

Код для этого случая будет выглядеть примерно так:

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"

Необходимо отследить событие регистрации пользователя и передать в этом событии регистрационные данные: email, телефон, список с функциями, которые выбрал пользователь

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). Они имеют строго заданный тип и используются в интерфейсе и в стандартных сценариях, а также в аналитике. Поэтому настоятельно рекомендуем их передавать. Все свойства без символа $ являются пользовательскими (то есть, вашими), вы сами решаете, как их назвать и какой формат данных в них передавать. Подробнее почитать про форматы свойств и посмотреть список системных свойств можно тут.

Важно! Ваши свойства не должны начинаться с символа $.