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

События и свойства пользователя

События

Событие - это действие пользователя на вашем сайте, в приложении или на сервере. Вы можете определить любое событие пользователя или клиента, которое хотите фиксировать (зашёл на страницу, кликнул на кнопку, совершил заказ и т.д.).

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

 

Вот так выглядят события в карточке пользователя:

 

Часть событий пользователей собираются автоматически, с момента подключения Carrot Quest к вашему сайту. К ним относятся:

  • Начал сессию
  • Обнаружены UTM-метки
  • Пользователь начал диалог в чате
  • Коммуникации: Отправлено сообщение
  • Коммуникации: Прочитал сообщение
  • Коммуникации: Ответил на сообщение
  • Коммуникации: Кликнул по ссылке в сообщении
  • Коммуникации: Отписался от емейлов

Посмотреть все стандартные события можно в разделе для разработчиков 

 

Также можно настроить любые свои события.

 

Какие события бывают?

По умолчанию в нашей системе есть 4 базовых события:

  • посещение страницы,
  • прокрутка страницы до конца,
  • клик по элементу на сайте,
  • заполнение поля ввода.

Также можно настроить свои события: просмотр товара, начало оформления заказа, попытка ухода с сайта и т. д. — все их можно настроить с помощью нашего сервиса.

 

Как создать события?

Вы можете создать событие несколькими способами.

1. C помощью мастера сбора данных вы можете настроить базовые события (посещение страницы, прокрутка страницы до конца, клик по элементу и заполнение поля ввода) через интерфейс, без помощи программиста.

2. Подключить модуль. У нас есть несколько модулей для интернет магазинов, после настройки которых базовые события начнут собираться автоматически.

Подробнее о каждой интеграции:

Важно! В зависимости от модуля наборы событий и свойств могут несколько отличаться

3. Через API. Самый гибкий способ, но требует участия программиста. Подробнее об этом читайте в разделе для разработчиков.

4. Через JS. Его плюс в гибкости, а минус — в необходимости программировать. Этот метод сбора описан в этой статье.

 

Параметры события

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

 

Свойства событий

У каждого события могут быть свойства. Они дополняют событие, для понимания контекста совершенного действия.

Вот пример свойств события "Начал сессию":

1482907101356-70449819-f6e6-4fd3-9d7f-f13346327206.png

Другой пример: когда пользователю отправляется сообщение, в его карточке создаётся событие "Коммуникации: Отправлено сообщение". Чтобы узнать, какое именно сообщение было отправлено, можно посмотреть в свойства:

image00.png

Важно! Не путайте со свойством пользователя! О них дальше.

 

 

 

Свойства пользователя

 

Свойствами пользователей считаются такие параметры, как имя, email, телефон, город, UTM метки, список просмотренных товаров, сумма в корзине и т.д.

В нашей системе выделены два типа свойств: системные и пользовательские. Системные свойства начинают собираться автоматически. Весь список системных свойств можно посмотреть здесь.

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

 

Часть свойств пользователей собираются автоматически. К ним относятся:

  • Страна
  • Город
  • Первый источник (реферрер)
  • Первый источник (реферрер), но только домен
  • Первая метка UTM Campaign
  • Первая метка UTM Source
  • Первая метка UTM Medium
  • Первая метка UTM Content
  • Первая метка UTM Term

Также есть базовые универсальные свойства для всех видов сайта:

  • Имя
  • Емейл
  • Телефон

Емейл может собираться автоматически из всех полей на сайте в момент потери фокуса с вводимого поля, если включена настройка “Автотрекинг".

  

Посмотрите наши видео:

 

Полный список системных свойств и событий можно посмотреть в документации.

Мастер сбора данных

Наша команда Carrot Quest делает всё возможное, чтобы маркетологам приходилось как можно реже обращаться за помощью к программистам. Мастер сбора данных поможет узнать о действиях пользователя на сайте, не написав ни одной строчки кода. На основе этих данных вы сможете сегментировать пользователей и отсылать им триггерные персональные сообщения.

 

