ДАРА АНАЛИТИКА
Разделы документации

Документация

Данные о посетителях

Как передать в аналитику то, что сайт знает о посетителе, — команда dara('user') и метод POST /users. Поля, форматы, что происходит с данными и что нельзя присылать в params.

Если посетитель вошёл в аккаунт или заполнил профиль, передайте эти данные в аналитику. Что это даёт:

  • Аккаунт. Визиты посетителя связываются с его user_id: он виден в карточке посетителя, по нему ищет посетителей API атрибутов.
  • Атрибуты. Пол, возрастная группа, город, дети и интересы появляются в отчётах «Аудитория» и в карточке посетителя с меткой «с вашего сайта».
  • Параметры посетителя. Ваши собственные поля — тариф, сегмент клиента, месяц регистрации — становятся измерением отчётов и условием сегментов.

Email и телефон при этом не показываются ни вам, ни в API, ни в выгрузках. Они хранятся зашифрованными; расшифровать их могут только администратор и разработчики ДАРА — с указанием причины и записью в журнал.

Поля

Поле Формат Что происходит
user_id строка до 191 символа посетитель связывается с аккаунтом на вашем сайте; user_id виден в карточке посетителя
email строка ключ личности: для связей хранится хеш, само значение — только в зашифрованном хранилище
phone строка, например +7 900 000-00-00 ключ личности, как у email; людей связывают только мобильные номера
gender male или female пол
birth_date ГГГГ-ММ-ДД год рождения; вы увидите только возрастную группу
birth_year число год рождения
age число от 5 до 100 год рождения с допуском ±1 год
city название города город проживания
children массив [{"birth_year": 2019}] или [{"age": 5}], до 10 детей, возраст ребёнка — от 0 до 17 дети и их возрастные группы
interests до 50 строк строки сопоставляются с темами интересов
params объект до 4 КБ, ключи до 64 символов параметры посетителя — только для отчётов этого сайта
  • Неверные значения не сохраняются вовсе: email с ошибкой, недействительный номер телефона, возраст вне 5–100 лет. Остальные поля записи при этом принимаются.
  • user_id, похожий на email или телефон, в карточке посетителя показывается как *. Передавайте в user_id id аккаунта из вашей базы, а не адрес почты.
  • Ключи params длиннее 64 символов отбрасываются, а значения, похожие на email или телефон, заменяются на *.

В браузере: dara('user')

Вызывайте команду после входа и после изменения профиля. Передавайте только известные поля:

dara('user', {
  user_id: 'u-501',
  email: 'user@example.com',
  phone: '+7 900 000-00-00',
  gender: 'female',
  birth_year: 1991,
  city: 'Казань',
  children: [{ birth_year: 2019 }],
  interests: ['Путешествия', 'Йога'],
  params: { plan: 'gold', registered: '2025-03' }
});
  • user_id передавайте тот же, что хранится в вашей базе.
  • Данные уходят на сервер аналитики только в теле запроса по HTTPS. Сервер шифрует email и телефон при приёме, до записи куда-либо.
  • Одинаковые данные на одной странице отправляются один раз, сколько бы раз ни вызывалась команда.
  • null в команде означает, что поле не передано: очистить поле из браузера нельзя. Очистить — только методом POST /users.
  • Команда принимается всегда, даже если сайт превысил суточную квоту хитов.

Пределы полей команды — в разделе Ошибки и лимиты.

С сервера: POST /users

Метод подходит, если данные есть только на сервере — например, после оформления заказа или из CRM.

curl -X POST https://analytics.daratech.ru/api/v1/users \
  -H "Authorization: Bearer $DARA_ANALYTICS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "users": [
      {"user_id": "u-501", "visitor_id": "0b7e6f8a-3c2d-4e5f-9a1b-2c3d4e5f6a7b", "email": "user@example.com", "gender": "female", "birth_date": "1991-05-17", "city": "Казань"},
      {"user_id": "u-502", "params": {"plan": "free"}},
      {"user_id": "u-503", "city": null}
    ]
  }'

