Как добавить игровую механику со случайным подарком в мобильное приложение
Игровые механики в In-App — это интерактивный инструмент вовлечения пользователей мобильного приложения: пользователь крутит колесо призов, получает приз и оставляет контакт. Такие механики помогают деанонимизировать клиентов, активировать новых пользователей, возвращать «спящих» и мотивировать повторные заказы.
Примечание
Как настроить форму «Секретный подарок», читайте в статье.
Чтобы запустить механику, нужно:
- Убедиться, что в приложении установлена подходящая версия Mindbox SDK.
- Создать In-App из шаблона игровой механики.
- Создать дополнительное поле, в которое будет записываться выигрыш.
- Настроить сценарий, выдающий и отправляющий подарок.
- Добавить рассылку с выводом выигрыша.
Требования к версии Mindbox SDK
Игровые механики работают только при наличии актуального мобильного SDK:
- Минимальная версия SDK: 2.15.0+ (для Android — 2.15.1+).
- Поддерживаемые платформы: iOS, Android, Flutter, React Native.
- В проекте должен быть подключен модуль In-App.
Пользователи со старыми версиями SDK не увидят механику. Это снижает охват механики и может искажать результаты АБ-тестов. Заранее проверьте долю аудитории на актуальной версии приложения и запустите In-App для мотивации к обновлению.
Создание In-App
Создайте новый In-App. В окне выбора шаблона перейдите в категорию «Игровые механики» и выберите подходящий формат: «Лента удачи», «Колесо фортуны» или «Билет удачи».

Настройки In-App
Перейдите в редактирование шаблона и скорректируйте дизайн под стиль приложения.
Игровые формы состоят из трех экранов:
- Экран механики — заголовок, анимация (колесо, лента, билет) и кнопка действия.
- Экран сбора контактов (опционально) — поля для контактов клиента и согласие на коммуникации. Если контакты собирать не нужно, экран можно отключить в настройках формы.
- Экран «Спасибо» — подтверждение выигрыша и инструкция, как и где можно получить или применить приз.
Подарки
Откройте настройки игрового элемента, чтобы перейти к секторам и вероятностям выпадения.

-
Отредактируйте набор подарков. На одну механику можно настроить до 18 призов.
-
Кликните на подарок, чтобы открыть его настройки, и укажите:
- Название или картинку подарка.
- Идентификатор выигрыша. Идентификатор будет передаваться в действие или в поле клиента и использоваться для определения подарка в сценарии. Подробнее тут.
- Текст, который увидит пользователь при выигрыше этого подарка.

-
Укажите вероятность выпадения подарков:
- Простое — позволяет быстро распределить вероятность выпадения подарка с помощью степени шанса. При выборе проценты автоматически перераспределяются между вариантами.
- Ввод в процентах — позволяет вручную указать точный процент выпадения.

Вероятности рассчитываются на стороне приложения и теоретически видны в коде опытному пользователю. Для дорогих и особо ценных призов (крупные скидки, ценные товары) не полагайтесь только на вероятность в механике — добавьте проверку на стороне веб-сервера.
Поля сбора контактов
-
Перейдите в настройки второго экрана с помощью вкладок на верхней панели настроек.
-
Нажмите «Добавить элемент» и выберите поля (email, телефон, имя), в которых будут запрашиваться данные клиента для отправки подарка.

Если сбор контактов в этой механике не нужен, экран с формой можно скрыть — пользователь перейдет сразу с экрана механики на экран «Спасибо».

Что нельзя сделать в форме In-App
- Подставить персональные данные (имя, баланс бонусов, персональный промокод) в тексты механики — содержимое экранов статичное. Персонализация можно использовать в рассылке после участия;
- Учесть содержимое списка клиента или историю заказов в реальном времени — форма «не знает», что у пользователя в корзине;
- Динамически менять набор призов в реальном времени.
Таргетинг
Ограничьте показ In-App по сегменту, событию в приложении, частоте и датам акции, чтобы он показывался только нужной аудитории. Базовые настройки In-App — в общей инструкции.
Настройка передачи данных на проект
Перед настройкой сценария создайте дополнительное поле для хранения выигрыша. Поле можно создать как по действию, так и по клиенту.
У поля по действию есть преимущество: новое участие не перезаписывает предыдущий выигрыш, в ленте активности клиента сохраняется история всех участий.
- Создайте дополнительное поле по сущности «Действие» с типом «Строковый».