Базовые возможности

В базовые возможности входит создание 4 типов событий пользователя:

  • Посещение страницы;
  • Прокрутка страницы до конца;
  • Клик по элементу;
  • Заполнение поля ввода.

Для каждого типа можно создать неограниченное количество событий. Давайте посмотрим, как настроить каждый тип.


Важно! В системе событие будет доступно для выбора, например, как триггер при создании автосообщений, только после того, как оно будет выполнено. То есть, Вам необходимо совершить его, посетить страницу, кликнуть по элементу или заполнить поле ввода.

 

1. Переход на страницу

Посмотрите наше видео Как настроить событие посещения страницы или читайте инструкцию ниже:

 

  1. Перейдите в раздел “Мастер сбора данных”.

 

2. Выберите событие “Посещение страницы”.

3. Вводите адрес страницы, посещение которой необходимо фиксировать.

 

Если необходимо учитывать подстраницы, поставьте галочку “Учитывать подстраницы”.

Важно! Сайты www.test.ru и test.ru сервис будет воспринимать как разные страницы. Чтобы фиксировать оба варианта нужно воспользоваться символом * (wildcard): *test.ru

4. Задержка. Укажите, как будет срабатывать сообщение: сразу после посещения страницы или через определенное время.

Важно! Если пользователь перешёл на другую страницу раньше времени задержки, то событие не сработает.

5. Добавить дополнительные свойства. При выполнении события вместе с ним можно передавать дополнительные свойства события, которые будут отображаться в хронологии событий пользователя.

6. Введите название события, которое будет отображаться в списке триггеров. Также можно добавить описание события.

7. Проверьте правильность настроек и нажмите "Начать сбор данных”.

 

2. Прокрутка страницы до конца

Прокрутка страницы настраивается точно так же, как "Посещение страницы", так что смотрите предыдущий раздел или видео Как настроить событие прокрутки страницы до конца.

 

3. Клик по элементу

Посмотрите видео Как настроить событие клик по элементу или читайте нашу инструкцию:

1. Выясните CSS селектора элемента (например, кнопки), клик по которому вы будете записывать. Для этого можно установить расширение для Хрома Selector Gadget.

2. На разных страницах могут быть элементы с одинаковыми селекторами. Поэтому необходимо выбрать, будет срабатывать событие на любой странице или только на какой-то конкретной.

3. Введите название события, которое будет отображаться в списке триггеров. Также можно добавить описание события.

4. Проверьте правильность настроек и нажмите "Начать сбор данных”.

 

4. Заполнение поля ввода

Посмотрите наше видео Как настроить сбор данных из поля ввода или читайте инструкцию:

1. Выясните CSS селектора поля ввода на сайте. Для этого можно установить расширение для Хрома Selector Gadget.

2. На разных страницах могут быть элементы с одинаковыми селекторами. Поэтому необходимо выбрать, будет срабатывать событие на любой странице или только на какой-то конкретной.

3. Выберете, в какое свойство будут записываться данные из поля.

4. Дополнительные свойства. Можно придумать дополнительные свойства, которые будут записываться, когда пользователь введёт что-то в поле.

5. Введите название события, которое будет отображаться в списке триггеров. Также можно добавить описание события.

6. Проверьте правильность настроек и нажмите "Начать сбор данных”.

О том, как собирать телефоны из поля с маской, читайте в этой статье.

 

Продвинутый мастер сбора данных

Использование продвинутого мастера сбора данных позволяет записывать срабатывание любого события в карточку пользователя или запись свойства пользователю при срабатывании события. Например, можно настроить запись события заполнения поля ввода в карточку пользователя.

Давайте посмотрим, как настраивать события и свойства в продвинутом мастере.

1. Перейдите в раздел “Мастер сбора данных”.

2. Выберите “Продвинутый мастер сбора данных”. 

3. Выберите тип действия на сайте (т.е. для которого будете производить настройку)

