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

Implementing Login/Logout

  • It's important to set the unique identifier when a user logs into your app. This is to unify the new user with an existing user, if any exists, and will help prevent creating 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, The Web). Set the unique ID as soon as the user is logged in using setUniqueId(). A Unique ID can be something like an email ID, a username (unique), a database ID or any Backend generated identifier which can be used to uniquely identify the user.
  • Do not set this for the user who is not logged in.

Login User

TypeScript
import { MoECapacitorCore } from 'capacitor-moengage-core'
MoECapacitorCore.setUniqueId({ uniqueId: "abc@xyz.com });

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 User

TypeScript
import { MoECapacitorCore } from 'capacitor-moengage-core'
MoECapacitorCore.logoutUser();

Updating User Attribute Unique ID

warning

Critical

Please make sure that you use setAlias() for updating the User Attribute Unique ID and not setUniqueId() as calling setUniqueId() 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 the method setAlias()as shown below:

TypeScript
import { MoECapacitorCore } from 'capacitor-moengage-core'
MoECapacitorCore.setAlias({ alias: "alias@xyz.com" });

Tracking User Attributes

The following reserved keywords are tracked:

  • USER_ATTRIBUTE_UNIQUE_ID
  • USER_ATTRIBUTE_USER_EMAIL
  • USER_ATTRIBUTE_USER_MOBILE
  • USER_ATTRIBUTE_USER_NAME # incase you have full name
  • USER_ATTRIBUTE_USER_GENDER
  • USER_ATTRIBUTE_USER_FIRST_NAME # incase you have first and last name separately
  • 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

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

TypeScript
import { MoECapacitorCore, MoEProperties, MoEUserGender, MoEAppStatus } from 'capacitor-moengage-core'

MoECapacitorCore.setUserName({ userName: "John Doe" });
MoECapacitorCore.setFirstName({ firstName: "John" });
MoECapacitorCore.setLastName({ lastName: "Doe" });
MoECapacitorCore.setEmailId({ emailId: "johndoef@xyz.com" });
MoECapacitorCore.setMobileNumber({ mobileNumber: "1234567890" });
MoECapacitorCore.setGender({ gender: MoEUserGender.FEMALE });
MoECapacitorCore.setBirthDate({ birthdate: "1970-01-01T12:00:00Z" });
MoECapacitorCore.setUserLocation({ location: { latitude: 25.2311, longitude: 73.1023 } });

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:

TypeScript
import { MoECapacitorCore } from 'capacitor-moengage-core'

// For generic user attributes
MoECapacitorCore.setUserAttribute({ name: "Attribute Name", value: "AttributeValue" });

// For Time attribute use ISO-8601 format
MoECapacitorCore.setUserAttributeDate({ name: "Date Attribute Name", value: "1970-01-01T12:00:00Z" });

// For Location, use MoEGeoLocation instance
MoECapacitorCore.setUserAttributeLocation({ name: "Location Attribute Name", location: { latitude: 25.23, longitude: 73.23 } });

Previous

Next

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

How can we improve this article?