# Custom User Properties

> Attach whatever you know about a user, then target paywalls, branch experiments, and personalize copy by it — no app release required.

Source: https://superwall.com/features/custom-user-properties

---

Analytics

#  Custom User Properties 

Attach whatever you know about a user, then target paywalls, branch experiments, and personalize copy by it — no app release required.

 You already know things about your users — what plan they're on, how long they've been around, which features they touch, where they came from. The hard part has never been knowing it. It's acting on it inside the paywall without filing an engineering ticket for every "what if we showed power users a different offer?" idea. Custom user properties close that gap. You pass Superwall whatever you know about a user, and from then on you can target paywalls, branch experiments, and personalize copy by it — from the dashboard, with no new app build. 

## Send what you know, once

 A single call to [ setUserAttributes](https://superwall.com/docs/ios/quickstart/setting-user-properties) attaches any key-value data you have to the current user — plan tier, signup date, lifetime spend, A/B cohort, referral source, favorite category, anything. It's a merge, so each call updates the keys you pass and leaves the rest alone, and passing `nil` clears a value. You define the vocabulary; Superwall stores it against the user and makes it available everywhere campaigns are decided. 

* **Your data, your names:** set strings, numbers, booleans, URLs — whatever describes the user in terms your team already thinks in.
* **Device context comes free:** alongside your custom properties, Superwall automatically exposes [device properties](https://superwall.com/docs/variable-reference) like `deviceLocale`, `deviceCurrencyCode`, `osVersion`, `daysSinceInstall`, and `totalPaywallViews` — no instrumentation needed.
* **A built-in test seed:** every user also gets a `seed` value from 0–99, so you can split experiments evenly without inventing your own bucketing.

## Target paywalls by who the user actually is

 Once a property exists, it becomes a filter you can reference in [ campaign audiences](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns-audience). Audiences are evaluated top to bottom, and the first one a user matches decides which paywall they see. So "annual subscribers who churned" can get a win-back offer, "trial users on day 6" can get an urgency paywall, and everyone else falls through to your default — all configured in the dashboard, all changeable in minutes. 

[ Build a campaign audience ](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns-audience) 

 You're not limited to a single equality check. Audiences support rule groups that combine your custom properties with device context, entitlement status, and [ event counts over time](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns-audience) using AND/OR logic — for example, "`plan = free` AND opened the app at least 3 times this week AND `deviceCurrencyCode = USD`." The segment is as precise as the data you send. 

## Run experiments on real segments

 Custom properties turn your A/B tests from "show everyone the same two variants" into "test the right offer on the right people." Define an audience by a property, then split it across paywalls by percentage — show one variant to 70% and another to 30% — and read the results per segment. Assignments are sticky: changing a split only affects new users, so people who already entered a test keep the experience they were assigned and your data stays clean. 

Properties are only as fresh as your last call

 Audience matching uses the attribute values present when the paywall is evaluated, so set or update properties before the moment that matters — right after login, after a purchase, or whenever the underlying fact changes. A stale `plan` value will route a user into the wrong segment. Make the update part of the same flow that changes the data. 

## Personalize the paywall itself

 The same properties you target on can be dropped straight into paywall copy. Reference them as [template variables](https://superwall.com/docs/variable-reference) so a paywall can greet someone by name, call out the plan they're on, or reflect their currency and locale — without designing a separate paywall for every variation. One template, personalized per user at display time. 

[ Browse template variables ](https://superwall.com/docs/variable-reference) 

## What you can do with it

* Show lapsed subscribers a win-back offer while new users see your standard paywall.
* Gate a premium price test to high-intent users and leave everyone else untouched.
* Branch onboarding and paywall flows by referral source, plan tier, or signup cohort.
* Personalize headlines and pricing copy with the user's name, plan, or local currency.
* Adjust any of the above from the dashboard the moment a segment behaves differently — no release cycle.

## Get started

 Set your first attributes with [ setUserAttributes](https://superwall.com/docs/ios/quickstart/setting-user-properties), then build an [ audience](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns-audience) around them in a campaign. Follow the [quickstart](https://superwall.com/docs/ios/quickstart/install) to install the SDK, or [create a free Superwall account](https://superwall.com/sign-up) and start targeting by what you already know. 

[ Set your first attributes ](https://superwall.com/docs/ios/quickstart/setting-user-properties) 

##  More features 

| [ Apple Search Ads Attribution ](https://superwall.com/features/search-ads-attribution) | Connect Apple Search Ads spend to real subscription revenue — see which campaigns and keywords actually drive paying users, and segment paywalls by them. | Analytics |
| ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| [ Conversion Stats ](https://superwall.com/features/conversion-stats)                   | See exactly where your funnel leaks — from paywall open to checkout — and which paywall, price, and placement actually converts.                          | Analytics |
| [ Filters & Breakdowns ](https://superwall.com/features/filters-and-breakdowns)         | Slice your paywall and revenue data by placement, segment, and more — answer hard questions in the dashboard without exports, SQL, or a data analyst.     | Analytics |

 Nothing matches. 

##  Book a demo 

 Tell us a little about your app and we'll match you with the right person. 

* A personalized walkthrough of the paywall builder
* Guidance on your monetization and pricing strategy
* Custom implementation recommendations for your stack
* A look at proven paywall templates
* Revenue-optimization best practices

###  Thanks — opening your calendar 

 If a new tab didn't open, [click here to pick a time](#). 

Get started

##  Build, test, and optimize your paywalls 

Join 10,000+ apps using Superwall to grow subscription revenue without shipping an app update.

[Start for free](https://superwall.com/sign-up) 

No credit card required