-
В настройках In-App «Действия после заполнения In-App’а клиентом» задайте создание клиента с контактом и выдачу действия, в дополнительное поле которого запишется выигрыш:
- Поле в Mindbox — созданное поле по действию.
- Поле In-App’а — «Результат».
Пример для формы, которая собирает email-адрес клиента
- Создайте дополнительное поле по сущности «Клиент» с типом «Строковый».

-
В настройках In-App «Действия после заполнения In-App’а клиентом» задайте создание клиента с контактом и заполнение поля подарка, а также выдачу действия:
- Поле в Mindbox — созданное поле по клиенту.
- Поле In-App’а — «Результат».
Пример для формы, которая собирает email-адрес клиента
Выдача и отправка подарка в сценарии
Форма In-App — это только игровая часть. Выдача промокодов и рассылка настраиваются отдельным сценарием.
Заранее создайте:
- Автоматическую рассылку(email, SMS или мобильный пуш) для отправки подарка;
- Пулы с промокодами. Подарки будут выдаваться в виде промокодов, которые можно использовать в качестве бенефита к следующей покупке. Для каждого типа подарка нужен отдельный пул.
Как настроить сценарий:
-
Запускающее событие — выдача подарка. Выберите шаблон из In-App.

-
Проверьте значение выигрыша через режим «Мультиветки». Добавьте все варианты так, как они указаны в идентификаторе выигрыша.
Подарок передается в поле действияПодарок передается в поле клиента

-
В каждой ветке выдайте промокод из соответствующего пула и отправьте рассылку.

-
Настройте отправку для каждого приза и запустите сценарий.

Вывод подарка в рассылке
Для вывода подарка в верстке используйте блок if: зависимости от значения выигрыша подставляется промокод из нужного пула и соответствующий текст.
Например, нужно вывести сообщение:
Используйте промокод PROMO для получения PRIZE на следующую покупку.
Где вместо PROMO — код клиента, а вместо PRIZE — тип выигрыша.
Параметры:
CustomerAction.CustomField.{Системное_имя_дополнительного_поля_действия}.Name- полученный в форме подарок из дополнительного поля действия;Recipient.LastReceivedPromoCode.{Системное_имя_пула_промокодов}.Value- промокод клиента, полученный из определенного пула промокодов.
Пример:
Используйте промокод
@{if CustomerAction.CustomField.Gift = "Скидка 5"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov1.Value} для получения скидки 5%
@{else if CustomerAction.CustomField.Gift = "Доставка"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov2.Value} для получения бесплатной доставки
@{else if CustomerAction.CustomField.Gift = "Бонус 400"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov3.Value} для получения 400 бонусов
@{else if CustomerAction.CustomField.Gift = "Бонус 500"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov4.Value} для получения 500 бонусов
@{end if}
на следующую покупку.
Параметры:
Recipient.CustomField.{Системное_имя_дополнительного_поля_клиента}- полученный в форме подарок из дополнительного поля клиента;Recipient.LastReceivedPromoCode.{Системное_имя_пула_промокодов}.Value- промокод клиента, полученный из определенного пула промокодов.
Пример:
Используйте промокод
@{if Recipient.CustomField.Gift = "Скидка 5"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov1.Value} для получения скидки 5%
@{else Recipient.CustomField.Gift = "Доставка"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov2.Value} для получения бесплатной доставки
@{else if Recipient.CustomField.Gift = "Бонус 400"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov3.Value} для получения 400 бонусов
@{else if Recipient.CustomField.Gift = "Бонус 500"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov4.Value} для получения 500 бонусов
@{end if}
на следующую покупку.
Пример полученного сообщения:
Используйте промокод 1234ABCD для получения 400 бонусов на следующую покупку.