Segments
Cohorts or Groups of users based on data collected and sent to OneSignal.
A segment gives you the ability to group and target users with more personalized and engaging messages. You can create specific audiences based on multiple data filters, such as activity, country, language, Data Tags, etc.
Segments are dynamic, which means they update automatically and continuously once created. As users interact with your app or website, they may be added to or removed from segments without any additional setup or tracking on your end, depending on the filters used.
Segments Count Opted-In Subscriptions
The counts you see are the number of subscribed or opted-in Push, SMS, and Email subscriptions.
Segments used for Journeys and In-app Messages will include the users and opted-out subscriptions.
There is currently not a way to get the counts of unsubscribed subscriptions with segments. Use the Export CSV of Players API to get this data.
Create Segments
Segments can be created from the dashboard, from the Create segment API endpoint, or by uploading a CSV file.
Creating Segments Through the Dashboard
In Audience > Segments select New Segment.
Add Filters
Combine available filters to create a segment. Not all platforms support each filter type, and not all filters have the same options.
For example, select the Last Session filter for the last time a user visited your app or website.
Set this to be "greater than" 7
days. This will tell us how many users have not returned to the site or app in over 7 days.
Segment filters in the dashboard editor
Filter | Description |
---|---|
FIRST SESSION | Mobile - The first date/time the user opened the app with OneSignal SDK active and valid network connection. Web Push - The first date/time the user subscribed to your site. |
LAST SESSION | The most recent date/time the user's device communicated with OneSignal servers. Updated when device opens the app on mobile or subscriber returns to the site and attempted to update again upon leaving the app / website. Does not update when app is in the background. |
SESSION COUNT | Mobile- The number of times the user's device has opened your app. Web Push - The number of times the user visited your website after not having the website open previously. |
USAGE DURATION | The total number of seconds the subscription has had your app open. |
LANGUAGE | User's preferred language. See Language & Localization for possible codes. |
APP VERSION | Version of your app gathered from Android Studio versionCode in your App build.gradle and iOS uses Identity Version or CFBundleShortVersionString in Xcode. |
DEVICE TYPE | Device operating system: Google Android, Huawei Android, iOS, Windows Phone, Chrome, Firefox, Safari, or Email |
USER TAG | Requires Data - Tags you have added to the user. See Data & Tags for more details. User Tags that exist on test users will automatically populate in the segment editor dropdown . |
LOCATION | Requires Data - Radius in meters from a particular geocoordinate (lat, long). |
ROOTED | Android - whether devices is rooted. |
COUNTRY | The ISO 3166-2 country code of the IP address detected on the user's device the last time it communicated with OneSignal servers. |
TEST USERS | Includes all test users that you have set up as a Test User. |
Creating Segments through the API
This API requires a paid plan.
The Create Segment
method is used when you want your server to create a segment. Just like creating a segment from the dashboard, you can pass in filters
with multiple "AND"
or ”OR"
operator's.
Filter | Description |
---|---|
first_session | Mobile: First date/time the user opened the app with an active OneSignal SDK and valid network connection Web: First date/time the user subscribed to your site |
last_session | Most recent date/time the user's device communicated with OneSignal servers. This is updated when a device opens the app on mobile or user returns to the site, and it attempts to update again upon leaving the app / website. This does not update when app is in the background. |
session_count | Mobile: Number of times the user's device has opened your app Web: Number of times the user visited your website after not having the website open previously |
session_time | Total number of seconds the user has had your app open |
language | User's preferred language (see Language & Localization for codes) |
app_version | Version of your app gathered from Android Studio versionCode in app build.gradle and iOS Identity Version or CFBundleShortVersionString in Xcode |
amount_spent | |
bought_sku | |
tag | Requires data: Data you have added to the user (see Data Tags for more details) (Data Tags for test users will automatically populate in the segment editor dropdown) |
location | Requires data: Radius in meters from a particular geocoordinate (lat, long) |
country | ISO 3166-2 country code of the IP address detected on the user's device the last time it communicated with OneSignal servers |
Delete Segments
Delete Segments through the Dashboard
In Audience > Segments, click the option button (three dots) to the left of the segment you want to delete. In the pop-up menu, select Delete. Deleting segments cannot be undone, so be certain that you no longer need the segment before deleting it.
Delete Segments using the API
The Delete segment method only deletes the segment itself, not the users within the segment. To permanently delete users within a segment, see Delete Users.
{
"name": "Segment 2",
"filters": [
{"field": "session_count", "relation": ">", "value": "1"},
{"operator": "AND"},
{"field": "tag", "relation": "!=", "key": "tag_key", "value": "1"},
{"operator": "OR"},
{"field": "last_session", "relation": "<", "hours_ago": "30"}
]
}
//Another Example
{
"name": "iOS, Android, Web",
"filters": [
{"field": "device_type", "relation": "=", "value": "iOS"},
{"operator": "OR"},
{"field": "device_type", "relation": "=", "value": "Android"},
{"operator": "OR"},
{"field": "device_type", "relation": "=", "value": "Web Push (Browser)"}
]
}
Filter AND Clauses
After adding your first filter, the Add filter button will create an "AND clause" which requires all users to fit into all filters combined with "AND clauses".
Under "Last Session" select Add filter and select Last Session again.
Set this to be "less than" 264
hours.
When a user has not visited the site in over 7 days they will enter into this segment AND after 264 hours (11 days) they will be moved out of this segment.
Filter OR Clauses
To combine multiple filters that do not depend on each other, click Add Or to separate groups of filters.
Select Add Or and select First Session "greater than" 3
days.
Now, the segment contains all users that "First Subscribed" over 3 days OR users that have not been back to the site in over exactly 10 days.
Name the segment something memorable like 7 Days Inactive Or Over 3 Days New
and select Create Segment.
Exclude segments
Choose which segment should not receive certain message campaigns or participate in Journeys. Common use cases for excluding segments is to avoid messaging users with irrelevant messaging, enforce messaging preferences, and support a broader strategy of managing message volumes. Excluding audiences will typically become more prevalent as you scale your messaging strategy when multiple campaigns, journeys, product and transactional messages are deployed.
Segment Options
Select the Options button next to the segment to do the following:
View users
Navigates to the Audience > Subscriptions page to view the user subscriptions contained in the segment.
Edit
Opens the segment editor. Same as clicking the segment directly.
Pause & Resume
Depending on your plan type you can pause segments to create more. If a segment is paused when trying to target it, the notification will fail.
Set as Default
The OneSignal Dashboard defaults to the "Subscribed Users" segment when sending messages. This can be changed by setting a "default segment".
A "default segment" will be the first segment selected when creating a message within the OneSignal Dashboard. This is to help both quickly target certain segments used frequently and help prevent mistakes if the segment is not changed before sending the message.
Duplicate
Creates a copy of the segment filters.
Exclude Segments
This an option that lets you choose which segment should not receive certain message campaigns or participate in Journeys.
Exclude Segments is an option that lets you choose which segment should not receive certain message campaigns or participate in Journeys. Common use cases for excluding segments is to enact messaging preferences– such as certain category topics that your Customers have subscribed to, support a broader and more comprehensive strategy of managing message volumes as well as adding priority logic to important campaigns or journey workflows. This tool will typically become more prevalent as you scale your engagement program when multiple campaigns, journeys, product and transactional messages are deployed.
FAQ
How do I add myself to a segment?
You first need to find your Subscription. The best way to do this is lookup your External ID. Then you can set it as a Test User and create a segment of Test Users with the Test Users filter, or you can set Tags and create a segment for the specific tags. See Find & Set Test Subscriptions for details on finding your device.
Segments Count Opted-In Subscriptions
The counts you see when editing a segment or viewing the list in the segments screen are the number of subscribed or opted-in push, SMS, and email subscriptions.
Segments used for Journeys and in-app messages will include the users and opted-out subscriptions.
There is currently not a way to get the counts of unsubscribed subscriptions with segments. Use the Export CSV of Players API to get this data.
Are segment counts accurate?
Once you reach over 80,000 Total Users, segment counts begin to be estimated in order to keep the dashboard running quickly and smoothly. To get the most accurate numbers, see the Delivery stats for the message sent to that segment.
What kind of in-app purchases are tracked and how can I import historical in-app purchases?
The OneSignal mobile SDKs will automatically track "Consumable" in-app purchases made while the OneSignal SDK is active in the app. Subscription based in-app purchases are not tracked.
To update a device's previously bought in-app purchases before the OneSignal SDK was added, use the Update user API to update the purchases
parameter.
Updated 25 minutes ago