Understanding the different types of User Attributes

This section provides details on user attributes

User attributes are user-specific information that you can pass through your mobile application and it can be used to segment your user base, thanks to the Audience feature. Purchasely offers different types of Built-in User Attributes and also lets you create Custom User Attributes.

The different types of attributes are:


Built-in Native attributes

This set of attributes are built-in (automatically gathered by the SDK) and concern the device, the app or the users.

NameExplanationSDK requirement
App versionYour application version the user currently using. Eg: 3.6.1.
Device typeThe user device type. It will be one of the following: Phone, Pad, TV, Computer, Car and unknown.
LanguageThis parameter is generally defined at the device level, but can be overriden at the app level in the phone settings.
App language: en,fr,ja.
Store CountryUser iOS store country:

JPN,USA,RUS.
Only for iOS for SDK versions < 4.4.0.

iOS & Android for SDK versions ≥ 4.4.0
Store nameApp store name: Apple App Store, Google Play Store.
OS versionUser device OS version Eg: 17.3.1.
SDK versionPurchasely SDK version Eg: 4.2.1.
Anonymous idIf the user didn't create an account, Purchasely creates anonymous id.
This attribute is meant to be used rather for testing purposes to target a specific anonymous user.
User idUser id assigned by the application. It's created when the user creates an account in your application.
Is logged inIf the user has already created an account in your app or not.
Country(IP)User location country determined from the IP address.
Cumulated revenue in USDThe cumulated revenue for expired and active subscription. The currency is in dollars only.4.4.0

Built-in Engagement Attributes

SDK requirement: 4.2.0 and above

These attributes correspond to data about the user engagement in your application. The elements we take into account are app sessions, interaction with paywalls and placements.

You can leverage them to determine how engaged is a user how they've been exposed to paywalls and screens managed by the Purchasely SDK.

NameExplanationSDK requirement
App sessionsNumber of times the app was launched by the user. A new session is counted:

- When the SDK is initialized (restarted after being killed by the user or the operating system).
- When the application has been in background for more than 30 minutes
4.2.0
Consecutive days openedTotal number of days the user visited consecutively, if they missed one day then the counter will restart.4.2.0
Number of paywalls / screens dismissedTotal number of paywalls or other screens (created in Purchasely paywall builder) was closed by the user.4.2.0
Number of paywalls / screens displayedTotal number of paywalls or other screens(created in Purchasely paywall builder) was displayed to the user.4.2.0
Last app session dateIt is the latest date and time there was an activity in the application.4.2.0
Last paywall / screen dismissedIts the latest paywall screen that was closed by the user.4.2.0
Last paywall / screen dismissed dateIts the date and time latest paywall screen that was closed by the user.4.2.0
Last paywall / screen displayedIts the latest paywall screen that was displayed to the user.4.2.0
Last paywall / screen displayed dateIts the date and time latest paywall screen that was displayed to the user.4.2.0
Last paywall convertedIt is the paywall from which user started their subscription or trial.4.2.0
Last placement convertedIt is the placement from which user started their subscription or trial.4.2.0
Last placement displayedIt's the latest placement that was displayed to the user.4.2.0

Built-in Active Subscription Attributes

SDK requirement: 4.2.0 and above
OS Version requirement: iOS 15 and above

These attributes allow you to target any subscribers that are active at the given moment.

NameExplanationSDK requirement
Active offer typeThe type of special offer the user is enjoying right now. It can be either one of the following:

Free trial: User is in free trial

Promotional Offer: User is benefitting from a promotional offer.

Intro Offer: User is benefitting from a discounted introductory price (not free).

Promo code: User has redeemed a Promo code and the associated promotion is still valid.

None: User is paying the full price (regular price) for the subscription.
4.2.0
Active planThe name of the plan the user is currently in and actively renewing.

It is either one of the plans you have created in products and plans in the Purchasely console.
4.2.0
Active promotional offerThe name of the promotional offer (if any) the user is currently benefitting.

If the value is set, the attribute Active offer type will be set to Promotional offer.

It is either one of the promotional offers created in the products and plans in the Purchasely console.
4.2.0
Has active subscriptionIf the user has an active subscription.

It can be either true or false.
4.2.0
Has expired subscriptionIf the user had a subscription in the past.