Ответ 202 Accepted — результат по каждой записи в порядке пачки. Так выглядел бы ответ, если бы во второй записи в params был ключ email:

{"results": [{"index": 0, "ok": true}, {"index": 1, "ok": false, "error": {"code": "pii_not_allowed", "message": "В params есть ключ персональных данных: такие данные передаются только полями email и phone"}}, {"index": 2, "ok": true}]}
  • В одном запросе — до 500 записей. В каждой нужен visitor_id или user_id.
  • visitor_id — значение cookie _dara_a. На сервере его можно прочитать из cookie запроса, в браузере — получить командой dara('ready').
  • Запись с visitor_id и user_id связывает посетителя с аккаунтом — так же, как dara('user', {user_id}) в браузере.
  • Переданные поля заменяют прежние значения, непереданные поля не меняются.
  • null очищает поле — отменяет то, что ваш сайт передавал через POST /users по этому полю для этого посетителя или аккаунта. Выводы из форм, данные dara('user') и данные других сайтов остаются. "params": null удаляет параметры посетителя целиком. Интересы, которые уже учтены, не отменяются, а затухают сами.
  • Запись с ошибкой получает "ok": false и объект error с кодом и сообщением. Код отказа записи один — pii_not_allowed, остальные записи пачки принимаются.
  • Ошибка формы любой записи — неверный тип поля, слишком длинная строка, нет ни visitor_id, ни user_id, больше 500 записей — отклоняет весь запрос ответом 422 с кодом validation_failed; в details — поле вида users[3].email.

Примеры на PHP и Python — в разделе API: посетители.

Повторы

  • Повтор записи безопасен: поля заменяются теми же значениями. Пачку после сетевой ошибки, 429 или 5xx можно отправить ещё раз.
  • interests — не поле, а сигнал интереса: каждая присланная строка снова усиливает свои темы. Передавайте интересы, когда они изменились, а не при каждом входе.

Что не присылать в params

params видят все, у кого есть доступ к сайту, — в отчётах и в карточке посетителя. Поэтому персональным данным там не место.

  • Ключи email, phone, name, first_name, last_name, middle_name, address, birth_date, passport на любой глубине и без учёта регистра тег отбрасывает, а API отклоняет запись с кодом pii_not_allowed.
  • Проверяются имена ключей, а значения — только на похожесть на email и телефон. Не кладите персональные данные в значения и под другими именами — например, ФИО в client, СНИЛС в doc.
  • Поля email и phone самой записи — не ошибка: это ключи личности, они идут в зашифрованное хранилище.

Подходят для params: тариф, статус клиента, месяц регистрации, число заказов, источник привлечения из CRM.

Вложенные объекты разворачиваются в ключи через точку, значения становятся строками: {"company": {"size": 50}} в отчётах и API — параметр company.size со значением 50.

Что вы увидите

  • В карточке посетителяuser_id, атрибуты с метками «с вашего сайта» или «из сети ДАРА», параметры посетителя. Данные появляются в карточке не позже чем через минуту.
  • В отчётах — атрибуты в разделе «Аудитория» и параметры посетителей там же, на вкладке «Параметры посетителей». Копии для отчётов обновляются в течение нескольких минут.
  • Не увидите ни в кабинете, ни в API, ни в выгрузках email, телефон, точную дату рождения, точный возраст и год рождения — только возрастную группу.

Данные и сеть ДАРА

  • Данные, которые вы передали, — свои значения сайта: они сразу действуют в его отчётах и карточках. На других сайтах того же владельца они действуют, если посетитель узнан там как тот же человек — через браузер сети или email и телефон.
  • Как и все наблюдения, они уходят в сеть: другие сайты-участники могут получить выводы из них — пол, возрастную группу, город, интересы, — но не сами данные.
  • params в сеть не уходят.
  • Связь аккаунта с email или телефоном, переданная через POST /users, открывает данные сети, только если этот аккаунт связан с посетителем сайта, у которого есть хиты не от робота. Так нельзя получить данные сети, загрузив список чужих адресов под выдуманными user_id.

Подробнее — в разделе Сеть ДАРА.