User properties
Standard and custom user properties collected by the Zeta Marketing Platform (ZMP) mobile SDKs.
User properties are attributes associated with a user's profile in ZMP. They are used for audience segmentation, campaign personalization, and identity resolution. Your development team configures which properties the SDK sends to ZMP during integration.
On this page
Standard user properties
The SDK supports the following standard properties across platforms:
| Property | Description | Type |
|---|---|---|
uid | Your app's internal user identifier. Used for identity matching. | String |
emailId | Email used as a ZMP identifier. Populates the Email field under ZMP Identifiers. | String |
email | Email as a contact channel, with optional subscription and preference metadata. | Object |
firstName | User's first name. | String |
lastName | User's last name. | String |
name | User's full display name. | String |
phone | Phone number as a contact channel, with optional metadata. | Object |
signedUpAt | Date the user signed up, in ISO 8601 format (UTC). | String |
source | Where the user was acquired (for example, "organic", "referral", "campaign_xyz"). | String |
| Device token | The APNS or FCM push token. Collected automatically by the SDK when your app passes it. | Data |
| IDFA | iOS Identifier for Advertisers. Accepted if your app provides it after ATT consent. | String |
| IDFV | iOS Identifier for Vendors. Available without ATT consent. | String |
| GAID | Android Google Advertising ID. Read by the SDK when available. | String |
| Location | Latitude, longitude, and foreground/background flag. Sent when your app provides location data. | Object |
Note: The distinction between
emailIdandemailIdwhen the email should serve as the user's unique identifier in ZMP. Useuidis already an email address, theemailIdvalue is ignored.
Custom properties
Your development team can send arbitrary custom properties to ZMP using the SDK's additionalProperties field. Custom properties appear under the User Properties section of a contact's profile in ZMP.
Custom properties are useful for:
- Personalization: store the user's preferred language, product category, or tier.
- Segmentation: create segments based on business-specific attributes (loyalty tier, subscription plan, account type).
- Campaign targeting: use custom properties as triggers or filters in Experience Builder campaigns.
Custom properties support the following value types: strings, numbers, booleans, arrays, and dictionaries.
Note: Custom property names and values are defined by your development team. Coordinate with them to ensure the properties you need for segmentation and personalization are being collected.
Platform support matrix
| Property | iOS | Android | React Native | Flutter |
|---|---|---|---|---|
uid | Yes | Yes | Yes | Yes |
emailId | Yes | Yes | Yes | Yes |
email (contact channel) | Yes | Yes | Yes | Yes |
firstName / lastName / name | Yes | Yes | Yes | Yes |
phone | Yes | Yes | Yes | Yes |
signedUpAt | Yes | Yes | Yes | Yes |
source | Yes | Yes | Yes | Yes |
| Custom properties | Yes | Yes | Yes | Yes |
| Device token | Yes | Yes | Yes | Yes |
| IDFA | Yes | N/A | iOS only | iOS only |
| IDFV | Yes | N/A | iOS only | iOS only |
| GAID | N/A | Yes | Android only | Android only |
| Location | Yes | Yes | Yes | Yes |
Best practices
- Set identity early. Pass
uidoremailIdto the SDK as soon as the user logs in. This starts the identity session and ensures subsequent events are attributed to the correct profile. - Clear identity on logout. When the user signs out or switches accounts, call the SDK's clear method. This prevents events from one user being attributed to another.
- Use consistent identifiers. If your backend uses email as the primary identifier, use
emailIdconsistently across mobile and other channels. Inconsistent identifiers can lead to duplicate profiles. - Keep custom properties lean. Only send properties you plan to use for segmentation, personalization, or reporting. Avoid sending large data payloads or rapidly changing values.
- Coordinate with your development team. The properties available in ZMP depend entirely on what the SDK is configured to send. If you need a new property for targeting, your development team needs to add it to the SDK integration.
See also
- Identity resolution: how ZMP merges profiles from multiple identifiers.
- Audience segmentation: using properties to build audience segments.
- Contact Management (iOS Developer Guide): SDK integration details.
- Contact Management (Android Developer Guide): SDK integration details.