It can be either true or false.

To target lapsed users, you will need to build an audience combining Has active subscription = false.

and

Has expired subscription = true.
4.2.0
Has non consumable (or lifetime sub)If the user has purchased non consumable. This type of plan is also used to model Lifetime subscriptions.

It can be either true or false.
4.2.0
Start dateThe start date and time of the subscription (= time of the initial purchase)4.2.0
Next renewal dateThe date and time of the next billing of the user subscription.

If the user is in Free trial or Intro offer, the next renewal date will be filled in with the end date of the Free trial or Intro offer.
4.2.0
Subscription statusThe status of the subscription. It can be either one of the below:

Auto Renewing: Subscribers with an active auto-renewing subscription.

Auto Renewing canceled: Subscribers who have canceled the auto-renewing of their subscription.

Grace period: Subscribers who are past their billing date but still enjoying their premium features.
4.2.0

Built-in Expired Subscription Attributes

SDK requirement: 4.4.0 and above
OS Version requirement: iOS 15 and above

These attributes allow you to target users that have expired at the given moment.

🚧

Expired subscription attributes limitations

The expired subscription attributes will not be set in the following cases:

  • Subscriptions that expired before the integration of Purchasely into your app.
  • Subscriptions that expired after the integration of Purchasely into your app but haven't been imported.

In these cases, only the attribute Has expired subscription will be set to true, as it is computed from the local receipt. The other attributes will not be set.

To summarize, these attributes can be leveraged to win back subscribers who churned recently, rather than to win back any lapsed subscribers in the history of your app.

📘

Expired subscriptions

These attributes can be set and filled-in even for users who still have an active subscription. If the user has terminated their subscription, then resubscribed later, the first subscription will be considered as an expired subscription. Even if the user resubscribed to the same plan.

If a user has several expired subscription, only the last one will be reflected in the attributes.

However, the Expired Sub. Cumulated Revenue corresponds the sum of all the revenue generated by each expired subscription into consideration.


NameExplanationSDK requirement
Has expired subscriptionIf the user had a subscription in the past.

It can be either true or false.

To target lapsed subscribers, you will need to build an audience combining Has active subscription = false.

and

Has expired subscription = true.
4.2.0
Expired sub. StatusThe lapsed subscription status. It will be either one of the following:

Onhold: The user is in the billing retry state.

Deactivated: The user voluntarily terminated their subscription.

Revoked: The user requested for the refund and revoked their subscription.

Paused: The user has paused the subscription instead of terminated it. It is available only for Android users.

Unpaid: The billing retry has ended.
4.4.0
Expired subscription offer typeThe offer type of the expired subscription when it got terminated. It can have one of the following values:

Free Trial: User was in Free Trial.

Promotional Offer: User was benefitting from a promotional offer.

Intro Offer: User was benefitting from a discounted introductory price (not free)

Promo Code: User was benifiting from a Promo Code.

None: User was paying the full price (regular price) for the subscription
4.4.0
Expired subscription planThe name of the plan for which the user's subscription expired or its the last subscription the user had. The value is one of the plans you have created in Products and Plans in the Purchasely console.4.4.0
Expired subscription promotional offerThe name of the promotional offer the user had before their subscription expired.

If the value is set, the attribute Expired subscription offer type will be set to Promotional offer.

The value is the promotional offers you have created in the products and plans in the Purchasely console.
4.4.0
Expired subscription Start dateThe start date of the last subscription the user had.4.4.0
Expired subscription Expiry dateThe exact date of the user subscription expired.4.4.0
Expired subscription duration (days)The duration of the subscription, from the start date to the end date, in days.4.4.0
Expired subscription duration (weeks)The duration of the subscription, from the start date to the end date, in weeks.4.4.0
Expired subscription duration (months)The duration of the subscription, from the start date to the end date, in months.4.4.0

Custom Attributes

Custom User Attributes are additional user properties that can be injected by the app into the Purchasely Platform through an API of the SDK. These custom user properties can be collected by the app during the onboarding or when users interact with the app.
Eg: gender, sign-up date, age, intent, current location, contents read, favorite team

More details on how to manage Custom User Attributes and manipulate them in the app code


What’s Next

More details on how to leverage User Attributes to create Audiences