4. Как записать совершенное действие. Выберите, что будете делать с выбранным событием: записывать его в хронологию событий в карточке пользователя или записывать данные в свойства пользователя при срабатывании этого события

5. Далее настройка такая же, как и настройка для события, которое было выбрано в пункте 3 (настройка посещения страницы, прокрутки страницы до конца, клика по элементу, заполнения поля ввода).

Почему нельзя удалять свойства и события пользователя

В Carrot Quest вы не можете удалять ранее созданные события и свойства.

Все события и свойства в Carrot Quest плотно переплетены и составляют историю ваших пользователей. Событие может быть триггером для разных автосообщений, входить в разные воронки или использоваться для сегментации пользователей. Вы даже не заметите, как ваша аналитика или автосообщение перестанут работать корректно, если вы удалите событие, на основе которого строилась автоматизация маркетинга.

В карточке пользователя вы можете посмотреть всю историю лида. Каждое действие на сайте дополняет его образ, вы лучше узнаёте клиента и можете эффективнее с ним контактировать. Если какое-то событие или свойство будет удалено, вы не сможете восстановить полную историю, не поймёте, почему он купил/не купил или как он отреагировал на то или иное сообщение.

 

Скрыть событие

Вы можете скрыть определённое событие. Информация по нему будет собираться, но вы не увидите его среди остальных.

Для этого перейдите в раздел “Трекинг” —> “События”. Здесь вы можете посмотреть  полный список настроенных вами событий.

image00.png

 

Найдите событие, которое хотите скрыть, и перейдите к его редактированию. Здесь снимите галочку “Показывать”.

image01.png

 

Мы призываем вас обдуманно подходить к созданию свойств и событий, ведь каждое из них сразу становится частью истории вашего сервиса.

Как записывать последние utm метки

Наш сервис по умолчанию записывает в свойства пользователей первые utm метки. Но если вы хотите чтобы наш сервис фиксировал и метки со следующих посещений, то в разделе "трекинг" - "Мастер сбора данных" - "Настроить Javascript код" события нужно прописать следующий код:

 

 

Сбор данных о пользователя из различных источников по User ID

Вы можете собирать в карточке пользователя Carrot Quest информацию о пользователе из разных источников, если знаете его User ID. В качестве User ID может быть ID в вашей системе, email, телефон, номер бонусной карты или другие уникальные идентификаторы пользователя.

Передавая данные в Carrot Quest, вы можете объединять информацию как из онлайновых каналов, так и из оффлайновых, то есть из CRM, CMS, процессинговой системы или с сайта.

image02.png

 

Как выбрать правильный User ID?

В качестве User ID вы можете использовать ID пользователя в вашей системе, телефон или любой другой параметр, по которому вы отличаете пользователей.

Существует два правила:

  • User ID должен быть уникальным для каждого пользователя
  • User ID не может меняться в течение жизни пользователя. Например, если пользователь может изменить свой емейл, то емейл не может являться User ID

User ID не обязательно должен быть числом, допускаются строки длиной не более 255 символов. Рекомендуется использовать числовой идентификатор.

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

 

Склеивание пользователей

Зная User ID пользователя, вы можете объединять информацию о пользователе, который пришёл с разных устройств.

image00.gif

 

Если лид пришёл на сайт и не оставил совсем никаких данных о себе, Carrot Quest считает его Анонимусом и отслеживает его действия по cookies. Если пользователь очистит cookies или придёт с нового устройства или браузера, он будет для системы Анонимусом (потому что cookies будут чистые). Это не так страшно для Анонимусов, о которых мы ничего не знаем, но совсем не хочется терять связь со старыми пользователями, если они просто пришли с нового устройства. Для этого существует “склейка”.

Для того, чтобы работало склеивание, необходимо настроить передачу User ID в наш сервис. О том, как настроить склеивание можно прочитать в разделе для разработчиков.

Давайте посмотрим механизм склейки на примере.

