Tracking User Attributes

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.

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

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 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.

Login User

JavaScript
import ReactMoE from 'react-native-moengage'
ReactMoE.setUserUniqueID("abc@xyz.com");

Logout User

JavaScript
import ReactMoE from 'react-native-moengage'
ReactMoE.logout();

Updating User Attribute Unique ID

 

IMPORTANT

Please make sure that you use setAlias() for updating the User Attribute Unique ID and not setUserUniqueID() as calling setUserUniqueID() with a new value will reset the current user and lead to the creation of unintended users in our system.

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:

JavaScript
import ReactMoE from 'react-native-moengage'
ReactMoE.setAlias("asd@xyz.com");

Tracking User Attributes

Use the following helper methods to set User attributes like Name, Email, Mobile, Gender, etc.

JavaScript
import ReactMoE, {
  MoEGeoLocation,
} from "react-native-moengage";

ReactMoE.setUserName("abc");
ReactMoE.setUserFirstName("abc");
ReactMoE.setUserLastName("xyz");
ReactMoE.setUserEmailID("abc@xyz.com");
ReactMoE.setUserContactNumber(1234567890);
ReactMoE.setUserGender("Male"); // OR Female
// Format - ISO-8601 String
ReactMoE.setUserBirthday("1970-01-01T12:00:00Z");
// For Location use MoEGeoLocation instance
ReactMoE.setUserLocation(new MoEGeoLocation(77.3201, -77.3201));

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:

JavaScript
import ReactMoE, {
  MoEGeoLocation,
} from "react-native-moengage";

ReactMoE.setUserAttribute("attribute name", "attribute value");

// For Time attribute use ISO-8601 format
ReactMoE.setUserAttributeISODateString(
                  "time attribute name",
                  new Date().toISOString()
                );

// For Location, use MoEGeoLocation instance
ReactMoE.setUserAttributeLocation(
                  "location attribute name",
                  new MoEGeoLocation(10.3223, -88.6026)
                );

 

Was this article helpful?
0 out of 0 found this helpful