User Attributes are pieces of information you know about a user which could be demographics like age or gender, account-specific like plan, or even things like whether a user has seen a particular A/B test variation. It's up to you! It is basically a customer identity that you can reference across the customer’s app lifetime.
Implementing Login/Logout
- It's important to set the unique identifier when a user logs into your app. This is to unify the new user with an existing user, if any exists, and will help prevent creating unnecessary/stale users.
- Setting the Unique ID is a critical piece to tie a user across devices and installs/uninstalls as well across all platforms (i.e. iOS, Android, The Web). Set the unique ID as soon as the user is logged in using
setUniqueId()
. A Unique ID can be something like an email ID, a username (unique), a database ID or any Backend generated identifier which can be used to uniquely identify the user. - Do not set this for the user who is not logged in.
Login User
import { MoECapacitorCore } from 'capacitor-moengage-core'
MoECapacitorCore.setUniqueId({ uniqueId: "abc@xyz.com });
Note: The following values are not allowed in the UniqueID field: "unknown", "guest", "null", "0", "1", "true", "false", "user_attribute_unique_id", "(empty)", "na", "n/a", "", "dummy_seller_code", "user_id", "id", "customer_id", "uid", "userid", "none", "-2", "-1", "2"
Logout User
import { MoECapacitorCore } from 'capacitor-moengage-core'
MoECapacitorCore.logoutUser();
Updating User Attribute Unique ID
warning |
Critical Please make sure that you use |
In a scenario where you have to update the User Attribute Unique ID value for a logged-in user use the method setAlias()
as shown below:
import { MoECapacitorCore } from 'capacitor-moengage-core'
MoECapacitorCore.setAlias({ alias: "alias@xyz.com" });
Tracking User Attributes
The following reserved keywords are tracked:
- USER_ATTRIBUTE_UNIQUE_ID
- USER_ATTRIBUTE_USER_EMAIL
- USER_ATTRIBUTE_USER_MOBILE
- USER_ATTRIBUTE_USER_NAME # incase you have full name
- USER_ATTRIBUTE_USER_GENDER
- USER_ATTRIBUTE_USER_FIRST_NAME # incase you have first and last name separately
- USER_ATTRIBUTE_USER_LAST_NAME
- USER_ATTRIBUTE_USER_BDAY
- MOE_TIME_FORMAT
- MOE_TIME_TIMEZONE
- USER_ATTRIBUTE_NOTIFICATION_PREF
- USER_ATTRIBUTE_OLD_ID
- MOE_TIME_FORMAT
- MOE_TIME_TIMEZONE
- USER_ATTRIBUTE_DND_START_TIME
- USER_ATTRIBUTE_DND_END_TIME
- MOE_GAID
- MOE_ISLAT
- status
Use the following helper methods to set User attributes like Name, Email, Mobile, Gender, etc.
import { MoECapacitorCore, MoEProperties, MoEUserGender, MoEAppStatus } from 'capacitor-moengage-core'
MoECapacitorCore.setUserName({ userName: "John Doe" });
MoECapacitorCore.setFirstName({ firstName: "John" });
MoECapacitorCore.setLastName({ lastName: "Doe" });
MoECapacitorCore.setEmailId({ emailId: "johndoef@xyz.com" });
MoECapacitorCore.setMobileNumber({ mobileNumber: "1234567890" });
MoECapacitorCore.setGender({ gender: MoEUserGender.FEMALE });
MoECapacitorCore.setBirthDate({ birthdate: "1970-01-01T12:00:00Z" });
MoECapacitorCore.setUserLocation({ location: { latitude: 25.2311, longitude: 73.1023 } });
For setting other User Attributes you can use the generic method setUserAttribute(key, value)
To set custom user attributes, you will have to provide the attribute name as shown below:
import { MoECapacitorCore } from 'capacitor-moengage-core'
// For generic user attributes
MoECapacitorCore.setUserAttribute({ name: "Attribute Name", value: "AttributeValue" });
// For Time attribute use ISO-8601 format
MoECapacitorCore.setUserAttributeDate({ name: "Date Attribute Name", value: "1970-01-01T12:00:00Z" });
// For Location, use MoEGeoLocation instance
MoECapacitorCore.setUserAttributeLocation({ name: "Location Attribute Name", location: { latitude: 25.23, longitude: 73.23 } });