ДокументацияРуководства
Пользователи
Идентификаторы пользователей, как ДАРА определяет пользователя, склейка при входе, общие устройства, узнавание без входа и удаление данных.
Идентификаторы
Во всех запросах пользователь передаётся объектом user — в событиях, заказах, профиле и выдаче:
{"user": {"user_id": "u-501", "anonymous_id": "a-7f3c2e", "fingerprint_uuid": "3f1c9a52-8d4e-4b7a-9c61-2e5d7f0a1b34",
"analytics_id": "8a5f1d2e-9c3b-4e17-bf40-2d6a7c8e9f01"}}
| Поле | Что это | Формат |
|---|---|---|
user_id |
аккаунт на вашем сайте | строка до 191 символа Unicode |
anonymous_id |
браузер или устройство; id выдаёт ваш сайт — например, случайный id в cookie | до 191 печатного символа ASCII |
fingerprint_uuid |
visitor_uuid DARA Fingerprint |
UUID |
analytics_id |
посетитель ДАРА АНАЛИТИКИ — значение её cookie _dara_a; пользователя не определяет |
UUID |
Нужен хотя бы один идентификатор, определяющий пользователя: analytics_id к таким не относится — запрос, в котором из идентификаторов только он, отклоняется как запрос без пользователя. user_id передавайте, когда посетитель вошёл; anonymous_id — всегда, в том числе после входа: так ДАРА свяжет устройство с аккаунтом. Какой user_id выбрать — в разделе Данные о пользователях.
Как определяется пользователь
Для события, заказа, записи профиля, запроса выдачи и поиска ДАРА выбирает пользователя по порядку:
- Есть
user_id— пользователь с этимuser_id; он создаётся при первом появлении. Переданные вместе с нимanonymous_idиfingerprint_uuidисторию не переносят — перенос делает толькоPOST /users/link. - Иначе, если в проекте включено узнавание без входа и устройство узнано, — пользователь, который входил на этом устройстве (см. ниже). К записи профиля это правило не применяется.
- Иначе известен
anonymous_id— его пользователь. - Иначе известен проверенный и неспорный
fingerprint_uuid— его анонимный пользователь; к нему привязывается переданныйanonymous_id. - Иначе создаётся новый анонимный пользователь, к нему привязываются переданные идентификаторы.
analytics_id в этом порядке не участвует: он привязывается к уже выбранному пользователю, и один analytics_id принадлежит одному пользователю — последнему, с которым он пришёл.
Без идентификаторов событие отклоняется с кодом no_user, а выдача получается неперсональной: mode: cold, identity: none.
Запросы выдачи и поиска пользователя только ищут: новых пользователей и привязки идентификаторов создают события, заказы, профиль и склейка. Как определён пользователь, видно в ответе выдачи — поле identity, раздел Рекомендации.
Склейка при входе: POST /users/link
Вызывайте в момент входа и регистрации пользователя на вашем сайте.
curl -X POST https://core.daratech.ru/api/v1/users/link \
-H "Authorization: Bearer $DARA_KEY" \
-H "Content-Type: application/json" \
-d '{"user_id": "u-501", "anonymous_id": "a-7f3c2e"}'
{"merged": true, "events_moved": 12}
Тело — user_id и anonymous_id и/или fingerprint_uuid. Анонимный пользователь, найденный по anonymous_id (а если его нет — по неспорному fingerprint_uuid) и ещё ни с кем не склеенный, сливается в пользователя user_id:
- сигналы объединяются по режимам типов событий:
fact— сумма,max— максимум,state— более позднее значение; - события и заказы переходят к пользователю, профиль интересов пересчитывается;
- данные профиля анонима дополняют данные пользователя: уже заполненные поля пользователя не перезаписываются.
После склейки anonymous_id и fingerprint_uuid отвязываются от аккаунта. Следующие события без user_id с этого устройства создают нового анонимного пользователя. analytics_id анонима, наоборот, переходит к аккаунту — до следующего запроса, в котором он придёт с другим пользователем.
Общие устройства
Правила склейки защищают историю на общем компьютере или планшете:
- после выхода из аккаунта посетитель без входа не видит в выдаче историю вошедшего;
- анонимная история, уже слитая с одним аккаунтом, не переносится в другой аккаунт, вошедший на том же устройстве. Пример — члены семьи по очереди входят в свои аккаунты на одном телевизоре.
DARA Fingerprint
Подключение DARA Fingerprint — по желанию: без него всё работает по user_id и anonymous_id, а поле fingerprint_uuid ни на что не влияет. С подключением история анонимного посетителя сохраняется, даже если сменился anonymous_id, а cookie dara_visitor осталась прежней.
- Секретный ключ fingerprint (
sk_…) вводится в кабинете, на странице «DARA Fingerprint» проекта; в API он не передаётся. - В
fingerprint_uuidпередавайте значение cookiedara_visitor, которую пишет SDK DARA Fingerprint, — вместе сanonymous_id. - Каждый новый
fingerprint_uuidпроверяется в фоне; приём данных и выдача проверки не ждут. Для определения пользователя используются только проверенные, известные вашему сайту и не спорныеfingerprint_uuid.
Подробно — в разделе DARA Fingerprint: SDK и продление cookie, ключ, проверка, спорные и общие устройства, статусы подключения.
Узнавание без входа
Настройка проекта «Узнавать пользователей без входа» — по умолчанию выключена и работает только при подключённом DARA Fingerprint.
- Запрос без
user_idполучает выдачу по профилю пользователя (identity: recognized), а его события и заказы — в историю этого пользователя, если за 90 дней на устройстве входил ровно один аккаунт,fingerprint_uuidпроверен и не спорный, устройство не общее и пользователь не отказался от персонализации. - Запись профиля без
user_idк узнанному пользователю не относится. - Узнавание прекращается сразу после входа второго аккаунта на том же устройстве и после выключения настройки.
Условия, остановка и проверка в кабинете — DARA Fingerprint → Узнавание без входа.
Удаление данных: POST /users/delete
{"user": {"user_id": "u-501"}}
Удаляет пользователя: данные профиля, идентификаторы, входы на устройствах, события, заказы, сигналы, профиль интересов, снимки выдачи и данные ДАРА АНАЛИТИКИ о нём. Агрегаты статистики объектов остаются обезличенными. Ответ — {"deleted": true}, для неизвестного пользователя — {"deleted": false}. То же действие есть в кабинете, в карточке пользователя.
В самой ДАРА АНАЛИТИКЕ при этом не удаляется ничего: ДАРА только читает её данные, а хранит и удаляет их сама аналитика — по своим срокам и своим правилам.