# Пользователи (User ID)

User ID — это уникальный идентификатор, который присваивается каждому пользователю для поддержания согласованности пользовательских данных на всех его устройствах. Это позволяет вам обеспечить вашей аудитории бесшовный пользовательский опыт на всех их устройствах.

## Как связаны пользователи и устройства?

Каждому пользователю присваивается уникальный идентификатор, называемый User ID. User ID могут быть связаны с несколькими устройствами, что позволяет компаниям оставаться на связи с пользователями, даже когда они меняют устройства. Это гарантирует, что целевые сообщения дойдут до нужного пользователя на любом устройстве, которое он использует.

Пользователь (User ID) не является самостоятельной сущностью; он зависит от наличия связанных устройств. Если последнее связанное устройство будет удалено или привязано к другому пользователю, пользователь будет автоматически удален из системы.

Пользователь (User ID) также функционирует как сущность, под которой можно сгруппировать несколько устройств, каждое со своим уникальным Hardware ID (HWID).

<img src="/pushwoosh-knowledge-hub-users-userids-1.webp" alt="Диаграмма, показывающая связь между User ID и несколькими устройствами с уникальными HWID"/>

<Aside type="note">
Pushwoosh поддерживает [связывание нескольких устройств с одним User ID](/ru/developer/first-steps/collecting-user-ids/) без какой-либо дополнительной настройки. Просто зарегистрируйте каждое устройство с одним и тем же User ID, и они будут автоматически сгруппированы в одном профиле пользователя.

Для получения пошаговых инструкций о том, как это сделать, см. [Установка кастомного User ID и его привязка к нескольким устройствам](/ru/developer/first-steps/collecting-user-ids/).
</Aside>

### Лимит устройств на одного пользователя

Каждый пользователь может иметь не более 20 устройств, связанных с его User ID. Когда регистрируется 21-е устройство, система автоматически удаляет одно из существующих устройств, чтобы освободить место.

**Как выбирается устройство для удаления**

1. Если все связанные устройства предназначены только для email, удаляется случайное email-устройство.
2. В противном случае система находит самое старое не-email устройство на основе времени последнего открытия приложения и удаляет его.
3. Если нет данных об активности для сравнения (например, устройства были добавлены через API без фактического использования приложения), удаляется случайное не-email устройство.

Это гарантирует, что ваши самые активные устройства остаются привязанными к вашему аккаунту, в то время как старые, неактивные устройства автоматически удаляются.

## Типы пользователей

Существует два типа пользователей: анонимные и известные. У анонимного пользователя User ID равен HWID устройства, который позже может быть заменен на фактический User ID.

