User Properties in Mobile SDK

Zeta’s Mobile SDK provides a flexible way to capture user properties that help personalize engagement, track behaviors, and optimize experiences. By default, the SDK supports identification and collection of standard properties (such as user ID, email, and phone number).
In addition, you can extend the SDK to collect custom user properties. This allows you to define and capture attributes relevant to your unique business and user context—going beyond the defaults to model what truly matters for your customer experience.
Standard User Properties
The SDK provides built-in support for collecting commonly used properties:
Category | Property | Description |
|---|---|---|
Identity |
| Your app’s stable user identifier. Setting this starts an identity session. |
Identity |
| Display and structured names. |
Identity |
| Optional source tag for where/how the user was created. |
Lifecycle |
| ISO‑8601 UTC timestamp when the user signed up. |
Contact |
| Email address; supports additional info (subscription status, preferences, timestamps, custom contact properties). |
Contact |
| Phone number; supports additional info (type, opt‑in, timestamps, custom contact properties). |
Device | Push token | Device push token for notifications. |
Device |
| Apple advertising/vendor identifiers, if available and permitted. |
Location |
| Last known coordinates and capture state. |
System |
| Zeta’s unique user identifier; retrievable from the SDK and via delegate. |
These properties are typically set during the user identification process.
For more details, see User Identification in the iOS SDK.
Collecting Custom Properties
Every business has unique attributes it needs to capture, such as loyalty tier, preferred language, subscription type, or even app-specific behaviors.
The SDK supports this through custom user property collection. You can define any key-value pair and attach it to the user profile.
Example (iOS SDK – Swift)
CODE
|
|---|
Example (iOS SDK – Objective-C)
CODE
|
|---|
Best Practices
Keep keys consistent: Define a schema for your property names (e.g., snake_case or camelCase).
Use meaningful values: Ensure values are descriptive and can be used effectively in segmentation.
Avoid sensitive data: Do not send sensitive identifiers such as passwords or financial details.
Test before release: Validate custom properties in your staging environment before going live.