Вот у вас есть клиент Василий. Он давно зарегистрирован на вашем сайте, часто покупает, и вы многое о нём знаете. Но сегодня Василий зашёл на ваш сайт с нового телефона. Всё, что он сейчас делает, пишется в новую карточку Анонимуса. Но как только вы передадите его User ID нам (например, он авторизуется в системе), Carrot Quest сразу определит его как Василия и добавит все действия и диалоги из карточки Анонимуса в карточку Василия, а ненужную карточку удалит.

image01.png

 

Что произойдёт с информацией лида

  • Все события запишутся в хронологическом порядке.
  • В свойствах имя, email и телефон запишется последнее значение (если они отличаются) и создастся событие “Телефон/имя/email изменён”. Таким образом можно будет посмотреть старое и новое свойство.

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

Свойство Значение Как склеивать
$name Имя Последний (у анонимуса если есть, заменить)
$email Емейл Последний (у анонимуса если есть, заменить)
$phone Телефон Последний (у анонимуса если есть, заменить)
$last_seen Последняя активность, дата совершения последнего события Максимум из дат
$last_contacted Последний контакт, дата последнего ответа от пользователя или последней отправки сообщения пользователю (в том числе автосообщения) Максимум из дат
$last_reply Дата последнего ответа от пользователя Максимум из дат
$conversations_emails Количество диалогов по емейлу Сумма
$conversations_chats Количество диалогов с типом чат Сумма
$conversations_popups Количество диалогов с типом попап Сумма
$sessions Количество сессий Сумма
$user_id User ID Брать тот, в которого мерджат
$score Количество баллов (рейтинг) Сумма
$initial_referrer Первый источник (реферрер) Брать тот, в которого мерджат
$initial_referrer_domain Первый источник (реферрер), но только домен Брать тот, в которого мерджат
$initial_utm_campaign Первая метка UTM Campaign Брать тот, в которого мерджат, если не определен - новый
$initial_utm_source Первая метка UTM Source Брать тот, в которого мерджат, если не определен - новый
$initial_utm_medium Первая метка UTM Medium Брать тот, в которого мерджат, если не определен - новый
$initial_utm_content Первая метка UTM Content Брать тот, в которого мерджат, если не определен - новый
$initial_utm_term Первая метка UTM Term Брать тот, в которого мерджат, если не определен - новый
$country Страна Последний
$region Регион Последний
$city Город Последний
$latitude Географическая широта Последний
$longitude Географическая долгота Последний
$email_unsubscribed Отписался от емейлов Через AND
$avatar Имя файла с аватаром Последний
$social_vk URL страницы ВКонтакте Последний
$social_facebook URL страницы Facebook Последний
$social_fourqsuare URL страницы Foursquare Последний
$social_googleplus URL страницы Google+ Последний
$social_pinterest URL страницы Pinterest Последний
$social_twitter URL страницы Twitter Последний
$social_skype Skype Последний
$cart_amount Сумма в корзине (целое число) Сумма
$viewed_products Просмотренные товары (список из название товаров) Объединение списков (возможно - множество)
$cart_items Корзина (список из названий товаров) Последний (у анонимуса если есть, заменить)
$last_order_status Статус последнего заказа Последний (у анонимуса если есть, заменить)
$last_payment Сумма последнего заказа (целое число) Последний (у анонимуса если есть, заменить)
$revenue Сумма всех заказов (целое число) Сумма
$profit Доход с пользователя (целое число) Последний (у анонимуса если есть, заменить)
$group Группа Последний (у анонимуса если есть, заменить)
$discount Скидка (целое число) Последний (у анонимуса если есть, заменить)
$orders_count Количество заказов (целое число) Сумма
$tags Тэги Объединение списков (множество)
custom_props Кастомные свойства Последний
app_id Id приложения Не меняется
$event_<id>_count Количество совершённых событий Сумма
$event_<id>_first Дата первого события Минимум из дат
$event_<id>_last Дата последнего события Максимум из дат

 

 

Так как cookies хранятся в течение 150 дней, даже если Василий авторизуется через 149 дней после первого посещения вашего сайта с телефона, а вы сразу передадите нам его User ID, то мы подтянем в его карточку все действия и диалоги, накопленные за те 149 дней.

