Tracking User Attributes

User attributes are specific traits of a user such as an email, username, mobile, gender and so on. User Attributes helps target users based on these attributes across devices or installs or to personalize the messages.

User Login and Logout

Ensure log in and log out of users are implemented correctly during the visit to your website and users are authenticated. 

 

IMPORTANT

If the user log in and log out is not handled correctly, user data may get corrupted.

When you go live with MoEngage web SDK for the first time, ensure that you are setting the unique id of your existing website users on page load.

As soon as the user is authenticated, ensure that the user id is passed on to the MoEngage SDK using the login method. After the user logs out of your app, ensure to call the logout method of MoEngage. If two different unique id information are passed without calling the logout method in between, previous user information is overwritten by the new user.

Use the following functions on user login, user log out and update user.

Login

Kotlin Java
//UNIQUE_ID is used to uniquely identify a user.
MoEHelper.getInstance(context).setUniqueId(UNIQUE_ID)
 

NOTE

If you need to update the unique id, do not call the login method with the new unique id value. Using the method setUniqueId() with a new value creates unintended users in MoEngage.

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.

Kotlin Java
MoEHelper.getInstance(context).logoutUser()

In case the application is registering for push token it should pass the new push token to MoEngage SDK after user logout. Refer [this link](https://docs.moengage.com/docs/push-configuration#section-push-token-registration-by-your-application) to know more about passing push token

Updating User Attribute Unique Id

Use the method setAlias() to update the user attribute unique id instead of setUniqueId() with a different value. Using the method setUniqueId() with a new value creates unintended users in MoEngage.

Java
MoEHelper.getInstance(getContext()).setAlias();

Tracking User Attributes

The SDK provides APIs to track commonly tracked user attributes like First Name, Last Name, Email-Id, etc. Please use the provided methods for tracking those attributes.

Kotlin Java
MoEHelper.getInstance(context).setFirstName()
MoEHelper.getInstance(context).setLastName()
MoEHelper.getInstance(context).setFullName()
MoEHelper.getInstance(context).setUserLocation()
MoEHelper.getInstance(context).setGender()
MoEHelper.getInstance(context).setNumber()
MoEHelper.getInstance(context).setBirthDate()
MoEHelper.getInstance(context).setEmail()
 

NOTE

SetNumber - User Phone No / Mobile Number must be tracked as a string to work properly in MoEngage systems.

For setting other User Attributes you can use generic method setUserAttribute(key,value)

Kotlin Java
// Tracking a String Attribute
MoEHelper.getInstance(context).setUserAttribute("locality", "SF")
// Tracking a Date Attribute
MoEHelper.getInstance(context).setUserAttribute("signedUpOn", Date())
// Tracking a location attribute
MoEHelper.getInstance(context).setUserAttribute("lastLocation", GeoLocation(40.77, 73.98))

Date attributes can be passes as Date objects or

 

RESTRICTION

User Attributes names have following restrictions

  1. Name should not contain dot(.)
  2. Name should not start with dollar sign($)

The set of reserved keywords that are used by the SDK and should not be used to 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
Was this article helpful?
0 out of 0 found this helpful