Переменные

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

Чтобы открыть панель переменных, нажмите значок { } на левой панели. Панель содержит три вкладки:

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

Пользовательские переменные

Создание кастомной переменной

  1. На панели переменных нажмите +.
  2. Введите имя переменной.
  3. Выберите тип: String, Number или Boolean.
  4. Задайте начальное значение — это значение, которое переменная принимает при запуске флоу.
  5. Нажмите Create variable.

Используйте точки в именах, чтобы группировать связанные переменные — например, user.score или user.goal.

Создание кастомной переменной

Обновление переменной через взаимодействие

Подробнее — в статье Действия.

Вы можете обновить значение переменной в рантайме, добавив действие Set up variables к любому элементу.

  1. Выберите элемент на канвасе.
  2. На вкладке Interactions нажмите Add trigger.
  3. Выберите On tap и нажмите Add action. В выпадающем списке Action type выберите Set up variables.
  4. Нажмите Add variable. Выберите переменную и задайте новое значение.

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

Обновление переменной через взаимодействие

Переменные продукта

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

ПеременнаяОписаниеПример
prod_titleЛокализованное название продуктаPremium Subscription
prod_priceЛокализованная цена за один расчётный период$9.99
prod_price_per_dayЦена подписки, делённая на количество дней в расчётном периоде. Пустая для разовых покупок.$0.33
prod_price_per_weekЦена подписки, делённая на количество недель в расчётном периоде. Пустая для разовых покупок.$2.33
prod_price_per_monthЦена подписки, приведённая к одному месяцу. Пустая для разовых покупок.$9.99
prod_price_per_yearЦена подписки, приведённая к одному году. Пустая для разовых покупок.$119.88
offer_priceЛокализованная цена introductory offer или promotional offer. Пустая, если пользователь не имеет права на оффер.$0.99
offer_billing_periodЛокализованный расчётный период оффера. Совпадает с offer_full_duration для триальных и pay-upfront офферов. Пустая, если пользователь не имеет права на оффер.1 week
offer_full_durationЛокализованная полная длительность оффера. Пустая, если пользователь не имеет права на оффер.1 month
is_free_trialВозвращает true, если пользователь имеет право на оффер с бесплатным пробным периодом.true
is_pay_up_frontВозвращает true, если пользователь имеет право на pay-up-front оффер.true
is_pay_as_you_goВозвращает true, если пользователь имеет право на pay-as-you-go оффер.true

Используйте is_free_trial, is_pay_up_front и is_pay_as_you_go с условной видимостью, чтобы показывать или скрывать элементы в зависимости от того, какой оффер доступен пользователю. Например, показывайте таймлайн бесплатного пробного периода только когда is_free_trial равно true.

Значения переменных оффера зависят от типа оффера, на который имеет право пользователь. Для примера рассмотрим недельную подписку «Premium Subscription» за $5 с тремя возможными офферами:

  • Pay As You Go: Первые 3 недели за $3 (списывается еженедельно), затем $5/неделю.
  • Pay Up Front: Первые 3 недели за $8 (списывается сразу), затем $5/неделю.
  • Free Trial: Первая неделя бесплатно, затем $5/неделю.

В этом примере prod_title возвращает «Premium Subscription», а prod_price возвращает $5. Значения переменных оффера зависят от того, на какой оффер имеет право пользователь:

ПеременнаяPay As You GoPay UpfrontFree Trial
offer_price$3$8$0
offer_billing_period1 неделя3 недели1 неделя
offer_full_duration3 недели3 недели1 неделя
Для предложений Pay Upfront и Free Trial offer_billing_period и offer_full_duration возвращают одинаковое значение. Для Pay As You Go они различаются, поскольку расчётный период составляет одну неделю, а полная продолжительность — три недели.

Подробнее о предложениях и их настройке см. в разделе Предложения.

Переменные элементов

Переменные элементов фиксируют выбор пользователя — что он выбрал в квизах, на какой вкладке находится и включён ли переключатель триала.

Тип переменной зависит от группы:

  • Одиночный выбор: Квизы с одиночным выбором и вкладки:
    • selected_id: ID элемента для использования в условиях
    • selected_title: заголовок элемента для использования в динамическом тексте
  • Множественный выбор: Квизы с множественным выбором:
    • selected_ids: ID элементов для использования в условиях
    • selected_titles: заголовки элементов для использования в динамическом тексте
  • Переключатель: Переключатель триала:
    • is_selected: булево значение Распространённые сценарии использования:
  • Отображение разного контента в зависимости от того, включён ли переключатель пробного периода.
  • Переход пользователей на разные экраны в зависимости от их ответов в квизе

Использование переменных в тексте

Чтобы вставить переменную в текстовый элемент:

  1. Выберите текстовый элемент на холсте.
  2. На вкладке Design найдите поле Content и введите текст.
  3. Нажмите на иконку { } в поле.
  4. Выберите переменную из списка.

Переменные можно также использовать в других элементах:

  • Используйте переменные в ссылках и алертах, чтобы сделать их динамическими
  • Создавайте динамические условия на основе переменных. Например, условие может выглядеть так: if experience.current > experience.target, navigate to...
Вставка переменной в текстовый элемент

Переменные стилей

Применить форматирование к отдельной переменной нельзя. Если выделить переменную в поле Content и попытаться сделать её жирной, курсивной, подчёркнутой, зачёркнутой или изменить её цвет — ничего не произойдёт.

Форматирование применяется только ко всему текстовому блоку целиком. Чтобы стилизовать текст, используйте раздел Typography на вкладке Design или выберите сохранённый стиль текста.

Повторное использование контента на разных экранах

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

  1. Создайте пользовательскую переменную типа String и задайте её начальное значение как текст, который хотите переиспользовать. Например, назовите её button.navigation и установите значение Continue.
    Creating a custom variable with its initial value set to the reusable text
  2. Вставьте эту переменную в поле Content каждого элемента, где должен появляться этот текст. Чтобы изменить текст везде сразу, достаточно один раз обновить начальное значение переменной. Все элементы, использующие её, обновятся автоматически — редактировать каждый экран вручную не нужно.
Одна и та же пользовательская переменная, вставленная в поле Content сразу в нескольких элементах