Действия

Панель Interactions позволяет задать, как элементы флоу реагируют на события — например, нажатия, появление элементов и отправку форм. Для каждого события назначается одно или несколько действий: переход между экранами, показ или скрытие элементов, открытие URL, установка переменных и многое другое. Используйте условия, чтобы адаптировать флоу под данные конкретного пользователя.

Каждое взаимодействие строится по трёхчастной цепочке:

  1. Element: Компонент экрана, с которого начинается взаимодействие — кнопка, вариант ответа в квизе, поле ввода или любой другой элемент.
  2. Trigger: Событие, которое запускает логику, — нажатие, появление элемента или отправка формы.
  3. Action: Задача, которую выполняет флоу в ответ на событие. Один триггер может последовательно запускать несколько действий.

Настройка взаимодействий

Чтобы настроить взаимодействие:

  1. Выберите элемент на экране или на панели Layers.
  2. Справа переключитесь на панель Interactions и нажмите Add trigger.
Кнопка Add trigger
  1. В разделе Button triggers выберите тип триггера.
Выбор типа триггера
  1. Нажмите Add action, кликните на название действия и выберите тип действия из выпадающего списка в окне Edit action.
Add action button
  1. Настройте свойства действия в зависимости от выбранного типа действия.
  2. При необходимости нажмите Add action, чтобы добавить дополнительные действия для того же триггера.

Типы триггеров

Триггеры срабатывают в ответ на действия пользователя, изменение состояния элементов или загрузку экрана. On screen appear является универсальным; остальные привязаны к конкретным элементам.

ТриггерСрабатывает когда…Поддерживается на
On screen appearЭкран загружаетсяВсе элементы
On tapПользователь нажимает на элементКнопки, варианты квиза, переключатели, таймеры обратного отсчёта, видео
On changedПользователь изменяет значение поля ввода (набирает текст, выбирает дату или время)Все элементы ввода
On submitПользователь отправляет текстовый ввод, нажав Enter или Done на клавиатуреТекстовые поля ввода
On timer endЭлемент Countdown достигает нуляCountdown
On playback finishedВидео воспроизводится до концаВидео
Для элементов без встроенных взаимодействий (например, Loader) единственным доступным триггером является On screen appear.

Типы действий

Любое навигационное действие, которое переводит пользователя на другой экран, всегда должно быть последним в списке действий. Действия, добавленные после него (например, «Set Variable»), могут не выполниться, так как приложение уже сменило экран.

Это основное действие для перемещения пользователей между экранами. Оно переводит пользователя на указанный экран назначения.

Для этого действия нужно только указать экран назначения. Если вы хотите включить динамическую навигацию, см. Навигация и ветвление или раздел Условные действия.

Перейти на экран

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

Возвращает пользователя на предыдущий экран в истории навигации, а не на предыдущий экран в последовательности.

Открыть URL

Используйте встроенные ссылки для вставки ссылок в текст.

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

  • URL address: укажите URL-адрес. Кроме того, его можно сделать динамическим — например, чтобы направлять пользователей на разные страницы в зависимости от их ответа в квизе или введённых данных. Для этого нажмите Variable icon и выберите нужную переменную.
  • Open in external browser: укажите, где открывать внешние ссылки. По умолчанию они открываются во встроенном браузере, чтобы пользователь оставался в приложении. Установите флажок Open in external browser, если хотите открывать ссылки во внешнем браузере.
Open URL

Закрыть флоу

Закрывает текущий флоу.

Показ/скрытие элементов

Показывает или скрывает определённый элемент на экране.

Это действие переопределяет начальное состояние, заданное в Visibility в панели Design. Если для Visibility установлено значение Hide, действие Show сделает элемент видимым.

Действие Show или Hide без указанного целевого элемента блокирует предпросмотр и публикацию. Выберите цель или удалите действие.

Показать уведомление

Отображает нативное системное всплывающее окно. Пользователь должен нажать Ok, чтобы продолжить.

Для уведомлений необходимо заполнить поля Title и Message. В обоих полях можно использовать переменные, чтобы сделать содержимое динамическим. Для этого нажмите Variable icon и выберите нужную переменную.

Действие Show alert с пустой или незаполненной конфигурацией блокирует предпросмотр и публикацию. Заполните оба поля или удалите это действие.

Show alert

Установить переменную

Обновляет значение переменной во флоу. Перед добавлением этого действия создайте переменные на панели Variables слева (см. Переменные).

Нажмите Add variable и задайте столько переменных и их значений, сколько нужно.

Действие Set variable без назначения блокирует предпросмотр и публикацию. Настройте хотя бы одно назначение или удалите это действие.

Установить переменную

Покупка

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

  • In-app store: Инициирует нативную покупку. Укажите в поле Product конкретный продукт или products.selectedProduct для текущего выбора пользователя на экране.
  • Web payment: Перенаправляет пользователя на веб-пейвол вместо инициирования нативной покупки. Используйте этот вариант, если хотите обрабатывать транзакцию вне приложения — например, для веб-офферов подписки.

Действие Purchase без указанного Product или Web Paywall URL блокирует предварительный просмотр и публикацию. Укажите цель или удалите это действие.