Сбор данных через JS

Собирать информацию о пользователях в Carrot Quest можно несколькими способами.

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

Мастер сбора данных помогает собирать информацию о действиях пользователя на сайте через интерфейс, без написания кода. Вы можете отследить заполнение полей,  переход на страницу, прокрутки страницы до конца и клики по элементу. Таким образом можно покрыть большинство задач по сбору информации о действиях лида, но недостаточная гибкость всё-таки вносит свои ограничения (например, нельзя учитывать дополнительные условия).

Третий способ сбора информации — с помощью JS. Его плюс в гибкости, а минус — в необходимости программировать. Давайте посмотрим, в каких случаях трудозатраты на написание кода могут быть оправданы.

 

Вот несколько кейсов использования JS при сборе данных, которые мы подробно рассматривали в других статьях:

Как собрать телефон из поля с маской;

Как собрать информацию о товарах в корзине;

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

А сейчас подробно остановимся на событии регистрации.

 

Кейс. Событие регистрации

Достаточно часто в регистрации есть обязательные поля, не заполнив которые нельзя пройти дальше. С помощью мастера сбора данных вы можете настроить событие клика по кнопке “Зарегистрироваться”, но оно не будет учитывать заполнение полей и будет срабатывать каждый раз при нажатии на кнопку. Чтобы отделить несостоявшиеся регистрации и записывать только действительно зарегистрированных пользователей, вы можете воспользоваться JavaScript’ом.

Давайте создадим такое событие.

Рассмотрим простую форму регистрации:

 

В форме есть пять обязательных полей: логин, пароль, подтверждение пароля, e-mail и проверочное слово с картинки.

Определим селекторы у этих полей:

input[name="USER_LOGIN"],

input[name="USER_PASSWORD"],

input[name="USER_CONFIRM_PASSWORD"],

input[name="USER_EMAIL"] и

input[name="captcha_word"].

Также определим селектор кнопки «Регистрация»: input[name="Register"].

Продумаем логику срабатывания события регистрации: при клике на кнопку «Регистрация» будет проверяться заполнены ли все обязательные поля. Если заполнены — будет срабатывать метод track. Перенесем это на язык JavaScript:

Остается только вставить этот код в раздел Трекинг - Мастер сбора данных - Настроить JavaScript код и сохранить.

 

Таким образом, возможности сбора событий ограничиваются только возможностями JavaScript и вашей фантазией.

 

Фильтрация ботов

По умолчанию фильтруются следующие боты из JavaScript библиотеки Carrot quest:

  • Yahoo
  • Googlebot
  • Mail.Ru Bot
  • YandexBot
  • BingBot
  • FaceBot
  • VK Share
  • AppleBot
  • TwitterBot

Все другие боты, переходящие на ваш сайт, будут влиять на информацию о пользователях в базе Carrot Quest. Установите код, чтобы отфильтровывать таких пользователей:

  1. Просматривайте  информацию юзер агента у уникальных посетителей вашего сайта;
  2. Ищите слово “bot” где-нибудь в информации юзер агента.
  3. Если вы нашли слово “bot”, задайте свойство $ignore определено.

Если вы можете, установите общую закономерность действий ботов, чтобы заблокировать всех сразу. Этого можно добиться, если фильтровать любое взаимодействие с вашим сайтом, которое исходит из web framework, не похожего на браузер пользователей.

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

 

Если вы установите этот код, вы заблокируете всех юзер агентов с “Bot” в имени пользователя. Если это не сработает, вы можете начать отслеживать этого агента, чтобы установить общую закономерность среди всех ботов на вашем сайте.

Запись телефона из поля с маской

В случаях когда на поле ввода телефона присуствует маска (подсказки в виде +7, скобки, дифисы), обычный способ записи через запись поля ввода не сработает. Маска не позволит системе списать данные.

 

