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 whole lifetime.
Implementing Login/Logout
- It's important to set the User Attribute Unique ID when a user logs into your app.
- This is to merge the new user with the existing user, if any exists, and will help prevent creation of 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, Windows, The Web). Set the USER_ATTRIBUTE_UNIQUE_ID attribute as soon as the user is logged in. Unique ID can be something like an email ID, a username (unique), or a database ID or any Backend generated ID.
- Do not set this for the user who not logged in.
Login
var moe = MoECordova.init(YOUR_WORKSPACE_ID);
moe.logout();
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
The application needs to notify the MoEngage SDK whenever the user is logged out of the application. To notify the SDK, call the API whenever the user is logged out of the application.
info |
Note To clear out the existing user's data and identity, call the logout method. This will clear the data for the current user and create a new one, when you re-login as explained in the above log-in scenario your user will be merged (if already exist in our system) |
Updating User Attribute Unique ID
In a scenario where you have to update the User Attribute Unique ID value for a logged-in user use setAlias() as shown below:
var moe = MoECordova.init(YOUR_WORKSPACE_ID);
moe.setAlias("updatedUniqueID");
warning |
Warning Please make sure that you use setAlias() for updating the User Attribute Unique ID and not setUserAttribute() with USER_ATTRIBUTE_UNIQUE_ID attribute and a new value, as this will reset the current user and lead to the creation of unintended users in our system. |
SDK User Attributes Keys
You can also set the default user attributes like mobile number, gender, user name, birthday, location, etc using the below APIs
var moe = MoECordova.init(YOUR_WORKSPACE_ID);
moe.setUserName("abc");
moe.setFirstName("abc");
moe.setLastName("xyz");
moe.setEmail("abc@xyz.com");
moe.setPhoneNumber(1234567890);
moe.setGender("Male"); // OR Female
moe.setLocation(25.23, 73.23);
// Format - ISO-8601 String
moe.setBirthdate("1970-01-01T12:00:00Z");
Date attributes and Birthday in ISO-8601 format - yyyy-MM-dd'T'HH:mm:ss'Z'
var moe = MoECordova.init(YOUR_WORKSPACE_ID);
moe.setUserAttributeLocation("attribute", 25.23, 73.23);
You can use the following method set the timestamp user attribute :
var moe = MoECordova.init(YOUR_WORKSPACE_ID);
moe.setUserAttributeISODateString("LastPurchaseDate", "1970-01-01T12:00:00Z");
Reserved keywords for User Attributes
Below is the list of keys that should not be used when tracking user attributes.
- USER_ATTRIBUTE_UNIQUE_ID
- USER_ATTRIBUTE_USER_EMAIL
- USER_ATTRIBUTE_USER_MOBILE
- USER_ATTRIBUTE_USER_NAME
- USER_ATTRIBUTE_USER_GENDER
- USER_ATTRIBUTE_USER_FIRST_NAME
- 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