Purchase action configuration in the Edit action window

Восстановление покупок

Запускает флоу восстановления покупок на устройстве. Пользователи нажимают эту кнопку, если ранее оформили подписку на другом устройстве или после переустановки приложения и хотят восстановить доступ к своим правам.

Настраивать здесь ничего не нужно — Adapty выполняет восстановление через нативный флоу стора.

Действие Restore purchases также предварительно настроено на ссылке Restore в пресете кнопки Links (см. Настройка покупок).

Пользовательские действия

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

Adapty передаёт триггер, а ваше приложение реализует поведение:

  1. В билдере вы назначаете Action ID для взаимодействия с элементом.
  2. Когда пользователь запускает это взаимодействие, флоу передаёт ID в ваше приложение.
  3. Ваше приложение сопоставляет ID и выполняет нужный код.

Настройте пользовательское действие

  1. В окне Edit action укажите Action ID — строку, которую распознает ваше приложение (например, show_discount).
  2. В коде приложения реализуйте обработчик для этого Action ID. Подробности и примеры кода см. в разделе Обработка действий пейвола.

Действие типа Custom без Action ID блокирует предпросмотр и публикацию. Укажите Action ID или удалите это действие.

Настройка пользовательского действия с полем Action ID в окне Edit action

Возможности пользовательских действий

Само по себе пользовательское действие ничего не делает. Вы задаёте статический Action ID в конструкторе, а код приложения определяет, что произойдёт при получении этого идентификатора. Все примеры ниже работают по одной схеме: назначьте ID во флоу, а затем обработайте его в коде.

  • Запустить внутреннее событие: отправьте идентификатор, например viewed_special_offer, затем залогируйте событие в аналитику при его получении.
  • Запросить системное разрешение: отправьте идентификатор, например request_location, затем вызовите системный диалог запроса разрешений из своего приложения. Adapty не показывает этот диалог — это делает ваше приложение.
  • Запустить нативную аутентификацию: отправьте идентификатор, например login_google, затем откройте собственный экран входа. Флоу не может авторизовать пользователя самостоятельно.
  • Применить бизнес-логику: отправьте идентификатор, например apply_discount, затем разблокируйте контент или измените состояние приложения на своей стороне.
  • Передать ответ из квиза в приложение: назначьте разный Action ID каждому варианту ответа (например, goal_weight_loss и goal_muscle), затем считайте идентификатор в коде. Используйте его, чтобы задать пользовательский атрибут, по которому впоследствии можно сегментировать пользователей. Поскольку действие передаёт только фиксированный идентификатор, это единственный способ сообщить о сделанном выборе — флоу не может отправить выбранное значение напрямую.

Кастомное действие срабатывает в момент выбора пользователем варианта. Если пользователь меняет ответ, флоу также отправляет новый Action ID. Ваше приложение получит оба сигнала по порядку — например, goal_weight_loss, затем goal_muscle. Сделайте обработчик идемпотентным, чтобы побеждал последний сигнал.

Что не умеют пользовательские действия

Пользовательские действия статичны. Action ID фиксируется при сборке флоу — он не может читать переменные или пользовательский ввод. Когда действие срабатывает, приложение получает только этот ID, но никак не email, номер телефона или другие данные, введённые пользователем. Поля ввода остаются внутри флоу как переменные для ветвления и персонализации. Чтобы использовать эти значения в приложении, собирайте их через собственный UI или API.

Условные действия

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

Примеры распространённых сценариев:

  • На экране есть квиз, и вы хотите направлять пользователей на разные экраны в зависимости от их ответов. В этом случае добавьте условное действие к кнопке.
  • Вы хотите предлагать разные продукты и офферы разным группам пользователей. Разместите их на отдельных экранах и настройте условия для кнопки навигации.
  • Вы хотите пропускать определённые шаги для пользователей, которые уже прошли обучение в предыдущей сессии. Условные действия работают как цепочка if / else-if / else. Приложение читает правила сверху вниз и останавливается на первом совпадении:
  1. IF: Флоу проверяет основное условие.
    • Результат True? Флоу немедленно выполняет действия THEN и останавливается.
    • Результат False? Флоу переходит к следующему разделу.
  2. ELSE IF: Здесь можно добавить дополнительные проверки (например, «Если не Premium, является ли пользователь участником Trial?»).
  3. ELSE (Фолбэк): Если ни одно из правил выше не совпало, флоу выполняет действия в этом финальном разделе.
  • Если правило добавлено, но действие для него не назначено, совпадение с условием ни к чему не приводит.
  • Незаполненное правило (без оператора или значения) блокирует предпросмотр и публикацию.

Для каждого правила выберите переменную для оценки и действие для выполнения. Можно задать несколько действий для одного правила.

Флоу выполняет только одно правило — первое совпавшее. Если нужно выполнить и IF, и ELSE IF одновременно, добавьте оба действия в IF.

Чтобы узнать, как сделать элементы выбираемыми и объединять их в группы для использования в условиях, см. Выбираемые элементы и группы.

Условные действия

Устранение неполадок

Любое действие с незаполненными обязательными полями блокирует предпросмотр и публикацию. Полный список см. в разделе Сохранение и публикация флоу.