This article explains advanced settings for Feature tagging in your mobile application and helps ensure accurate analytics. Advanced settings include modifiers and attributes, which refine Feature rules and improve the accuracy of collected data.
Visit the Pendo Academy for a video on advanced settings for mobile Feature tagging.
Modifiers versus attributes
Modifiers and attributes work together to refine Feature rules and improve data accuracy. The following table summarizes the differences between these settings and when to use each:
Setting type | What it does | When to use | Example scenario |
Attributes | Defines specific characteristics of a Feature, such as text labels, positions, or IDs. These characteristics determine how Pendo identifies each Feature. |
Default rules don't accurately identify your Features. Your Features have unique, static, or localization-safe characteristics you can reliably tag. |
Buttons uniquely identified by text ("Sign In") or a stable ID ("login_button"). |
Modifiers | Adjusts data collection behavior without directly changing the rules used to identify Features. Modifiers make the data collection more flexible. |
Feature rules are correct, but data collection needs flexibility. Features exist in multiple locations or more dynamically. |
A button that changes position in a dynamic list or a navigation menu present on every app screen. |
When to use advanced settings
The default feature rule is called Predicate, and it derives its value from the Feature's positional attributes and its hierarchy within your app. If these default attributes aren't accurate or sufficient for identifying a Feature precisely, or if the Feature data collection needs additional flexibility, use advanced settings to improve your selection.
There are various scenarios that might require advanced settings when tagging Features, such as:
- Multiple Features highlighted. For accuracy issues in the tagging tool, such as highlighting the entire navigation bar or multiple elements.
- Unexpected Feature traffic. Too much or too little traffic can indicate inaccurate selection.
- Interrupted analytics. If analytics suddenly stop, update your tags.
- Localized apps and dynamic buttons. It’s common for apps to be localized and buttons to dynamically shift on-screen.
Access the advanced settings
Advanced settings for Features are located in a Feature's details within the Visual Design Studio. To get there:
- Go to Product > Pages, then select the Page the Feature is located on.
- Select Manage Page in the top-right corner of the page to open the designer.
- In the Tagged Features table, hover over the relevant Feature row, then select the edit icon.
- Open Advanced settings.
Apply modifiers
Use modifiers if your current Feature rules accurately identify the element, but you want more flexible or comprehensive data collection.
A modifier adjusts how Feature data is organized, collected, or displayed without directly impacting the Feature rule itself. These settings customize data handling for analytics and reporting purposes. There are three available options:
- App-wide
- Ignore index in list
- Ignore bundle name
App-wide
This modifier is used for Features that appear across your mobile app, such as on the navigation menu or a tab bar button. App-wide lets Pendo collect click events for these Features regardless of the Page tagged in your app.
As a best practice, tag the app-wide Feature from the home screen or use a naming convention to help you and others easily locate it. For example, Info (tagged on Home)".
Common use cases include:
- Navigation menus or tab bars. When a Feature is present no matter where you go in the app.
- Global feature interactions. When you want to track user interactions regardless of the page they're on.
Ignore index in list
This modifier ignores the location (index) of Features within a list, allowing you to reliably track user interactions even if the Feature position changes.
When enabled, choose one of the following options based on your use case:
- Track clicks for a specific Feature within a list, regardless of its location in the list. Use when you want analytics for a particular list item or button, even if its position dynamically changes.
- Track any clicks within the list, regardless of which Features is clicked. Use when you're interested in general interaction with any part of the list, rather than a specific item.
Common use cases include:
- Dynamic lists. Content or data tables that frequently shifts or updates positions, ensuring consistent data collection.
- Permission-based list views. Lists or tables where items appear or disappear based on user permissions, yet interactions still require consistent tracking.
- List interactions. Understanding overall engagement within a dynamic list rather than focusing exclusively on individual static Features, or for guide activation after selecting a list item.
Ignore bundle name (iOS-only)
If you enable this setting, the bundle name, which is unique to iOS applications and serves as the app's identifier in the Apple App Store, is ignored.
Common use cases include:
- White-labeled apps. Ignoring the bundle name ensures that analytics and reporting treat all versions of the app as one entity.
- Development environments. Ignoring the bundle name helps bring together data from all variations of the same app (like production, development, and testing).
Modifier details
Rule name | Description | Category | iOS or Android | Safe for positionally dynamic elements? |
Localization safe? |
App-wide |
Collects clicks for this Feature from all pages and prevents the need to tag it on other pages. |
Modifier |
Both |
Yes |
Yes |
Ignore index in list | Ignores the position of this Feature in its list. | Modifier | Both | Yes | Yes |
Ignore bundle name | Ignores the bundle name. The bundle name is unique to iOS applications and serves as the app's identifier in the Apple app store. | Modifier | iOS | Yes | Yes |
Use attributes
Attributes define the specific characteristics Pendo uses to identify a mobile Feature. Sometimes, automatically selected attributes might not precisely identify your Feature. Use attributes when you need to refine your Feature rules by explicitly selecting characteristics unique to the Feature.
There are three categories of attributes:
- Positional. Attributes that describe where a Feature is located and or its spatial arrangement within the application.
- Text-based. Attributes identified by textual information, like labels or descriptions.
- General. Attributes that aren't tied to specific language translations or spatial arrangements.
Positional attributes
Positional attributes identify Features based on their spatial arrangement within a mobile application.
Tip: Rely on positional attributes only if your elements are static, meaning they're consistent in their position across user permissions, user sessions, or other conditions.
Text-based attributes
These attributes provide information about displayed text, such as labels or descriptions.
Tip: For dynamic or localized texts, where your app might be built in multiple languages, you need to know whether the text for the Feature changes based on different builds or user settings. If it does, then be careful when tagging Pages and Features. It's recommended to find other tags to use that are text-independent.
Use text-based attributes only if your app maintains a single language consistently.
General attributes
General attributes are localization-safe and not positionally oriented. They include:
- Action
- Accessibility identifier
- View tag
- ID
- Image name
Note: General attributes are preferred to help the SDK recognize elements reliably.
Attribute details
Not all attributes appear for all Features. Each Feature has a different set of attributes.
Rule name | Description | Category | iOS or Android | Safe for positionally dynamic elements? |
Localization safe |
Action | Action triggered by user tap or click on the Feature. | General | Both | Yes | Yes |
Text | Display text of the Feature. | Text | Both | Yes | No |
Accessibility hint | Description of action taken that aids accessibility and user understanding. | Text | iOS | Yes | No |
Accessibility label | Descriptive text for the Feature that aids accessibility and screen readers. | Text | Both | Yes | No |
Accessibility identifier |
Text for identifying the Feature, which aids accessibility and testing. |
General |
iOS |
Yes |
Yes |
Index |
Position of the Feature within its parent. |
Positional |
Both |
No |
Yes |
View tag |
Identifier for the Feature that simplifies referencing and manipulation in code. |
General |
Both |
Yes |
No |
Child element texts |
Use this attribute if the texts of the child elements are unique on this page. |
Text |
Both |
Yes |
No |
Cell row |
Row position inside the table. |
Positional |
iOS |
No |
Yes |
Cell section |
Section position inside the table. |
Positional |
iOS |
No |
Yes |
Image name | Name of the image asset. | General | iOS | Yes | Yes |
ID | Unique identifier assigned by the developer in the code. | General | Android | Yes | Yes |
View controller | The container element of the Feature within the app’s screen hierarchy. | General | iOS | Yes | Yes |
Feature class |
Class name of the Feature. |
General |
Both |
Yes |
Yes |
Icon code |
Unique value assigned to the icon in the font. |
General |
Both |
Yes |
Yes |
Pendo tag |
Unique identifier for the element set by the developer in the code. |
General |
Android |
Yes |
Yes |
Selectable |
The element can be selected. |
General |
Android |
Yes |
Yes |
Toggleable |
The element can be turned on and off using a toggle button. |
General |
Android |
Yes |
Yes |
Editable |
The element’s text can be edited. |
General |
Android |
Yes |
Yes |
Role |
The element's role. |
General |
Android |
Yes |
Yes |
Hierarchy of parent IDs |
Identifiers of parent elements in the feature's hierarchy. |
General |
Android |
Yes |
Yes |