ДАРА
Разделы документации

ДокументацияРуководства

Пользователи

Идентификаторы пользователей, как ДАРА определяет пользователя, склейка при входе, общие устройства, узнавание без входа и удаление данных.

Идентификаторы

Во всех запросах пользователь передаётся объектом 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 выбрать — в разделе Данные о пользователях.

Как определяется пользователь

Для события, заказа, записи профиля и запроса выдачи ДАРА выбирает пользователя по порядку:

  1. Есть user_id — пользователь с этим user_id; он создаётся при первом появлении. Переданные вместе с ним anonymous_id и fingerprint_uuid историю не переносят — перенос делает только POST /users/link.
  2. Иначе, если в проекте включено узнавание без входа и устройство узнано, — пользователь, который входил на этом устройстве (см. ниже). К записи профиля это правило не применяется.
  3. Иначе известен anonymous_id — его пользователь.
  4. Иначе известен проверенный и неспорный fingerprint_uuid — его анонимный пользователь; к нему привязывается переданный anonymous_id.
  5. Иначе создаётся новый анонимный пользователь, к нему привязываются переданные идентификаторы.

Без идентификаторов событие отклоняется с кодом 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 записывает в cookie dara_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}. То же действие есть в кабинете, в карточке пользователя.