Miniwall Docs
Guides

Show different screens by plan attribute

Hide the paywall from paying users and show a different screen to free users, using attributes your site passes.

Audiences need the Pro plan or above. Attributes stay in the browser.

Tell the SDK about the visitor, at startup and again after sign-in:

UIKit.configure({ apiKey: 'pk_...', attributes: { plan: 'free' } });
UIKit.setAttributes({ plan: 'pro' }); // after they upgrade

Configure the placement, tab Audience, Add audience. Name it Paid users. Condition: Attribute from your site, name plan, is pro. Shows: Nothing (skip this placement).

Add a second audience Trial users: plan is trial, Shows a trial-ending screen. Order matters: the first match wins, so move the specific ones above general ones with the up and down arrows.

Save. Everyone else sees the placement's own screen (Everyone else row).

Handle the skip in code if you need to:

const result = await UIKit.presentPaywall({ paywall: { placement: 'upgrade_button' }, products, onPurchase });
if (result.outcome === 'skipped') console.log(result.reason); // 'audience'

Nothing in attributes is sent to Miniwall. See Targeting attributes.

On this page