Profiles
- What is a profile?
- Profile attribute scope
- Auto vs. custom profiles
- Known vs. anonymous profiles
- Targeting user profiles
- Personalization via profiles
What is a profile?
Profiles are aspects or qualities of your app users that may be included as criteria in audiences. Profiles are simply key-value pairs that may contain text, integers, or dates, such as gender, subscription status, favorite category, or most-visited page.
Localytics automatically captures several autoprofiles, which are updated every time a user has a session, in order to store the most up-to-date information (that is, Last Session Date).
Additionally, you can set custom profiles via the SDK (iOS or Android), the Profile API, or the Profile Import API. For more information, see "User Profiles" in the iOS SDK or Android SDK, Profile API Getting Started, and Imports API - Profile Imports in the Developer documentation.
It’s worth noting that unlike events, which are timestamped when they are recorded and stored, profiles only reflect the current state of each user.
So, for example, when a user purchases an item, your app would record an event called Purchase to record each occurrence, while simultaneously your app would update the Last Purchase Date profile in order to keep that information up-to-date.
Tip: It's important to remember—the data you choose to collect as user profile data may be considered personal data to your users. Great care should be taken to ensure your user's privacy rights are protected.
To understand your role in user privacy, review User privacy and the tools Localytics offers to help you build privacy into your integration.
Profile attribute scope
In cases where there are multiple apps with which a single user may interact (that is on their phone, tablet, and laptop), it is possible to scope profile attributes across all of your apps or to a single app. These are referred to in the Profiles dashboard as "Org scope" and "App scope," respectively.
Demographic information, such as language, age, or hometown, is typically scoped at the organization level since it won’t vary based on which app your user is using. Conversely, information such as last app version or location enabled is specific to one app, so they are scoped at the app level.
Auto vs. custom profiles
Localytics automatically collects a few attributes to help power your engagement.
Here’s a full list of all of the information we track out-of-the-box:
Scope | Profile Attribute |
Description |
---|---|---|
App/Org | User type | Localytics detects whether a profile is known or anonymous. |
App/Org | Last session date | Localytics detects the last observed session per profile. |
App | Last CustomDimensionName * |
For each custom dimension tracked by your app, Localytics will preserve the last observed value per profile. |
App | Last app version |
For the last logged session per profile, Localytics captures the app version. If a user updates the app subsequently without recording a session, this attribute may not reflect current app version. |
App | Last OS Version | Localytics detects the last OS version being used by a profile. |
App | Total sessions | Localytics computes the total number of observed sessions per profile. |
App | First session date | Localytics detects the first observed session per profile. |
App | Push enabled | For the last observed session per profile, Localytics detects whether push messaging was enabled or disabled. If a user updates this subsequently without recording a session, this attribute may not reflect current status. |
App | Last push opened date | For the last push opened, Localytics detects the date the profile opened it. |
App | Last in-app displayed date | For the last in-app displayed, Localytics detects the date the profile opened it. |
Org | Last country | Localytics detects the last country a profile was in. |
Org | Last time zone | Localytics detects the last time zone a profile was in. |
Org | Last city | Localytics detects the last city a profile was in. |
Org | Language | Localytics detects the last language a profile was using. |
* It’s worth noting per the Last CustomDimensionName
that Localytics automatically tracks a profile of the most recent state of each custom dimension. Custom dimensions are captured with every session and event, so the profile is updated each time a value changes.
You may also store any number of custom profiles (that is, information not available out-of-the-box) about a user. Some common examples are number of videos shared, last item purchased, and subscription status.
Known vs. anonymous profiles
Profiles are specific to each individual user of your app, so they are associated with an identifier called the customer ID.
When Localytics sees a new device using your app for the first time, the SDK creates a random alphanumeric identifier with which the information is stored.
Then, when users log in and identify themselves, your app may set the customer ID to a specific value, such as their email address, username, or a CRM identifier already being used by your team. This makes it easier to merge data with any other systems of record using your main identifier as the common key.
Note: If the identifier contains any personal data or identifying information, we strongly recommend you hash the identifiers before setting them as customer ID. For more information, see User privacy.
The two types of customer ID’s are referred to as anonymous and known, respectively.
It’s worth noting that a new known customer ID will not automatically inherit the previous anonymous identifier—it is necessary to ensure that your app resets any relevant values at that time.
Targeting user profiles
Profiles help you create more targeted and personalized engagement based on your users’ current profile values. To better use these profiles, you’ll want to understand the available filters and their uses.
Filter | Use | Example |
---|---|---|
is one of | Selects all users whose profiles match one of the selected values | People where Favorite is one of shoes, purses, jewelry |
is none of | Selects all users whose profiles do not match any of the selected values | People where Favorite is none of shoes, purses, jewelry |
< | Selects all users whose profiles data is less than the selected value | People where Value < 100 |
<= | Selects all users whose profiles data is less than or equal to the selected value | People where Active Minutes <= 100 |
> | Selects all users whose profiles data is greater than or equal to the selected value | People where Level > 10 |
>= | Selects all users whose profiles data is greater than or equal to the selected value | People where Purchases >= 1 |
is between | Selects all users whose profiles data is between two values |
People where Subscribe Date is between 2020-01-01 and 2021-01-01 |
is defined | Selects all users who have defined the profiles key | People where Favorite Category is defined Shoes |
is not defined | Selects all users who have not defined the profiles key |
People where Subscription Date is not defined |
Note: Profiles may store sets of information. For example, a single profile of Linked Social Media could store {Facebook, Instagram, Twitter} and users will be targetable based on each individual item in the array.
Personalization via profiles
You'll get a better return on the messages you send if they're personalized. Localytics powers personalization by allowing you to store individual user profiles, such as first name, favorite category, or items in cart.
Personalization utilizes the open-source templating language Liquid. For more information, see Using Liquid in push messages.
Once your profile attributes have been communicated to Localytics, you can personalize messages directly in the Message Builder:
-
In the upper-right corner of the Message Body field, select the Insert Profile Field icon and then select a profile attribute from the drop-down list.
You can select any available profile attribute to insert it into your message. The scope is set automatically.