# Multi-Armed Bandit

Элемент **Multi-Armed Bandit** отправляет пользователям push-уведомление, так же как и элемент [Push](/ru/product/customer-journey/journey-elements/channels/push/). Вместо одного пресета вы предоставляете несколько вариантов контента. Оптимизация происходит непрерывно на основе данных в реальном времени, без необходимости вручную перезапускать тест или поддерживать фиксированное распределение трафика. Pushwoosh направляет больше трафика на тот вариант, который открывают чаще всего.

<Aside type="caution" title="Multi-Armed Bandit — это экспериментальная функция">
- **Варианты:** поддерживаются только существующие пресеты push-уведомлений. Варианты контента для Email, SMS или In-App пока не поддерживаются.
- **Метрика успеха:** на данный момент в качестве успеха засчитываются только открытия push-уведомлений. Возможность выбора пользовательского события в качестве метрики успеха появится в ближайшее время.
- **Выбор:** основан на общей эффективности варианта для всех пользователей, а не на индивидуальных предпочтениях. Pushwoosh избегает отправки одного и того же варианта одному и тому же человеку дважды подряд.

Поведение и настройки могут измениться по мере развития этой функции.
</Aside>

Добавьте элемент **Multi-Armed Bandit** после события или условия, которое должно его запустить, а затем настройте элемент.

<img src="/journey-elements-smart-content-1.webp" alt="Элемент Multi-Armed Bandit добавлен на холст Journey после триггера"/>

## Добавление вариантов контента

<Aside type="tip">
Чтобы использовать Multi-Armed Bandit, сначала создайте два или более пресета push-уведомлений в вашем аккаунте. [Узнайте больше о создании пресетов push-уведомлений](/ru/product/content/push-presets/). Для сохранения элемента необходимо как минимум два варианта.
</Aside>

1. Дважды щелкните элемент **Multi-Armed Bandit**, чтобы открыть его настройки.
2. В разделе **Варианты контента** выберите как минимум два разных пресета push-уведомлений.
3. Нажмите **Добавить вариант**, чтобы включить больше пресетов. Верхнего предела нет.

<img src="/journey-elements-smart-content-2.webp" alt="Раздел «Варианты контента» элемента Multi-Armed Bandit с двумя выбранными пресетами push-уведомлений и кнопкой «Добавить вариант»"/>

## Выбор метрики успеха

В разделе **Вознаграждение** выберите, что считается успехом для варианта:

- **Push-уведомление открыто:** вариант считается успешным, когда пользователь открывает это push-уведомление.
- **Произошло событие:** выберите пользовательское событие в качестве сигнала успеха вместо открытий. Эта опция появится в ближайшее время.

Установите **Окно вознаграждения**, чтобы определить, сколько часов Pushwoosh будет ждать после отправки, прежде чем проверить, было ли открыто push-уведомление. По умолчанию установлено 2 часа.

<img src="/journey-elements-smart-content-3.webp" alt="Раздел «Вознаграждение» элемента Multi-Armed Bandit с выбранной опцией «Push-уведомление открыто», отключенной опцией «Произошло событие» и полем «Окно вознаграждения»"/>

<Aside type="note">
Если пользователь откроет push-уведомление после закрытия окна вознаграждения, открытие все равно появится в вашей обычной статистике сообщений. Оно не будет учитываться при оптимизации Multi-Armed Bandit. Для обучения эта отправка будет считаться неоткрытой. Выбирайте достаточно длинное окно, чтобы зафиксировать важные для вас открытия. Более длинное окно также означает, что Multi-Armed Bandit будет дольше ждать, прежде чем сможет извлечь урок из каждой отправки.
</Aside>

## Персонализация вариантов и добавление ваучеров

<Aside type="note">
Эти настройки применяются ко всему элементу Multi-Armed Bandit, а не к каждому варианту в отдельности. Какой бы пресет Multi-Armed Bandit ни отправил пользователю, одни и те же правила персонализации и пул ваучеров заполнят его плейсхолдеры. Если только некоторые из ваших пресетов-вариантов включают определенный плейсхолдер или тег ``{{voucher}}``, другие варианты просто не будут его использовать — нет возможности установить разные сопоставления событий или пулы ваучеров для каждого варианта.
</Aside>

