User attributes are specific traits of a user, like email, username, mobile, gender etc.
This is crucial and helps in targeting users based on these attributes across devices or installs.
Implementing Login / Logout Mechanism for a User
Setting Unique ID in order to Login User
- It is 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 creating 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. The 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 is not logged in.
var moe = new MoECordova.init(); moe.setUniqueId(uniqueID);
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"
Reset or Logout User
Consider the scenario when a user logs out of their account. They might log in from a new account, as a new user. Here you need to call
logout from MoEngage.
var moe = new MoECordova.init(); moe.logout();
To clear out the existing user's data and his 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: method as shown below:
var moe = new MoECordova.init(); moe.setAlias("updatedUniqueID");
Please make sure that you use
SDK User Attributes Keys
You can also set the default user attributes like mobile number, gender, user name, birthday, etc using the below APIs
var moe = MoECordova.init() moe.setUserName("abc"); moe.setFirstName("abc"); moe.setLastName("xyz"); moe.setEmail("firstname.lastname@example.org"); moe.setPhoneNumber(1234567890); moe.setGender("Male"); // OR Female // Format - ISO-8601 String moe.setBirthdate("1970-01-01T12:00:00Z");
Date attributes and Birthday in ISO-8601 format -
var moe = new MoECordova.init(); moe.setUserAttributeLocation("attribute", 25.23, 73.23);
You can use following method set the timestamp user attribute :
var moe = new MoECordova.init(); moe.setUserAttributeISODateString("LastPurchaseDate", "1970-01-01T12:00:00Z");