Записать телефон из поля с маской можно как с помощью продвинутого мастера сбора данных, так и через JavaScript. Рассмотрим оба примера.

 

Запись через мастер сбора данных 

Для того чтобы собрать данные с этого поля нужно использовать "продвинутый мастер сбора данных"

 

В мастере нужно выбрать типа действия "клик по элементу", записать совершенное действия "записать данные как свойство пользователя"

В CSS-селекторе вы выбираете селектор кнопки отправки формы для поля телефона. Обычно это кнопка "отправить"/"сохранить"/"ок". Кнопка которая отправляет введенный телефон в обработку.

А ниже в "свойствах из селекторов" указать свойство "телефон" и ввести селектор поля телефона.

 

Таким образом при нажатии на кнопку отправки, система будет считывать данные из поля телефона и запишет их в карточку пользователя.

 

Запись через JavaScript

Рассмотрим способ сбора телефона из поля с маской для ввода с помощью JavaScript. Предположим, что у нас есть поле с селектором #USER_PHONE.  Принцип работы будет следующим: при потере фокуса полем (пользователь закончил заполнять поле и кликнул в другое место на сайте) будет срабатывать метод identify, который будет записывать значение поля с телефоном в карточку пользователя.

Перенесем это на язык JavaScript:

Вставляем этот код в раздел Трекинг - Мастер сбора данных - Настроить JavaScript код и сохраняем.

Добавить url страницы в свойства события

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

$('body').prepend('<input type="hidden" value="'+window.location.href+'" id="cqurl">')

 

Код в разделе должен выглядеть вот так. Не забудьте сохранить.

 

Теперь вы можете использовать селектор #cqurl для вставки в свойства события или свойства пользователя.

Как работает событие "Начал сессию"

Какую сессию пользователя считать новой?

Если он закрыл вкладку и успел вернуться за 40 минут, то событие “Начал сессию” не запишется. Если пользователь ушёл с сайта и зашёл не раньше чем через 40 минут, то у него запишется новое событие “Начал сессию”.

 

Как применять?

Событие "Начал сесиию" часто используется при настройке автоматических сообщений.

Например, вы можете показать пользователю попап с предложением оставить емейл через 30 секунд после того, как он пришёл на сайт.

 

 

Базовые шаги настройки Saas сервисов

Шаг 1. Отключение автотрекинга

Система автоматически считывается емейлы из любых полей на сайте. Если пользователь введет новый, старый емейл будет перезаписан.

Необходимо зайти в Трекинг > Мастер сбора данных > Автотрекинг и отключить галочку напротив сбор емейлов.

 

Шаг 2. Настройка передачи  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."')"

Подробнее можно почитать тут https://carrotquest.io/developers/libs/js/auth/.

 

Шаг 3. Передача действий и свойств пользователей

Событие - это любое действие пользователя на сайте (зашел на страницу "Контакты", просмотрел видеоролик, поделился ссылкой с друзьями, подписался на рассылку новостей и т.д.). Как только происходит такое событие, его нужно отправить в Carrotquest.

Для этого и есть методы 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 если настроено склеивание.

Подробнее можно почитать тут https://carrotquest.io/developers/libs/js/track/ и тут https://carrotquest.io/developers/endpoints/users/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

 

 

Шаг 4. Загрузка пользователей в Carrot quest