### Персонализация с помощью динамического контента

Включите опцию **Персонализировать сообщение с помощью атрибутов события**, чтобы заполнять плейсхолдеры в ваших пресетах-вариантах значениями из события, а не из тегов устройства. Multi-Armed Bandit собирает плейсхолдеры, используемые во всех выбранных вами вариантах, в один список, так что вы сопоставляете каждый плейсхолдер один раз, независимо от того, какой пресет в итоге будет отправлен.
 
 [Узнайте больше о персонализации в Journey](/ru/product/customer-journey/journey-elements/dynamic-content-and-liquid-templates-in-journeys/).

### Перезапись плейсхолдеров Liquid

Включите опцию **Перезаписать плейсхолдеры Liquid** и выберите событие, чтобы передать его атрибуты в теги Liquid в ваших пресетах-вариантах, которые совпадают по названию. Если вы включите и динамический контент, и персонализацию Liquid, приоритет будет у Liquid.

### Использование ваучеров

Включите опцию **Использовать ваучеры**, чтобы прикрепить уникальный код из пула ваучеров к любому отправляемому варианту. Заранее создайте свои пресеты-варианты с плейсхолдером ``{{voucher}}``, а затем выберите **Пул ваучеров**, из которого будут извлекаться коды. При желании используйте **Присвоить тег**, чтобы сохранить доставленный код в теге пользователя. 

[Узнайте больше о ваучерах](/ru/product/content/vouchers/).

## Установка типа сообщения

Выберите **Маркетинговое сообщение** или **Транзакционное сообщение**:

* **Маркетинговое сообщение**: для кампаний и промоакций. Применяются все правила и ограничения. Учитываются: отписки, ограничение частоты отправки и период тишины. Исключаются: пользователи из [глобальной контрольной группы](/ru/product/audience-data-and-segmentation/global-control-group/).
* **Транзакционное сообщение**: для операционных или служебных сообщений. Правила и ограничения не применяются. Обходит: отписки, ограничение частоты отправки и период тишины. Отправляется: пользователям из [глобальной контрольной группы](/ru/product/audience-data-and-segmentation/global-control-group/).

<img src="/journey-elements-smart-content-5.webp" alt="Выбор типа сообщения в элементе Multi-Armed Bandit с опциями «Маркетинговое сообщение» и «Транзакционное сообщение»"/>

[Узнайте, как тип сообщения влияет на доставку](/ru/product/messaging-channels/marketing-vs-transactional/).

## Настройка параметров доставки сообщений

### Установка ограничения частоты отправки

<Aside type="note">
Опции ограничения частоты отправки доступны только при выборе **Маркетингового сообщения**. Если вы выберете **Транзакционное сообщение**, ограничение частоты отправки не применяется, и эти опции будут отключены.
</Aside>

