Setting User Attributes

By setting user attributes, you can display information about the user on the paywall. You can also define rules in a campaign to determine which paywall to show to a user, based on their user attributes.

You do this by passing a [String: Any?] dictionary of attributes to Paywall.setUserAttributes(_:):

extension PaywallService {
  static func setUser() {
    guard let user = Auth.shared.user else {
      return
    }

    var attributes: [String: Any] = [
      "name": user.name,
      "apnsToken": user.apnsTokenString,
      "email": user.email,
      "username": user.username,
      "profilePic": user.profilePicUrl
    ]
    Paywall.setUserAttributes(attributes)
  }
}
- (void)setUser {
  NSDictionary *userAttributes = @{
    @"name": [user name],
    @"email" : user.email
  };
  [Superwall setUserAttributesDictionary: userAttributes];
}

This is a merge operation, such that if the existing user attributes dictionary already has a value for a given property, the old value is overwritten. Other existing properties will not be affected.

You can reference user attributes in campaign rules to help decide when to display your paywall. When you configure your paywall, you can also reference the user attributes in its text variables. For more information on how to that, see Configuring a Paywall.

In the future, you'll be able to use user attributes to:

  • Email/notify users about discounts.

What’s Next
Did this page help you?