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

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

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

  • Передача свойств пользователя. Они могут быть стандартными (имя, email, телефон) и вашими собственными, связанными с вашим проектом (например, количество заказов, дата регистрации, количество проектов, платящий ли пользователь, выручка с клиента и т.д.)
  • Отслеживание событий. Событие — это действие пользователя, которое вы считаете важным (например, совершил заказ, зарегистрировался, оплатил подписку, перешел на страницу с тарифами, посмотрел товар и т.д.)

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

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

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

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

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

carrotquest.track('Page1');

Первый аргумент - имя события. Вторым аргументом (необязательным) можно передать любое количество дополнительных параметров. Для понимания давайте рассмотрим несколько кейсов. 1. Необходимо передать событие о просмотре товара 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" \
  --data-urlencode "auth_token=XXX" \
  "https://api.carrotquest.io/v1/users/{user_id}/events"

  1. Необходимо отследить событие регистрации пользователя и передать в этом событии регистрационные данные: 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']" \
  --data-urlencode "auth_token=XXX" \
  https://api.carrotquest.io/v1/users/{user_id}/events

Более подробное описание методов передачи событий на JavaScript можно почитать в разделе JavaScript API, пункт track. О передаче событий через REST API можно подробнее узнать в разделе REST API, пункт events.

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

Для передачи свойств пользователя к нам в систему используется метод на JavaScript:

carrotquest.identify({
  'nameProps': 'value'
});

В свойства пользователя можно передать значение следующих типов: * число * строка * дата/время * логический (булев) * список

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

carrotquest.identify({
  '$name': 'Maks',
  '$email': 'super-maks@gmail.com',
  '$orders_count': 6,
  'RegDate': '2015-05-05T15:02:00'
});

Для передачи через REST API(Пример написан на cURL) В качестве {user_id} можно использовать наш внутренний ID, который хранится в куке carrotquest_uid, либо ваш собственный User ID (в таком случае в by_user_id нужно передать true)

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"}
]" \
  --data-urlencode "auth_token=XXX" \
  https://api.carrotquest.io/v1/users/8173131/props

Все свойства, начинающиеся с символа $, являются системными ($name, $email, $phone, $orders_count) они используются в интерфейсе и в стандартных сценариях, а также в аналитике. Поэтому настоятельно рекомендуем их передавать. Все свойства без символа $ являются пользовательскими (то есть, вашими), вы сами решаете, как их назвать и какой формат данных в них передавать. Подробное описание метода carrotquest.identify. Также можно подробнее почитать про форматы свойств и посмотреть список системных тут.

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