ДокументацияРуководства
Пользователи
Идентификаторы пользователей, как ДАРА определяет пользователя, склейка при входе, общие устройства, узнавание без входа и удаление данных.
Идентификаторы
Во всех запросах пользователь передаётся объектом user — в событиях, заказах, профиле и выдаче:
{"user": {"user_id": "u-501", "anonymous_id": "a-7f3c2e", "fingerprint_uuid": "3f1c9a52-8d4e-4b7a-9c61-2e5d7f0a1b34"}}
| Поле | Что это | Формат |
|---|---|---|
user_id |
аккаунт на вашем сайте | строка до 191 символа Unicode |
anonymous_id |
браузер или устройство; id выдаёт ваш сайт — например, случайный id в cookie | до 191 печатного символа ASCII |
fingerprint_uuid |
visitor_uuid DARA Fingerprint |
UUID |
Нужен хотя бы один идентификатор. user_id передавайте, когда посетитель вошёл; anonymous_id — всегда, в том числе после входа: так ДАРА свяжет устройство с аккаунтом. Какой user_id выбрать — в разделе Данные о пользователях.
Как определяется пользователь
Для события, заказа, записи профиля и запроса выдачи ДАРА выбирает пользователя по порядку:
- Есть
user_id— пользователь с этимuser_id; он создаётся при первом появлении. Переданные вместе с нимanonymous_idиfingerprint_uuidисторию не переносят — перенос делает толькоPOST /users/link. - Иначе, если в проекте включено узнавание без входа и устройство узнано, — пользователь, который входил на этом устройстве (см. ниже). К записи профиля это правило не применяется.
- Иначе известен
anonymous_id— его пользователь. - Иначе известен проверенный и неспорный
fingerprint_uuid— его анонимный пользователь; к нему привязывается переданныйanonymous_id. - Иначе создаётся новый анонимный пользователь, к нему привязываются переданные идентификаторы.
Без идентификаторов событие отклоняется с кодом no_user, а выдача получается неперсональной: mode: cold, identity: none.
Склейка при входе: 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 с этого устройства создают нового анонимного пользователя.
Общие устройства
Правила склейки защищают историю на общем компьютере или планшете:
- после выхода из аккаунта посетитель без входа не видит в выдаче историю вошедшего;
- анонимная история, уже слитая с одним аккаунтом, не переносится в другой аккаунт, вошедший на том же устройстве. Пример — члены семьи по очереди входят в свои аккаунты на одном телевизоре.
DARA Fingerprint
Подключение DARA Fingerprint — по желанию: без него всё работает по user_id и anonymous_id. С подключением анонимные посетители узнаются и тогда, когда anonymous_id потерян — например, после очистки cookie.
- Ключ подключения — секретный ключ fingerprint (
sk_…) — вводится в настройках проекта в кабинете; в API он не передаётся. - В
fingerprint_uuidпередавайтеvisitor_uuid, который SDK fingerprint записывает в cookiedara_visitor. - Каждый новый
fingerprint_uuidпроверяется в фоне: неизвестный вашему сайту в fingerprint id для узнавания не используется. Приём событий и выдача проверки не ждут. - Если за 7 дней один
fingerprint_uuidпришёл с тремя и более разнымиanonymous_id, он считается спорным и для определения пользователя не используется. - Без подключения поле
fingerprint_uuidни на что не влияет.
Узнавание без входа
Настройка проекта «Узнавать пользователей без входа» — по умолчанию выключена и работает только при подключённом DARA Fingerprint.
- Вход на устройстве. Любой запрос с
user_idиfingerprint_uuid— склейка, событие, заказ, профиль — запоминает пару «устройство — пользователь» на 90 дней. - Узнавание срабатывает для запроса без
user_id, если за 90 дней на этом устройстве входил ровно один аккаунт,fingerprint_uuidпроверен, не спорный, fingerprint не считает устройство общим и пользователь не отказался от персонализации. - Узнанный пользователь получает выдачу по своему профилю с
identity: recognized, его события и заказы записываются в его профиль. - Запись профиля без
user_idк узнанному пользователю не относится: посторонний на общем устройстве не должен менять данные аккаунта. - Выключение настройки прекращает узнавание сразу.
Удаление данных: POST /users/delete
{"user": {"user_id": "u-501"}}
Удаляет пользователя: данные профиля, идентификаторы, входы на устройствах, события, заказы, сигналы, профиль интересов и снимки выдачи. Агрегаты статистики объектов остаются обезличенными. Ответ — {"deleted": true}, для неизвестного пользователя — {"deleted": false}. То же действие есть в кабинете, в карточке пользователя.