Используйте [**Ограничение частоты отправки**](/ru/product/messaging-channels/global-frequency-capping/#enable-global-frequency-capping), чтобы ограничить частоту получения пользователями push-сообщений, предотвращая избыточную рассылку и снижая отток. В настройках элемента Multi-Armed Bandit выберите одну из следующих опций:

* **Использовать глобальные настройки ограничения частоты отправки**

  Применить лимиты, установленные для всего проекта в ваших [глобальных настройках ограничения частоты отправки](/ru/product/messaging-channels/global-frequency-capping/#enable-global-frequency-capping).

  Например, если глобальный лимит установлен на 3 сообщения за 9 дней, дополнительные сообщения, превышающие этот лимит, будут пропущены.

* **Игнорировать глобальное ограничение частоты отправки**

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

* **Использовать пользовательское ограничение частоты отправки**

  Установить пользовательский лимит для этого сообщения. Если пользователь превысит этот пользовательский лимит, сообщение будет пропущено, и пользователь перейдет к следующему шагу.
  > **Важно:** Пользовательское ограничение частоты отправки не изолирует сообщение от **глобального ограничения частоты отправки**. Все сообщения, отправленные по тому же каналу, включая сообщения из других Journey или кампаний, по-прежнему учитываются в глобальном лимите. Если пользователь уже получил 3 push-сообщения на этой неделе из других источников, это сообщение все равно может быть заблокировано, даже если пользовательское ограничение позволило бы его отправить.
  [Узнайте больше](/ru/product/messaging-channels/global-frequency-capping/#customize-capping-for-specific-messages)

### Установка лимитов скорости отправки

Настройка **Скорость отправки** контролирует, как быстро сообщения доставляются вашей аудитории. Регулировка скорости отправки помогает управлять скоростью доставки, предотвращать перегрузку бэкенда и улучшать общую доставляемость.

Выберите одну из следующих опций:

* **Использовать глобальные настройки скорости отправки**
  Применяет лимиты скорости отправки, настроенные в параметрах доставки сообщений вашего проекта. Если лимиты не установлены, все сообщения будут отправлены немедленно. Используйте эту опцию, когда хотите, чтобы скорость доставки соответствовала правилам вашего проекта по умолчанию. [Узнайте больше о глобальных лимитах скорости отправки](/ru/product/messaging-channels/global-frequency-capping/#set-send-rate-limits)

![Использовать глобальные настройки скорости отправки](/send-rate-in-journey-elements-1.webp)

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

![Отправлять сообщения без ограничения скорости](/send-rate-in-journey-elements-2.webp)

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

![Использовать пользовательскую скорость отправки](/send-rate-in-journey-elements-3.webp)

Когда вы закончите настройку элемента Multi-Armed Bandit, нажмите **Сохранить**.

## Как Multi-Armed Bandit выбирает вариант

Multi-Armed Bandit не чередует варианты равномерно и не проводит фиксированное разделение 50/50, как [A/B/n сплит](/ru/product/customer-journey/journey-elements/flow-controls/abn-split/). Вместо этого он постоянно отслеживает, какой вариант открывают чаще, и постепенно отправляет этот вариант большей доле пользователей. Он все еще отправляет другие варианты достаточно часто, чтобы продолжать учиться на реальных данных.

Несколько моментов о его поведении:

- Требуется некоторое время и объем, чтобы появился явный лидер. Вначале варианты отправляются почти равномерно.
- Pushwoosh избегает отправки одного и того же варианта одному и тому же пользователю дважды подряд, чтобы люди не получали одно и то же сообщение повторно.
- Выбор основан на общей эффективности каждого варианта для всех пользователей в Journey, а не на индивидуальных предпочтениях пользователя.

Даже после того, как вариант подтвержден как победитель, Multi-Armed Bandit продолжает работать. В отличие от [A/B/n сплита](/ru/product/customer-journey/journey-elements/flow-controls/abn-split/), он не фиксирует победителя и не направляет весь трафик на него. Победивший вариант продолжает получать наибольшую долю отправок, в то время как другие по-прежнему получают меньшую долю, чтобы Pushwoosh мог продолжать учиться. Если со временем производительность изменится, Multi-Armed Bandit адаптируется и может перенаправить трафик к новому лидеру.


## Пример сценария: восстановление брошенной корзины

Используйте Multi-Armed Bandit, когда пользователи добавляют товары в корзину, но не завершают оформление заказа. В приведенном ниже примере Journey запускается по событию **Cart abandoned** и тестирует три варианта push-уведомлений, чтобы вернуть пользователей.

1. **Подготовьте пресеты push-уведомлений.** Создайте три пресета push-уведомлений в своем аккаунте, прежде чем создавать Journey. [Узнайте больше о создании пресетов push-уведомлений](/ru/product/content/push-presets/). 

Для этого сценария с брошенной корзиной вы можете создать такие пресеты:

   - **Напоминание о корзине:** "Товары ждут вас в корзине"
   - **Срочность корзины:** "Ваша корзина истекает через 1 час"
   - **Скидка на корзину:** "Получите скидку 10%, если оформите заказ сейчас"

2. **Создайте Journey.** В **Кампании → Конструктор Customer Journey** нажмите **Создать кампанию** и выберите **Создать Journey с нуля**. Добавьте на холст элемент [Вход по триггеру](/ru/product/customer-journey/journey-elements/entry-elements/trigger-based-entry/).

3. **Установите триггер.** Создайте или включите событие **Cart abandoned**, которое срабатывает, когда пользователь не завершает оформление заказа в течение нескольких часов. В элементе **Вход по триггеру** выберите это событие в качестве триггера Journey. [Узнайте больше о событиях](/ru/product/audience-data-and-segmentation/events/).

4. **Добавьте элемент Multi-Armed Bandit.** Разместите элемент **Multi-Armed Bandit** после триггера, а затем откройте его настройки.

5. **Добавьте варианты контента.** В разделе **Варианты контента** выберите три пресета, которые вы создали на шаге 1.

6. **Выберите метрику успеха.** В разделе **Вознаграждение** выберите **Push-уведомление открыто**. Установите **Окно вознаграждения** на 2 часа. Это окно достаточно длинное, чтобы зафиксировать открытия от пользователей, которые не проверяют свой телефон сразу, но достаточно короткое, чтобы продолжать быстро учиться.

7. **Завершите настройку и запустите.** Настройте тип сообщения и параметры доставки, нажмите **Сохранить** и активируйте Journey.

### После запуска

Multi-Armed Bandit может вести себя примерно так. Фактическое распределение трафика и время зависят от объема отправок и реакции пользователей на каждый вариант.

Сначала Pushwoosh отправляет все три варианта почти равномерно, так как у него еще недостаточно данных. По мере поступления открытий он начинает перенаправлять больше трафика на тот вариант, который открывают чаще. Например, если "Получите скидку 10%, если оформите заказ сейчас" постоянно превосходит два других, он может получать около 60% отправок, в то время как остальные два делят оставшуюся часть.

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

## Просмотр результатов

После сохранения элемента и запуска Journey откройте панель статистики элемента Multi-Armed Bandit, чтобы увидеть, как работают ваши варианты.

<img src="/journey-elements-smart-content-4.webp" alt="Панель статистики Multi-Armed Bandit с баннером вердикта и метриками «Отправлено», «Открыто» и «Трафик» для каждого варианта"/>

Баннер вверху показывает текущий статус эксперимента:

- **Пока недостаточно данных:** Multi-Armed Bandit еще не собрал достаточно отправок, чтобы сделать какие-либо значимые выводы.
- **Все еще в процессе обучения:** данные есть, но ни один вариант еще не является явным, статистически значимым лидером.
- **Явный лидер:** один вариант подтвержден как превосходящий другие. Он отмечен значком **Победитель**.


Для каждого варианта вы увидите:

- **Отправлено:** сколько раз был отправлен этот вариант.
- **Открыто:** доля отправок, которые были открыты.
- **Трафик:** текущая доля новых отправок, направляемых на этот вариант.


## Multi-Armed Bandit в сравнении с A/B/n сплитом

И **Multi-Armed Bandit**, и [**A/B/n сплит**](/ru/product/customer-journey/journey-elements/flow-controls/abn-split/) оптимизируют ваши сообщения, но работают по-разному. Используйте таблицу ниже, чтобы решить, какой из них подходит для вашего случая.

| | **Multi-Armed Bandit** | **A/B/n сплит** |
|---|---|---|
| **Механика** | Непрерывно перенаправляет трафик к наиболее эффективному варианту на основе открытий в реальном времени | Разделяет пользователей на ветви с фиксированным процентом, который вы определяете заранее. Ветви могут содержать совершенно разные последующие потоки |
| **Варианты** | Требуется как минимум два пресета push-уведомлений. Нет верхнего предела по количеству вариантов | До четырех ветвей на тест |
| **Распределение трафика** | Начинается почти равномерно, затем автоматически смещается по мере поступления данных | Фиксированный процент, который вы устанавливаете, остается неизменным до выбора победителя |
| **Продолжительность** | Работает непрерывно, без определенного окончания | Работает до достижения статистической значимости или до тех пор, пока вы не остановите его вручную |
| **Победитель** | Никогда не фиксируется: победивший вариант получает больше трафика, но другие по-прежнему получают некоторую долю | Фиксируется после выбора победителя: проигравшие ветви деактивируются, и все новые пользователи направляются к победителю |
| **Лучше всего подходит для** | Постоянной оптимизации контента для одного шага сообщения (пока только для пресетов push-уведомлений) | Тестирования структурно разных потоков или последовательностей, когда вам нужно однократное, зафиксированное решение |