Targeting by User Property
Learn how to target users based on their properties which allow you to determine what users see which content.
Table of Contents
In addition to page and domain targeting, you can target users based on their properties. This is one of the most powerful features of Appcues that gives you the ability to choose what users see which content. With user property targeting, you can pick and choose which users see certain messages based on specific traits that you send in to Appcues, like role, plan type, company, or other properties you send in to Appcues.
Using Properties
From the Settings page of each flow, you can select the flow's Audience. Under "Who should see this Flow?" you will find auto-properties, device properties, and your own custom properties.
Creating Your Criteria
The filtering UI is based on three inputs:
- The property you want to target.
- The match value that you'll match against.
- The comparator you'd like to use to check each user.
- A user value that your comparator will use in its check.
Choosing a Property
You can narrow down what type of property you're looking to target under the first dropdown in "Who should see this flow?"
Once you've chosen the property you want to, you may notice a placeholder in the user value field. This placeholder is the last value we received for your property. For example, if you chose "Email" as the property, you might see "jonathan@gmail.com" as a suggested value. That's to help you figure out what to expect as a proper value (e.g. a number, an email address, true/false, etc).
Note that you must enter values as case-sensitive and must be entered exactly as you send them in. Flows will not show otherwise, like in the instance of targeting "trial" for a user whose plan is "_Trial".
Here are the properties you can choose from:
- Flow: refers to your other Appcues flows, so you can target flows based on what other flows your users have or have not seen
-
Checklist: refers to other Appcues checklists, so you can target flows based on certain checklists being skipped, completed, in progress (at least one checklist item has been completed) or not started
- NOTE: When targeting a checklist based on the completion of a different checklist you may see that the original completed checklist re-appear after the completion and dismissal of the latest checklist. This happens because the checklists are shown until they are actively dismissed by the user.
- Event: refers to events that happen within your platform that you send into Appcues. Learn more about how to set up and use event targeting here.
- Language: refers to the end-user's browser language -- while Appcues does not provide translation services or automatically translate your content, you can create multiple versions of flows based on language and target them to the appropriate audience. Learn more about language targeting here.
- User property: refers to auto-properties, device properties, or custom properties you've sent into Appcues, specific to the end-user. Within the User Properties option, there are Auto, Device, and Your Property options.
- Group property: refers to the account-level properties you've sent into Appcues, specific to the end-user's account or wider user group. Learn more about group properties here.
Your Properties
Most properties that you'll be targeting by are "your properties", as in they're properties that are specific to your users and they're sent to Appcues by you. If you've installed Appcues manually, these user properties are passed to us through the Appcues.identify() call. Or, if you've installed Appcues via Segment, those properties are passed to Appcues through Segment's analytics.identify() call.
Device Properties
Even before you've installed the Appcues SDK and have begun sending your user properties to Appcues, you'll notice there a list of "device properties" in your account. While we won't be able to push content to your site before you've installed the SDK, you can start building content and targeting users with these properties. These are composed of properties that Appcues is able to extract about the current user's environment and automatically includes in every Appcues.identify() call, thus allowing you to target certain users based on this data. Device properties are automatically sent to Appcues by the end user's browser; here's a list of the device properties with descriptions of each:
Device type | This property indicates the device your users are viewing your platform on. You can target flows to users on desktop or mobile (which includes tablets) by selecting a specific device. |
Operating system | This property refers to the operating system your users are viewing your platform on. You can target flows to users on Mac, Windows, iOS, Android, other. This is especially helpful if you need to send updates or alerts to download system-specific add-ons, like an iOS or Android app. |
Browser | This property is the browser your users are viewing your platform in. Appcues works on all modern browsers (including IE 10+), but if your platform requires browser updates or upgrades you can target messages to users based on the browser they are in. |
Auto-Properties
Similar to "device properties", you'll see "auto-properties" listed in your account before installing the Appcues SDK. Again, we cannot push content to your site until you've installed the SDK but you can start building content and targeting users with these properties. Auto-properties are based off the current user's environment and are included in every Appcues.identify() call. Here's a list of the auto-properties with descriptions of each:
First Seen At | The time an end-user was first identified by Appcues. For timestamps after Appcues was installed on your app, you can use this property as a proxy for when the end-user signed up on your app, and create segments of "new users", "legacy users", etc. |
Is Anonymous | If a user is identified as an anonymous (non-logged in) user (see here for more details), this property will be true. Otherwise this value will not be present. So to target non-anonymous users you would use the doesn't exist operator: |
Last Page Title | This property indicates the title of the user's most recently visited page. This is the same title that appears in a browser tab for the page. |
Last Page URL | This property is the URL of the user's most recently visited page. For example, the value of this property would be https://studio.appcues.com/settings/account if you had been on your Appcues account page before visiting this page. This property is useful for targeting a user once they've left a certain page; a nice use case might be showing a flow after a user has left your billing page for some other page on the site. |
Current Page Title | This property indicates the title of the page where the user currently is. This is the same title that appears in a browser tab for the page. For example, on this page, the title property would be Targeting By User Property. |
Current Page URL | This property is the URL where the user currently is. For example, right now, the value of this property would be https://docs.appcues.com/en_US/user-experiences-targeting/targeting-by-user-property. |
Session Pageviews | This property tracks how many total pages on your site a user has visited. The count is reset if the user closes the browser or tab. This is intended to represent how many pages a user has viewed in a particular "visit". For example, if I were a new incoming user and visited the following pages: /home, then /features, then /pricing, then /features, then /about - the Session Pageviews property would be equal to 5. If I closed the window, returned to the site later on and visited /pricing, that value would be 1. |
Hostname | This property indicates the domain your users are viewing your page on. If hostnames look different across your customer accounts, you could target them either through Hostname targeting or URL targeting. |
Session Randomizer | The session randomizer allows you to target a random percentage of user sessions. To use it, set the comparator "less than" and then input a number from 1-100, which will be the percentage of sessions you'd like to sample. A session occurs every time a user goes to your site in a new browser window or tab. The best time to use this property is when you're soliciting responses from your users, but want to spread the responses over a period of time instead of receiving them all at once. |
Audience randomizer | A random number between 1 and 100 is assigned automatically the first time a user visits your app. Use this property to split an audience between two or more versions of an experience and compare performance. You can also use this property to limit the targeting of a single experience to only a portion of eligible users. Read more about this here. |
User Agent | This property contains relevant browser information for an end-user. It contains information about the web browser name, operating system, device type, and other info. You may need a decoder to parse a User Agent string. |
Updated At | The ‘Updated At’ user property is automatically updated with the current time when a user in your application is identified by Appcues. This property can be used to schedule flows by targeting them to specific start or end times. You can read more about this here. |
Last Content Shown At | The date when a flow was last shown to an end-user. Use this property to cap the rate at which a user can see a flow. |
Last Browser Language | The primary language setting on your end user's browser. Using this you can create multiple versions of flows based on language and target them to the appropriate audience. |
Ask Me Later Selected At | The date when a user clicked ‘Ask Me Later’ on the NPS survey. |
Clicked Update NPS Score | The date a user that has already submitted an NPS score selected the “Update Score” option and potentially changed their NPS score. |
Most Recent Feedback | The most recent NPS qualitative feedback a user has provided. |
Most Recent NPS Score | The most recent NPS quantitative score a user has provided. |
Prev NPS Score | The NPS Score that the user selected the last time they filled out the NPS survey. |
NPS Last Collected At | The most recent date when a user filled out the NPS survey. |
Prev NPS Score Collected At | The date when the user filled out the last NPS survey. |
Current Screen Title* | The title of the user’s most recently visited screen. |
Last Screen Title* | The title of the previously visited screen, last visited before Current Screen Title. |
App ID* | The Appcues Application ID GUID defined in Studio to represent individual apps inside of an account. |
App Version* | The version of the host application running the Appcues SDK, ex: “4.5.1”. |
Bundle Package ID* | The iOS Bundle ID or Android Package ID, usually reverse domain name format like “com.appcues.mobile”. |
Device Model* | The manufacturer model string for the device, ex: “iPhone13,3”. |
OS Version* | The OS string value of the current version like “15.4” on iOS or “31" on Android |
Do Not Track | Do Not Track is a web browser setting that requests that a web application disable its tracking of an individual user. For instance, if users reject a site’s cookies and this property will be set to true in Appcues. |
Local ID | A device-specific ID used to target anonymous users. It resets on a new session (new tab, new window). |
SDK Name | The name of the Appcues SDK integrated inside of the host application, ex: "appcues-ios" |
SDK Version | The version of the Appcues SDK integrated inside of the host application, ex: "1.0.2" |
Session ID | The GUID representing the current user session. |
User ID | The unique identifier we use to track your end users. |
*mobile-specific auto-properties
Choosing a Comparator
There are several different comparators you can choose from:
Equality
- Equals — "name equals Jane" matches only people named Jane.
- Doesn't equal — "name doesn't equal Jane" matches anyone not named Jane.
Note: if you would like to include or exclude more than one value here, you must use the list membership options (is one of or isn't one of)
Relative Size
- Is greater than — "days_since_signup is greater than 7" matches users who signed up over a week ago.
- Is less than — "days_since_signup is less than 30" matches users who've signed up within the past 30 days.
Inclusion
- Contains — "email contains @gmail.com" matches users with a Gmail email address.
- Doesn't contain — "email doesn't contain @outlook.com, @yahoo.com" matches any user who does not have an Outlook or a Yahoo email address.
Prefix/Suffix
- Starts with — "created_at starts with 2016" matches users with a created_at date of "2016-5-4" but not "2015-3-7".
- Doesn't start with — "created_at doesn't start with 2016" matches users with a created_at date of "2015-5-4" but not "2016-3-7".
- Ends with — "email ends with .io" matches users with an email address registered to the British Indian Ocean.
- Doesn't ends with — "email doesn't end with .io" matches users with an email address with addresses that aren't registered to the British Indian Ocean
Existence
Checking for existence is good when the properties you send to Appcues vary for each user or type of user. For instance, you may have "freemium" and "enterprise" users, and only enterprise users have an account rep, which you're passing to Appcues as a user property.
- Exists — "account_rep_name exists" matches users whose account rep's name is being passed to Appcues.
- Doesn't exist — "plan_type doesn't exist" matches users who are not passing a plan type to Appcues.
List Membership
- Is one of — "name is one of Jonathan, Jackson, John" matches people named "Jonathan" but not “Jane.”
- Isn't one of — "plan_type isn't one of Enterprise, Premium" matches users who are on a plan other than Enterprise or Premium.
A Note on "And", "Or" and “Not”
And, or and not operators can be a great way to create more targeted segments. However, when designing complex targeting rules, it can be difficult to determine whether the rules will target the right users. A good way to verify that your targeting rules are working as expected is to create your rules as a segment. When you save the segment, you can see a preview of the users who will be targeted. Check out the Segments Overview for more details on creating and using segments.