Profiles/CRM
Profiles is a CRM for your users. With Profiles, you can:
- Find a user with any ID you have including email and phone number.
- Explore the full payment path of a user including billing issues, grace periods, and other events.
- Analyze user's properties such as subscription state, total revenue/proceeds, last seen, and more.
- Grant the user a subscription.
In a full table of subscribers, you can filter, sort, and find users. The state describes user state in terms of a subscription and can be:
User state | Description |
---|---|
Subscribed | The user has an active subscription |
Active trial | The user has a subscription with an active trial period |
Auto renew off | The user turned off auto-renewal. Check events for more info |
Subscription cancelled | The user cancelled a subscription. Check events for more info |
Trial cancelled | The user cancelled a trial |
Never subscribed | The user has never subscribed, i.e. he's a freemium user |
Billing issue | The user can't be charged |
Grace period | A user entered a grace period |
User properties
You can send any properties that you want for the user.
By default, Adapty sets:
- Customer user ID. Is a developer ID and can be any string
- Adapty ID. Internal ID of a user in Adapty
- IDFA
- Country. From IP address country of the user
- OS
- Device
- Created at. Profile creation date
- Last seen
For a better understanding of your user, we suggest sending at least your internal user ID or user email. This will help you to find a user.
After installing SDK, Adapty automatically collects user events from the payment queue and displays them in a user profile.
Custom attributes
You can see custom attributes that were set either from SDK or manually assign them to the user using the Add attribute button in the Attributes section on the profile page.
Grant a subscription
In a profile, you can find an active subscription. At any time you can prolong the user's subscription or grant lifetime access.
It's most useful for users without an active subscription so you can grant the individual user or a group of users premium features for some time. Please note that adjusting the subscription date for active subscriptions will not impact the ongoing payments.
Expires at must be a date in the future and can't be decreased ones set.
Profile record creation
Adapty creates an internal profile ID for every user. However, if you have your own authentication system, set your own Customer User ID, a unique identifier for each user in your system. In this case, Adapty will add this ID to the user profile, which will give you several advantages:
- All transactions and events will be tied to the same profile.
- You can find users by their customer user ID in the Profiles section and view their transactions and events.
- You can use the customer user ID in the server-side API.
- The customer user ID will be sent to all integrations.
If no customer user ID is passed to Adapty, Adapty will create a new additional internal profile ID in the following cases:
- When a user launches your app for the first time after installation and reinstallation.
- When a user logs out of your app.
This means that a user who installs, then uninstalls, and reinstalls your app may have several profile records in Adapty if no customer user ID is used. All transactions in a chain are tied to the profile that generated the first transaction — the "original" profile. This helps keep a complete transaction history — including trial periods, subscription purchases, renewals, and more, linked to the same profile.
A new profile record that generates a subsequent transaction, called a "non-original" profile, may not have any events associated with it but will retain the granted access level. In some cases, you will also see "access_level_updated" events here.
Here is an example of a non-original profile. Notice the absence of events in the User history and the presence of an access level.
Sharing access levels between profiles
When a Customer User ID tries to restore transactions or extend a subscription that is already associated with a different identified Customer User ID, you can control how Adapty responds by adjusting the Sharing paid access between user accounts dropdown in the Adapty Dashboard -> App settings -> General tab:
Enabled (default)
Identified users (those with a Customer User ID) can share the same access level provided by Adapty if their device is signed in to the same Apple/Google ID. This is useful when a user reinstalls the app and logs in with a different email — they’ll still have access to their previous purchase. With this option, multiple identified users can share the same access level.
Even though the access level is shared, all past and future transactions are logged as events in the original Customer User ID to maintain consistent analytics and keep a complete transaction history — including trial periods, subscription purchases, renewals, and more, linked to the same profile.
Transfer access to new user
Identified users can keep accessing the access level provided by Adapty, even if they log in with a different Customer User ID or reinstall the app, as long as the device is signed in to the same Apple/Google ID.
Unlike the previous option, Adapty transfers the purchase between identified users. This ensures that the purchased content is available, but only one user can have access at a time. For example, if UserA buys a subscription and UserB logs in on the same device and restores transactions, UserB will gain access to the subscription, and it will be revoked from UserA.
If one of the users (either the new or the old one) is not identified, the access level will still be shared between those profiles in Adapty.
Although the access level is transferred, all past and future transactions are logged as events in the original Customer User ID to maintain consistent analytics and keep a complete transaction history — including trial periods, subscription purchases, renewals, and more, linked to the same profile.
After switching to Transfer access to new user, access levels won’t be transferred between profiles immediately. The transfer process for each specific access level is triggered only when Adapty receives an event from the store, such as subscription renewal, restore, or when validating a transaction.
Disabled
The first identified user profile to get an access level will retain it forever. This is the best option if your business logic requires that purchases be tied to a single Customer User ID.
Note that access levels are still shared between anonymous users.
You can "untie" a purchase by deleting the owner’s user profile. After deletion, the access level becomes available to the first user profile that claims it, whether anonymous or identified.
Disabling sharing only affects new users. Subscriptions already shared between users will continue to be shared even after this option is disabled.
Apple and Google require in-app purchases to be shared or transferred between users because they rely on the Apple/Google ID to associate the purchase with. Without sharing, restoring purchases might not work upon subsequent reinstalls.
Disabling sharing may prevent users from regaining access after logging in.
We recommend disabling sharing only if your users are required to log in before they make a purchase. Otherwise, an identified user could buy a subscription, log into another account, and lose access permanently.
Which setting should I choose?
My app... | Option to choose |
---|---|
Does not have a login system and only uses Adapty’s anonymous profile IDs. | Use the default option, as access levels are always shared between anonymous profile IDs for all three options. |
Has an optional login system and allows customers to make purchases before creating an account. | Choose Transfer access to new user to ensure that customers who purchase without an account can still restore their transactions later. |
Requires customers to create an account before purchasing but allows purchases to be linked to multiple Customer User IDs. | Choose Transfer access to new user to ensure that only one Customer User ID has access at a time, while still allowing users to log in with a different Customer User ID without losing their paid access. |
Requires customers to create an account before purchasing, with strict rules that tie purchases to a single Customer User ID. | Choose Disabled to ensure that transactions are never transferred between accounts. |