# Создание сегментов по User ID

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

## Как создать сегмент по User ID

Чтобы создать сегмент на основе User ID:

1. Перейдите в **Audience** → **Segments**.

2. Нажмите **Создать сегмент**, чтобы открыть конструктор сегментов.

3. В конструкторе сегментов нажмите **User ID** в разделе **Добавить фильтр по:**.

<img src="/segmentation-segments-by-user-id-2.webp" alt="Экран создания сегмента с выбранным User ID в «Добавить фильтр по:» перед вводом идентификаторов пользователей"/>

4. Выберите, по какому идентификатору фильтровать: **User ID**, **HWID**, **Email**, **Телефон** или **Токен**.

<img src="/segmentation-segments-by-user-id-4.webp" alt="Выпадающий список поля условия User ID, показывающий User ID, HWID, Email, Телефон и Токен, все включены, выбран Токен"/>

5. Выберите оператор для условия. [Подробнее](#operators)

<img src="/segmentation-segments-by-user-id-3.webp" alt="Выпадающий список операторов условия User ID, показывающий «один из», «ни один из», «начинается с», «содержит» и «заканчивается на»"/>

6. Добавьте значения, которые должны быть включены в сегмент: User ID, HWID, email-адреса, номера телефонов или push-токены, в зависимости от поля, которое вы выбрали на шаге 4. Операторы **один из** и **ни один из** принимают список значений. Операторы **начинается с**, **содержит** и **заканчивается на** принимают одно значение. Вводите номера телефонов в формате [**E.164**](https://en.wikipedia.org/wiki/e.164), например `+15551234567`. Pushwoosh хранит их в таком виде, и оператор **начинается с** осуществляет поиск только с самого первого символа.

<Aside type="note">
Используйте идентификаторы, которые уже существуют в вашем проекте Pushwoosh. Если вам нужно загрузить файл с User ID или Hardware ID, воспользуйтесь функцией [импорта сегмента](/ru/product/audience-data-and-segmentation/segmentation/create-segments/by-import/).
</Aside>

<img src="/segmentation-segments-by-user-id-1.webp" alt="Экран создания сегмента с открытым фильтром User ID, показывающий поле для добавления Pushwoosh User ID"/>

7. При необходимости добавьте другие фильтры.

8. Чтобы таргетировать пользователя на всех его устройствах, когда условие совпадает, используйте опцию **Включить все устройства пользователя**. [Узнайте, как работает эта опция](/ru/product/audience-data-and-segmentation/segmentation/create-segments/by-tags/#include-all-user-devices).

9. Нажмите **Сохранить**.
<Aside type="tip">
Вы можете комбинировать фильтры **User ID** с фильтрами **Тег**, **Событие**, **Сегмент** или **Радиус локации** в одном сегменте, чтобы сузить список известных пользователей по поведению, атрибутам, принадлежности к существующему сегменту или местоположению. Для более сложной логики см. [Создание сегментов с помощью составных фильтров](/ru/product/audience-data-and-segmentation/segmentation/create-segments/compound-filters/).
</Aside>

## Операторы

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

В колонке **seglang** — токен оператора, который конструктор показывает рядом с названием и который используется в [языке сегментации](/ru/developer/api-reference/segmentation-filters-api/segmentation-language/). Колонка **Пример** показывает, как условие читается в конструкторе, а не синтаксис seglang.

| Оператор <div style="width:180px"></div> | seglang | Описание <div style="width:250px"></div> | Пример |
| --- | --- | --- | --- |
| **один из** | `in` | Соответствует любому значению в списке | `UserID один из ["user1", "user2"]` |
| **ни один из** | `notin` | Не соответствует ни одному значению в списке | `HWID ни один из ["a1b2c3d4e5"]` |
| **начинается с** | `startswith` | Начинается с указанной строки | `Телефон начинается с "+1555"` |
| **содержит** | `contains` | Содержит указанную строку | `Email содержит "example.com"` |
| **заканчивается на** | `endswith` | Заканчивается указанной строкой | `Токен заканчивается на "9a2e2f"` |

### Сопоставление по нескольким устройствам

Для полей **HWID**, **Email**, **Телефон** и **Токен** эти операторы оценивают каждое устройство индивидуально, и пользователь соответствует условию, если хотя бы одно из его устройств удовлетворяет условию.

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

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

### Сопоставление по полю «Токен»

**Токен** соответствует [push-токену](/ru/product/pushwoosh-knowledge-hub/device-identifiers/#push-token), отображаемому для устройства в [User Explorer](/ru/product/audience-data-and-segmentation/user-explorer/). Он не соответствует ключам отправителя Firebase Cloud Messaging (FCM) или ключам web push, которые не индексируются для этого фильтра.

В отличие от **Email**, значения поля **Токен** чувствительны к регистру. Pushwoosh сравнивает их в точности так, как они введены, без приведения к нижнему регистру.

<Aside type="note">
Pushwoosh сравнивает значения **Email** в нижнем регистре, поэтому регистр вводимых вами символов не имеет значения. Новые email-устройства сохраняются в нижнем регистре, но у небольшой части существующих устройств адрес все еще хранится с заглавными буквами. Этот фильтр не сможет найти их, независимо от того, как вы введете значение.
</Aside>

### Устаревшие сегменты

Сегменты, сохраненные до введения этих операторов, не имеют значения оператора и считываются как **один из**. Для существующих сегментов ничего не меняется.