Данные о посетителях
Как передать в аналитику то, что сайт знает о посетителе, — команда 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_idid аккаунта из вашей базы, а не адрес почты.- Ключи
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.
Подробнее — в разделе Сеть ДАРА.