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

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

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

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

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

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

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

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

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

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

В самой ДАРА АНАЛИТИКЕ при этом не удаляется ничего: ДАРА только читает её данные, а хранит и удаляет их сама аналитика — по своим срокам и своим правилам.