变量

变量让你在流程中展示动态内容——产品定价、优惠详情,以及根据每位用户的上下文实时更新的其他数据。你可以用变量控制元素的显示与隐藏,并为每个用户个性化屏幕内容。

要打开变量面板,点击左侧面板中的 { } 图标。该面板共有三个标签页:

  • 自定义:由您自己创建和管理的变量。
  • 产品:内置变量,从商店中提取本地化的产品和优惠数据。
  • 元素:绑定到画布上元素状态的变量。

自定义变量

创建自定义变量

  1. 在变量面板中,点击 +。
  2. 输入变量名称。
  3. 选择类型:String、Number 或 Boolean。
  4. 设置初始值。这是流程启动时变量所持有的值。
  5. 点击 Create variable。
Tip

在名称中使用点号可以将相关变量分组,例如 user.score 或 user.goal。

Creating a custom variable

通过交互更新变量

你可以通过为任意元素添加 Set variable 动作,在运行时更新变量的值。

  1. 在画布上选择一个元素。
  2. 在 Interactions 标签页中,点击 Add trigger。
  3. 选择 On tap,然后点击 Add action。在 Action type 下拉菜单中选择 Set variable。
  4. 点击 Add variable,选择变量并设置新值。
Tip

例如,您可以根据用户选择的测验答案为 user.goal 赋予不同的值,然后使用该变量将用户导航到不同的页面。

通过交互更新变量

产品变量

产品变量直接从应用商店拉取本地化数据。可以在文本字段中使用它们来显示本地化价格、标题和优惠详情——也可以在条件中使用,根据优惠资格来显示或隐藏内容。当你为某个特定产品插入变量时,编辑工具会将该产品添加到 Products 面板的屏幕产品列表中。

变量描述示例
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新用户优惠或促销活动的本地化价格。若用户不符合任何优惠条件则为空。$0.99
offer_billing_period优惠的本地化结算周期。对于免费试用和预付款优惠,与 offer_full_duration 相同。用户不符合条件时为空。1 week
offer_full_duration优惠的本地化完整时长。用户不符合条件时为空。1 month
is_free_trial若用户符合免费试用优惠条件,返回 true。true
is_pay_up_front若用户符合预付款优惠条件,返回 true。true
is_pay_as_you_go若用户符合按次付费优惠条件,返回 true。true

prod_price_per_* 变量将产品计费周期内的价格换算为你指定的时间单位。换算采用固定的周期长度,而非日历日期:

  • 1 周 = 7 天
  • 1 个月 = 30 天
  • 1 年 = 12 个月,即 365 天

以每月 $59.99 的订阅为例,prod_price_per_week 返回 $14.00:$59.99 × 7 ÷ 30 = $13.9977,四舍五入后显示。由于 1 个月约为 30 ÷ 7 ≈ 4.2857 周,将每周价格乘以 4 并不能还原原始价格。

Tip

使用 is_free_trial、is_pay_up_front 和 is_pay_as_you_go 配合条件可见性,根据用户符合条件的优惠类型来显示或隐藏元素。例如,仅在 is_free_trial 为 true 时显示免费试用时间线。

优惠变量的值取决于用户符合条件的优惠类型。以一个名为”Premium Subscription”的每周订阅为例,售价 $5,包含三种可能的优惠:

  • 按使用量付费:前 3 周每周 $3(按周计费),之后每周 $5。
  • 预付款:前 3 周一次性付 $8,之后每周 $5。
  • 免费试用:第一周免费,之后每周 $5。

在此示例中,prod_title 返回”Premium Subscription”,prod_price 返回 $5。优惠变量的值取决于用户有资格享受哪种优惠:

变量按使用量付费预付款免费试用
offer_price$3$8$0
offer_billing_period1 周3 周1 周
offer_full_duration3 周3 周1 周

对于预付款和免费试用优惠,offer_billing_period 和 offer_full_duration 返回相同的值。对于按量付费,两者不同,因为计费周期是一周,而完整时长是三周。

offer_price、offer_billing_period 和 offer_full_duration 需要绑定了优惠的产品。如果没有优惠,流程将无法发布。

这些值均来自商店,因此编辑工具预览只能解析其中部分内容:优惠相关的值在画布上无法解析,而 is_free_trial、is_pay_up_front 和 is_pay_as_you_go 则取决于你在产品卡片上选择的优惠。请参阅预览产品与优惠,在构建过程中预览每种优惠类型。

Note

如需了解优惠的详细信息及配置方式,请参阅优惠。

元素变量

元素变量用于记录用户的选择——例如他们在测验中选择了什么、当前所在的标签页,以及某个开关是否已开启。

元素变量类型取决于所属分组:

  • 单选:单选测验、标签页和切换按钮:
    • selectedOptionId:用于条件判断的元素 ID
    • selectedOptionTitle:用于动态文本的元素标题
  • 多选:多选测验:
    • selectedOptionIds:用于条件判断的元素 ID 列表
    • selectedOptionTitles:用于动态文本的元素标题列表
  • 开关:在开启和关闭之间切换的元素:
    • isActive:布尔值
  • 产品:产品卡片:
    • selectedProduct:已选产品,用于条件判断

常见使用场景包括:

在文本中使用变量

要在文本元素中插入变量:

  1. 在画布上选择一个文本元素。
  2. 在 Design 选项卡中,找到 Content 字段并输入你的文本。
  3. 点击字段中的 { } 图标。
  4. 选择一个变量。在 Product 选项卡中,已在 Products 面板中列出的产品会优先显示,其余目录产品则显示在 Other products 下方。
Tip

你还可以在其他元素中使用变量:

  • 在链接和提示框中使用变量,使其内容动态化
  • 基于变量创建动态条件。例如,条件可以是 if experience.current > experience.target, navigate to...
Inserting a variable into a text element

样式变量

变量本身不支持富文本格式。在 Content 字段中选中变量后,对其应用加粗、斜体、下划线、删除线或更改颜色均不会生效。

富文本设置只对整个文本块生效。如需设置文本样式,请使用 Design 标签页的 Typography 部分,或应用已保存的文本样式。

在多个屏幕之间复用内容

流程中有些内容会在多个屏幕重复出现——比如”继续”这样的按钮文字、反复出现的行动号召,或者在多个屏幕都需要展示的免责声明。较长的文本也是如此,例如在多个屏幕复用的功能描述。与其在每个元素中逐一输入这些内容,不如将其保存为自定义变量。当你需要将不同用户引导至不同屏幕,但又希望各处措辞保持一致时,这种方式尤为实用。

  1. 创建一个自定义变量,类型选择 String,并将其初始值设置为你想复用的文本。例如,将其命名为 button.navigation,值设置为 Continue。
    创建一个自定义变量,其初始值设置为可复用的文本
  2. 将此变量插入每个需要显示该文本的元素的 Content 字段中。

只需更新变量的初始值,文本就会在所有用到该变量的地方同步更新,无需逐一手动编辑每个页面。

同一自定义变量插入多个元素的 Content 字段中