У известного пользователя есть отдельный User ID. Вы можете указать User ID при регистрации нового устройства через API-вызов [`/registerDevice`](/ru/developer/api-reference/device-api/#registerdevice).

## Получение и управление User ID

Pushwoosh предоставляет несколько способов доступа и управления пользователями:

### Создание пользователей

По умолчанию, когда приложение с интегрированным Pushwoosh SDK запускается впервые, оно устанавливает HWID устройства в качестве User ID. Вы можете вызвать метод [`setUserID`](/ru/developer/first-steps/collecting-user-ids/#setuserid-sdk-method) из Pushwoosh SDK при входе в систему, чтобы установить любое необходимое значение для связывания устройства с конкретным пользователем. Когда пользователь выходит из системы, вы можете сбросить это значение до значения по умолчанию с помощью другого вызова [`setUserID`](/ru/developer/first-steps/collecting-user-ids/#setuserid-sdk-method), например, до начального значения HWID.

### Импорт пользователей

Вы можете легко импортировать User ID из CSV-файла для определенного сегмента пользователей. Подробные инструкции вы найдете в [руководстве по сегментам](/ru/product/audience-data-and-segmentation/segmentation/create-segments/by-import).

### Экспорт пользователей

Для экспорта User ID вы можете использовать API-запрос [`/exportSegment`](/ru/developer/api-reference/segmentation-filters-api/#exportsegment), который предоставляет возможность экспорта данных в формате CSV или JSON.

### Доступ к User ID из логов устройства

User ID также можно получить напрямую из логов устройства. Для получения пошаговых инструкций, пожалуйста, обратитесь к статье [Как получить консольные логи и токены устройств](https://help.pushwoosh.com/hc/en-us/articles/360000292586-How-to-obtain-console-logs-and-device-token?source=search\&auth\_token=eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoyOTA5MjksInVzZXJfaWQiOjEyNDkzMTI5MDkwMzMzLCJ0aWNrZXRfaWQiOjc4MzMyLCJjaGFubmVsX2lkIjo2MywidHlwZSI6IlNFQVJDSCIsImV4cCI6MTY5MzExNDk5Mn0.SpeS-IJ\_j3mB6Elf2ObMjev2MZSmDOLu4DYQdEcZvS8).

## Теги пользователей и устройств

Как и устройства, пользователи (User ID) могут иметь свои собственные наборы [тегов](/ru/product/audience-data-and-segmentation/user-data-tags/), которые служат для категоризации и идентификации пользователей или устройств на основе их характеристик.

### Как создавать теги для конкретных пользователей

Когда вы устанавливаете тег для конкретного пользователя, он автоматически применяется как к пользователям, так и ко всем их связанным устройствам. Это означает, что тег будет связан с профилем пользователя и будет отражен на всех его устройствах.

Чтобы создать тег для конкретного пользователя из Pushwoosh Control Panel, установите флажок **User-specific** при добавлении нового тега. Если вы не отметите тег как user-specific, он будет связан только с устройством.

<img src="/pushwoosh-knowledge-hub-users-userids-2.webp" alt="Опция 'User-specific' при создании нового тега в Pushwoosh Control Panel"/>

## Управление переходами пользователей

В Pushwoosh управление переходами пользователей включает два основных сценария:

### Переход от анонимного к известному пользователю

Когда анонимный пользователь становится известным, устройство, которое он использует, связывается с его новым профилем пользователя. Во время этого перехода все атрибуты устройства остаются неизменными. Однако важно отметить, что все атрибуты, специфичные для пользователя, сбрасываются до значений известного пользователя или до значений по умолчанию, если их нет.

Например, рассмотрим сценарий, когда гостевой пользователь использовал приложение для отслеживания фитнеса с настройками по умолчанию. Когда он создает аккаунт, данные его устройства остаются неизменными. Тем не менее, любые специфичные для пользователя детали, такие как имя, email и настроенные цели, будут сброшены до значений известного пользователя.

### Переход от одного известного пользователя к другому

Если пользователь, связанный с устройством, изменяется с помощью [`setUserID`](/ru/developer/first-steps/collecting-user-ids/#setuserid-sdk-method) из Pushwoosh SDK, устройство связывается с новым профилем пользователя.

> Узнайте больше об установке User ID для [Android](/ru/developer/pushwoosh-sdk/android-sdk/android-faq#how-do-i-set-a-userid) и [iOS](/ru/developer/pushwoosh-sdk/ios-sdk/ios-faq#how-do-i-set-a-userid).

Вы также можете использовать API-вызов [**`/registerUser`**](/ru/developer/api-reference/user-centric-api#registeruser).

Как и в предыдущем сценарии, атрибуты устройства остаются прежними, обеспечивая плавный переход. Однако теги, специфичные для пользователя, теперь будут присвоены значениям нового пользователя. Это делается для того, чтобы теги пользователя точно отражали профиль нового пользователя.

В качестве примера рассмотрим сценарий в сервисе потокового видео. Если зарегистрированный пользователь выходит из системы, а другой зарегистрированный пользователь входит в систему на том же устройстве, настройки устройства, такие как предпочитаемый язык и качество видео, сохраняются. Однако любая специфичная для пользователя информация, такая как история просмотров и рекомендации, будет изменена для нового пользователя.

## API-методы для управления пользователями

Pushwoosh предоставляет несколько API-методов для управления пользователями в вашем приложении. Вам понадобится помощь вашей команды разработчиков для работы с этими методами. Для получения более подробной информации поделитесь [этой ссылкой](/ru/developer/pushwoosh-knowledge-hub/users-userids/#api-methods-for-managing-users) с вашей командой разработчиков.


## Если пользователь связан с несколькими устройствами, какое из них получит сообщение во время Customer Journey?

<Aside type="caution">
По умолчанию пользователь не может находиться в одном и том же Journey дважды одновременно. Если пользователь вызывает условия входа, уже участвуя в Journey, он не будет повторно добавлен до тех пор, пока не завершит или не выйдет из текущего Journey.

Customer Journeys работают на основе User ID. Если User ID связан с несколькими устройствами или контактами, ни одно из них не сможет повторно войти в Journey, пока пользователь уже находится в нем.

Если вы хотите, чтобы пользователи могли входить в одно и то же Journey несколько раз, например, для повторных покупок или бронирований, включите [настройку нескольких сессий](/ru/product/customer-journey/journey-elements/entry-elements/trigger-based-entry/#control-how-many-sessions-a-user-can-have-at-the-same-time) и определите идентификатор сессии (например, `order_id` или `appointment_id`).
</Aside>
Когда у пользователя есть несколько устройств, связанных с его аккаунтом, способ доставки сообщений между ними зависит от типа Journey:

### Journeys с входом на основе аудитории и вебхуков

По умолчанию в этих Journeys сообщения отправляются на самое последнее активное устройство, связанное с пользователем. Это гарантирует, что сообщение дойдет до пользователя, который с наибольшей вероятностью с ним взаимодействует.

### Journeys с входом на основе триггера

По умолчанию сообщение отправляется на устройство, на котором в последний раз было выполнено действие-триггер. Это сохраняет контекст и релевантность, доставляя сообщение на устройство, где произошла соответствующая активность пользователя.

### Доставка на все устройства

Однако вы можете переопределить эти настройки по умолчанию и отправить сообщение на все устройства, связанные с User ID, одновременно. Для этого в настройках сообщения прокрутите вниз до **Options** и включите переключатель **Send to all user devices**.

<img src="/pushwoosh-knowledge-hub-users-userids-3.webp" alt="Переключатель 'Send to all user devices' в настройках сообщения в разделе 'Options'"/>

Эта опция может быть полезна для рассылок или срочных уведомлений, которые должны дойти до пользователя независимо от того, какое устройство он использует в данный момент.