Rules allow you to decide which users see a paywall when a trigger is fired.

  1. Rules are evaluated in order.
  2. Once a rule is matched, no other rules are evaluated.
  3. A user's paywall assignment is sticky.

📘

What are Sticky Paywall Assignments?

So long as that paywall exists in a rule (even if you change its percent to 0%) a user will continue to be served that paywall.

Remember: Changing a paywall's percentage doesn't effect assignments for users who already saw that paywall — to remove assignments you must explicitly click the X button. To remove assignments for users who saw no paywall, create a new rule.

This allows you to decide if you should continue showing an old paywall to users who already saw it. For example, you may decide to increase prices but for consistency keep the paywall with the old pricing visible for those who've already seen it.

Adding Rules

Add a rule to a campaign by clicking the Add Rule button from within a Campaign.

26242624

Updating Conditions

Change a rule's condition by clicking the condition itself, marked with a pencil icon to its right. In this example, we add a condition that evaluates to true if user has logged greater than or equal to 3 days.

26482648

📘

Conditions Adopt Liquid Syntax

Under the hood, Superwall's client library evaluates if statements in Liquid (learn more).

You do NOT need to add {% if or %} tags as they will break your condition. Superwall wraps your conditions with them client side before evaluation.

As with Paywall Text Variables, Superwall exposes user, params and device dictionaries for referencing in your conditions:

Object

Description

user

User attributes your SDK implementation sets on the user. See Setting User Attributes

params

Parameters defined when triggering a campaign. See Triggering Paywalls and Tracking Events

device

Device attributes that are gathered by the SDK.

The condition editor offers suggestions (with a random example user object) as you type. At this point in time, suggestions don't work for params.

26542654

Condition Operators

The following operators are valid in Liquid:

Syntax

Operation

==

equals

!=

does not equal

>

greater than

<

less than

>=

greater than or equal to

<=

less than or equal to

contains

checks for the presence of a substring inside a string

or

logical or

and

logical and

Examples:

user.age > 40
user.genre == "jazz" or user.genre == "classical"
params.outcome contains "substring"

Rule Settings

The following settings can be access by clicking the ellipse icon to the right of any rule

22902290

Setting

Description

Move Up

Swaps the rule's order with the rule directly above it.

Move Down

Swaps the rule's order with the rule directly below it.

Pause

Pauses the rule, preventing it from being evaluated all together.

Delete

Deletes the rule.


Did this page help you?