Identifying User

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 :

🚧

IMPORTANT:

Setting setUniqueId() is mandatory to tie a user across devices, installs/uninstalls, and across different platforms.

  • 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 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. 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.
var moe = new MoECordova.init();
moe.setUniqueId(uniqueID);

Reset or Logout User :

Consider the scenario when a user logs out of their account. They might login from a new account, as a new user. Here you need to call logout from MoEngage.

var moe = new MoECordova.init();
moe.logout();

🚧

IMPORTANT:

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 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");

❗️

IMPORTANT:

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, etc using the below APIs

var moe = MoECordova.init()
    moe.setUserName("abc");
    moe.setFirstName("abc");
    moe.setLastName("xyz");
    moe.setEmail("[email protected]");
    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 - yyyy-MM-dd'T'HH:mm:ss'Z'

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");

What’s Next