Загрузить свою базу пользователей в нашу систему можно через WEB API(Подробно про API https://carrotquest.io/developers/endpoints/)

Пример кода на php:

 

# Список пользователей, которых нужно импортировать
# Первый элемент - User ID из вашей системы
$users = array(
	array('id' => 123, 
		  'email' => 'mail1@mail.ru', 
		  'phone' => '891xxxxxx',
		  'name' => 'Test'
	),
	array('id' => 456,
		  'email' => 'mail2@mail.ru',
		  'phone' => '891xxxxxx',
		  'name' => 'Test2'
	)
);
$auth_token = 'xxx'  # TODO: ПОДСТАВЬТЕ СЮДА ВАШ AUTH_TOKEN, его можно найти в разделе Настройки > API КЛЮЧИ


for ($i =0; $i < count($users); ++$i ) {
	$url = 'http://api.carrotquest.io/v1/users/'.$users[$i]['id'].'/props?auth_token='.$auth_token;
	$operations = json_encode(array(
			array('op' => 'update_or_create',
				  'key' => '$email',
				  'value' => $users[$i]['email']
			),
			array('op' => 'update_or_create',
				  'key' => '$phone',
				  'value' => $users[$i]['phone']
			),
			array('op' => 'update_or_create',
				  'key' => '$name',
				  'value' => $users[$i]['name']
			),
		)
	);
	
	$result = file_get_contents($url, false, stream_context_create(array(
	  'http' => array(
		'method'  => 'POST',
		'header'  => 'Content-type: application/x-www-form-urlencoded',
		'content' =>http_build_query(array('operations' => $operations,'by_user_id'  => 'true')),
	  )
	)));
	
	
	print $result;
}

Сбор данных о последней оплате и суммарном доходе

Для того, чтобы записать сумму последнего заказа и общую сумму заказов, нужно использовать метод carrotquest.identify в Javascript API.

Отметим, что система работает только с целыми числами, поэтому если сумма заказа 1251,45 то ее стоит округлить до 1251.

Предположим, что сумма последнего заказа хранится в переменной lastOrder. Тогда нужно записать это свойство по имени "Последний заказ" и суммировать со свойством "Суммарный доход" (так со временем будет накапливаться общий суммарный доход)


Подробнее о методе в разделе для разработчиков

Сбор данных о товарах, которые пользователь положил в корзину

Шаг первый 'Сбор данных о товарах брошенных в корзину":

Вариант 1. Отправка через Web API (рекомендованный)

При добавлении события необходимо послать POST запрос

https://api.carrotquest.io/v1/users/{id}/events

(где id — это идентификатор пользователя из нашей системы (находится в cookie carrotquest_uid))

c аргументами:

auth_token  =  Ваш токен

event = "$cart_added"

params = { "$name": "{{Название товара}}",

           "$url": "{{Ссылка на страницу с описанием товара}}",

           "$amount": "{{Цена}}",

          "$img": "{{Ссылка на картинку}}"};

Пример на php:

 

Вариант 2. Через JavaScript API

При добавлении товара в корзину на вашем сайте должен выполнятся скрипт

carrotquest.track('$cart_added', {

            "$name": selector_name,

           "$url": selector_url,

           "$amount": selector_amount,

          "$img": selector_img,

});

где вместо selector_name необходимо вставить селектор элемента (или атрибута элемента), содержащего название товара; вместо selector_url необходимо вставить селектор элемента (или атрибута элемента), содержащего ссылку на товар; вместо selector_amount необходимо вставить селектор элемента (или атрибута элемента), содержащего цену товара; вместо selector_img необходимо вставить селектор элемента (или атрибута элемента), содержащего ссылку на картинку товара.

Пример:

 

 

Шаг второй 'Завершение заказа":

Вариант 1. Отправка через Web API (рекомендованный)

После совершения заказа выполнить POST запрос

https://api.carrotquest.io/v1/users/{id}/events

(где id — это идентификатор пользователя из нашей системы (находится в cookie carrotquest_uid))

c аргументами:

auth_token  =  Ваш токен

event = "$order_completed"

 

Пример на PHP:

 

Вариант 2. Через JavaScript API

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

carrotquest.track("$order_completed"); 

Добавление в свойства данных про размер экрана пользователя

С помощью javascript событий вы можете добавить данные о размере экрана пользователя.

Для этого вам нужно прописать в разделе javascript события следующий код:

 

if (window.screen.availWidth < 768) carrotquest.identify({"Маленький экран": 1}); else carrotquest.identify({"Маленький экран": 0});

 

Теперь, если экран у посетителя меньше 768 пикселей, к нему в свойства будет записываться свойство "Маленький экран" = 1, если нет, то 0.