Along with a profile image, which of the following would also be included in a user profile?

#UserIcon Is there an easy way to update a user profile picture in process? I am

#UserIcon Is there an easy way to update a user profile picture in process? I am looking to mimic the forum functionality of providing a User with a task for updating their profile picture once they are onboarded to they system.
...

  Discussion posts and replies are publicly visible

  • Hey Dan,

    Take a look at the Default Community -> System Knowledge Center. You can design a process to update the profile picture in the User Pictures folder. The document name must have the same name as the user name. You will also want to update the thumbnail in the User Pictures/User Thumbnails as well.

  • Mark,

    Thanks for the input. I noticed the pictures there and thought this could be a potential approach. Is this how it is performed in the cloud and on forum? If so, I think it would be nice to share this process with the community at large as it is likely a common use case.

  • Dan-- There is some risk to updating the profile pictures directly. This might be why a common component for updating the profile picture is unavailable on forum. You’ll want to verify the file type, check the file size and generate the thumbnails in your process. I’m uncertain of the approach taken on the cloud but this is the technique I used and it worked well on another project.

  • Mark, can you tell me what the process you used to generate the thumbnails was? I noticed that the old "change your profile picture" app which is included as an example on certain cloud sites, after updating the user's main picture, uses a deprecated node called "refresh user thumbnails"; without this, the picture change will be successful but the old thumbnails continue showing up until someone goes into the user's profile editor and clicks "delete" on their old one, interestingly. I've been looking for a workaround to this for a while now.

  • I have actually been putting together a Smart Service that provides functionality for updating a User's profile picture. I will be submitting it to forum today so it should be available in the near future.

After you integrate our SDK, CleverTap creates a user profile for each person who launches your app or visits your website.

A CleverTap user profile has a set of default fields, such as email, phone number, and language. You can also extend the default user profile by adding custom fields that are specific to your business.

For example, if you offer a subscription service in your app, you can create a custom profile field to track what type of plan the user purchased.

The benefit of adding more information to a CleverTap user profile is creating a user segment for people with a specific profile property you define and then building a campaign to engage with that segment. The second benefit of adding more information to a CleverTap user profile is personalizing your campaign messaging with information. The third benefit is to personalize your app based on information from that person's CleverTap user profile.

A CleverTap user profile consists of three things:

  • Identifiers: Each user profile is given a unique CleverTap id. You can also add other identifiers to recognize the user, including email, phone number, Facebook ID, or your own custom identifier.
  • Properties: This is information stored about the user. For example, this might include age, gender, device, and location. You can also extend the default user profile by adding custom fields that are specific to your business.
  • Events: This is a log of actions taken by a user in your app. For example, this might include a product viewed, a video watched, or an item added to the cart.

The CleverTap user profile type changes automatically depending on the information set in them. A user profile can only belong to one type.

Anonymous
Anonymous profiles do not yet contain uniquely identifiable information about the user.

Addressable
Addressable user profiles are reachable either via email or push-notifications.

Customer
When you record a purchase via the Charged event, that user will be marked as a Customer.

CleverTap automatically unifies User Profiles across multiple devices when a user signs in to multiple devices using the same Identity. This helps you discover how the same user interacts with your app or website.

This also helps you get a more accurate count of the user, as it avoids double-counting the same user on multiple devices.

If multiple users on the same device use your app, you can use the onUserLogin method to assign them each a unique profile to track them separately. When initially installed on a device, your app is assigned an anonymous profile. You can use the profile.push method to add more user properties to the identified profiles. The first time you identify a user on the device [whether via onUserLogin or profilepush/profilePush], the device's anonymous history will be associated with the newly identified user.

If you want to maintain a separate profile for each user, you can use onUserLogin to switch between subsequent separate identified users of your app on the same device. A good time to do this is immediately after a different user has logged into your app, and you have access to identifying information about that user.

To initiate the switch, call onUserLogin with the same form of properties dictionary as you would when doing a profile push. Please note that switching from one identified user to another is a costly operation in that the current session for the previous user is automatically closed and data relating to the old user removed, and a new session is started for the new user, and data for that user refreshed via a network call to CleverTap. In addition, any global frequency caps are reset as part of the switch.

// Do not call onUserLogin directly in the onCreate[] lifecycle method // each of the below mentioned fields are optional HashMap profileUpdate = new HashMap[]; profileUpdate.put["Name", "Jack Montana"]; // String profileUpdate.put["Identity", 61026032]; // String or number profileUpdate.put["Email", "[email protected]"]; // Email address of the user profileUpdate.put["Phone", "+14155551234"]; // Phone [with the country code, starting with +] profileUpdate.put["Gender", "M"]; // Can be either M or F profileUpdate.put["DOB", new Date[]]; // Date of Birth. Set the Date object to the appropriate value first // optional fields. controls whether the user will be sent email, push etc. profileUpdate.put["MSG-email", false]; // Disable email notifications profileUpdate.put["MSG-push", true]; // Enable push notifications profileUpdate.put["MSG-sms", false]; // Disable SMS notifications profileUpdate.put["MSG-whatsapp", true]; // Enable WhatsApp notifications ArrayList stuff = new ArrayList[]; stuff.add["bag"]; stuff.add["shoes"]; profileUpdate.put["MyStuff", stuff]; //ArrayList of Strings String[] otherStuff = {"Jeans","Perfume"}; profileUpdate.put["MyStuff", otherStuff]; //String Array CleverTapAPI.getInstance[getApplicationContext[]].onUserLogin[profileUpdate]; // each of the below mentioned fields are optional // with the exception of one of Identity, Email, or FBID NSDictionary *profile = @{ @"Name": @"Jack Montana", // String @"Identity": @61026032, // String or number @"Email": @"[email protected]", // Email address of the user @"Phone": @"+14155551234", // Phone [with the country code, starting with +] @"Gender": @"M", // Can be either M or F // optional fields. controls whether the user will be sent email, push etc. @"MSG-email": @NO, // Disable email notifications @"MSG-push": @YES, // Enable push notifications @"MSG-sms": @NO // Disable SMS notifications @"MSG-whatsapp": @YES, // Enable WhatsApp notifications }; [[CleverTap sharedInstance] onUserLogin:profile]; // each of the below mentioned fields are optional // with the exception of one of Identity, Email, or FBID let profile: Dictionary = [ "Name": "Jack Montana", // String "Identity": 61026032, // String or number "Email": "[email protected]", // Email address of the user "Phone": "+14155551234", // Phone [with the country code, starting with +] "Gender": "M", // Can be either M or F // optional fields. controls whether the user will be sent email, push etc. "MSG-email": false, // Disable email notifications "MSG-push": true, // Enable push notifications "MSG-sms": false // Disable SMS notifications "MSG-whatsapp": true, // Enable WhatsApp notifications ] CleverTap.sharedInstance[]?.onUserLogin[profile] // each of the below mentioned fields are optional // with the exception of one of Identity, Email, or FBID clevertap.onUserLogin.push[{ "Site": { "Name": "Jack Montana", // String "Identity": 61026032, // String or number "Email": "[email protected]", // Email address of the user "Phone": "+14155551234", // Phone [with the country code] "Gender": "M", // Can be either M or F "DOB": new Date[], // Date of Birth. Date object // optional fields. controls whether the user will be sent email, push etc. "MSG-email": false, // Disable email notifications "MSG-push": true, // Enable push notifications "MSG-sms": true, // Enable sms notifications "MSG-whatsapp": true, // Enable WhatsApp notifications } }]; // each of the below-mentioned fields are optional var myStuff = {'bag','shoes'} var props = { 'Name': 'Jack Montana', // String 'Identity': '61026032', // String or number 'Email': '[email protected]', // Email address of the user 'Phone': '+14155551234', // Phone [with the country code, starting with +] 'Gender': 'M', // Can be either M or F 'DOB' : new Date['1992-12-22T06:35:31'], // Date of Birth. Set the Date object to the appropriate value first // optional fields. controls whether the user will be sent email, push, etc. 'MSG-email': false, // Disable email notifications 'MSG-push': true, // Enable push notifications 'MSG-sms': false, // Disable SMS notifications 'MSG-whatsapp': true, // Enable WhatsApp notifications 'Stuff': myStuff //Array of Strings for user properties } CleverTap.onUserLogin[JSON.stringify[props]] // each of the below-mentioned fields are optional var myStuff = ["bag","shoes"]; var props = { 'Name': 'Jack Montana', // String 'Identity': '61026032', // String or number 'Email': '[email protected]', // Email address of the user 'Phone': '+14155551234', // Phone [with the country code, starting with +] 'Gender': 'M', // Can be either M or F 'DOB' : CleverTapPlugin.getCleverTapDate[new DateTime.now[]], // Date of Birth. Set the Date object to the appropriate value first // optional fields. controls whether the user will be sent email, push, etc. 'MSG-email': false, // Disable email notifications 'MSG-push': true, // Enable push notifications 'MSG-sms': false, // Disable SMS notifications 'MSG-whatsapp': true, // Enable WhatsApp notifications 'Stuff': myStuff //Array of Strings for user properties }; CleverTapPlugin.onUserLogin[props];

🚧

Note : Using onUserLogin For Android

Do not call onUserLogin in the onCreate[] Android LifeCycle method.
Switching from one identified user to another is a costly operation in that the current session for the previous user is automatically closed and data relating to the old user removed, and a new session is started for the new user and data for that user refreshed via a network call to CleverTap. In addition, any global frequency caps are reset as part of the switch along with the device token transfer.

The Onuserlogin method identifies the individual users on the device. However, you may need to add additional user properties such as gender, date of birth, and so on. You can update these profiles with the clevertap.profile.push method.

CleverTap predefines certain profile property names that are common to most businesses. It is strongly recommended to use these standard property names. A list of all predefined property names is mentioned below:

  • Name
  • Email
  • Identity
  • Phone
  • Gender
  • DOB
  • MSG-email
  • MSG-push
  • MSG-sms
  • MSG-whatsapp

User Profile Property Name is used for personalizing communication [push messages, email, sms] with the user.

User Profile Property Identity is used to identify a user. In-depth information on Identity is documented here.

User Profile Properties such as Gender, Employed, Education, Married, DOB and Age form the demographic profile [aka attributes] of the user. This data can be used to understand the demographic break-up of users performing certain Events. It can also be used along with location and Events to segment and message users.

📘

DOB Record

In the user interface, a DOB record shows up under the user profile property Birthday.

Profile properties MSG-email, MSG-push, MSG-sms and MSG-whatsapp are used to set the Do-Not-Disturb status for the user. Unless these are explicitly set to false, they are always true.

Example: To disable push notifications for a user, set MSG-push to false.

The communication preferences can be visible under a user’s profile and are analyzed using the following flags:

  • MSG-push
  • MSG-sms
  • MSG-email
  • MSG-whatsapp

Setting a flag to true enables communication and false leads to unsubscribing.

📘

MSG-email Exception

All flags are on the device level except for MSG-email.

Any or all properties can be updated as shown in the code example below.

// each of the below mentioned fields are optional // if set, these populate demographic information in the Dashboard HashMap profileUpdate = new HashMap[]; profileUpdate.put["Name", "Jack Montana"]; // String profileUpdate.put["Identity", 61026032]; // String or number profileUpdate.put["Email", "[email protected]"]; // Email address of the user profileUpdate.put["Phone", "+14155551234"]; // Phone [with the country code, starting with +] profileUpdate.put["Gender", "M"]; // Can be either M or F profileUpdate.put["DOB", new Date[]]; // Date of Birth. Set the Date object to the appropriate value first profileUpdate.put["Photo", "www.foobar.com/image.jpeg"]; // URL to the Image // optional fields. controls whether the user will be sent email, push etc. profileUpdate.put["MSG-email", false]; // Disable email notifications profileUpdate.put["MSG-push", true]; // Enable push notifications profileUpdate.put["MSG-sms", false]; // Disable SMS notifications profileUpdate.put["MSG-whatsapp", true]; // Enable WhatsApp notifications ArrayList stuff = new ArrayList[]; stuff.add["bag"]; stuff.add["shoes"]; profileUpdate.put["MyStuff", stuff]; //ArrayList of Strings String[] otherStuff = {"Jeans","Perfume"}; profileUpdate.put["MyStuff", otherStuff]; //String Array cleverTap.pushProfile[profileUpdate]; // each of the below mentioned fields are optional // if set, these populate demographic information in the Dashboard NSDateComponents *dob = [[NSDateComponents alloc] init]; dob.day = 24; dob.month = 5; dob.year = 1992; NSDate *d = [[NSCalendar currentCalendar] dateFromComponents:dob]; NSDictionary *profile = @{ @"Name": @"Jack Montana", // String @"Identity": @61026032, // String or number @"Email": @"[email protected]", // Email address of the user @"Phone": @"+14155551234", // Phone [with the country code, starting with +] @"Gender": @"M", // Can be either M or F @"DOB": d, // Date of Birth. An NSDate object @"Photo": @"www.foobar.com/image.jpeg", // URL to the Image // optional fields. controls whether the user will be sent email, push etc. @"MSG-email": @NO, // Disable email notifications @"MSG-push": @YES, // Enable push notifications @"MSG-sms": @NO // Disable SMS notifications @"MSG-whatsapp": @YES, // Enable WhatsApp notifications }; [[CleverTap sharedInstance] profilePush:profile]; // each of the below mentioned fields are optional // if set, these populate demographic information in the Dashboard let dob = NSDateComponents[] dob.day = 24 dob.month = 5 dob.year = 1992 let d = NSCalendar.currentCalendar[].dateFromComponents[dob] let profile: Dictionary = [ "Name": "Jack Montana", // String "Identity": 61026032, // String or number "Email": "[email protected]", // Email address of the user "Phone": "+14155551234", // Phone [with the country code, starting with +] "Gender": "M", // Can be either M or F "DOB": d!, // Date of Birth. An NSDate object "Photo": "www.foobar.com/image.jpeg", // URL to the Image // optional fields. controls whether the user will be sent email, push etc. "MSG-email": false, // Disable email notifications "MSG-push": true, // Enable push notifications "MSG-sms": false // Disable SMS notifications "MSG-whatsapp": true, // Enable WhatsApp notifications ] CleverTap.sharedInstance[]?.profilePush[profile] // each of the below mentioned fields are optional // if set, these populate demographic information in the Dashboard clevertap.profile.push[{ "Site": { "Name": "Jack Montana", // String "Identity": 61026032, // String or number "Email": "[email protected]", // Email address of the user "Phone": "+14155551234", // Phone [with the country code] "Gender": "M", // Can be either M or F "DOB": new Date[], // Date of Birth. Javascript Date object "Photo": 'www.foobar.com/image.jpeg', // URL to the Image // optional fields. controls whether the user will be sent email, push etc. "MSG-email": false, // Disable email notifications "MSG-push": true, // Enable push notifications "MSG-sms": true, // Enable sms notifications "MSG-whatsapp": true, // Enable whatsapp notifications } }]; // each of the below-mentioned fields are optional var myStuff = {'bag','shoes'} var props = { 'Name': 'Jack Montana', // String 'Identity': '61026032', // String or number 'Email': [email protected]', // Email address of the user 'Phone': '+14155551234', // Phone [with the country code, starting with +] 'Gender': 'M', // Can be either M or F 'DOB' : new Date['1992-12-22T06:35:31'], // Date of Birth. Set the Date object to the appropriate value first // optional fields. controls whether the user will be sent email, push, etc. 'MSG-email': false, // Disable email notifications 'MSG-push': true, // Enable push notifications 'MSG-sms': false, // Disable SMS notifications 'MSG-whatsapp': true, // Enable WhatsApp notifications 'Stuff': myStuff //Array of Strings for user properties } CleverTap.profileSet[JSON.stringify[props]] // each of the below-mentioned fields are optional var myStuff = ["bag","shoes"]; var props = { 'Name': 'Jack Montana', // String 'Identity': '61026032', // String or number 'Email': [email protected]', // Email address of the user 'Phone': '+14155551234', // Phone [with the country code, starting with +] 'Gender': 'M', // Can be either M or F 'DOB' : CleverTapPlugin.getCleverTapDate[new DateTime.now[]], // Date of Birth. Set the Date object to the appropriate value first // optional fields. controls whether the user will be sent email, push, etc. 'MSG-email': false, // Disable email notifications 'MSG-push': true, // Enable push notifications 'MSG-sms': false, // Disable SMS notifications 'MSG-whatsapp': true, // Enable WhatsApp notifications 'Stuff': myStuff //Array of Strings for user properties } CleverTapPlugin.profileSet[props];

CleverTap supports arbitrary [foo = bar] scalar-value [aka single-value] profile properties to be set against the User Profile as shown below.

HashMap profileUpdate = new HashMap[]; profileUpdate.put["Customer Type", "Silver"]; profileUpdate.put["Prefered Language", "English"]; cleverTap.pushProfile[profileUpdate]; /** * Data types * The value of a property can be of type Date [java.util.Date], an Integer, a Long, a Double, * a Float, a Character, a String, or a Boolean. */ NSDictionary *profile = @{ @"Customer Type": @"Silver", @"Prefered Language": @"English", }; [[CleverTap sharedInstance] profilePush:profile]; /** * Data types: * The value of a property can be of type NSDate, a NSNumber, a NSString, or a BOOL. */ let profile: Dictionary = [ "Customer Type": "Silver", "Prefered Language": "English" ] CleverTap.sharedInstance[]?.profilePush[profile] /** * Data types: * The value of a property can be of type NSDate, a Number, a String, or a Bool. */ clevertap.profile.push[{ "Site": { "Customer Type": "Silver", "Prefered Language": "English" } }]; /** * Data types * Event property keys must be Strings and property values must, with certain specific exceptions, * be scalar values, i.e. String, Boolean, Integer, or Float, or a Date object. * * Date object * When a property value is of type Date, the date and time are both recorded to the second. */ var props = {'Customer Type': 'Silver', 'Prefered Language': 'English'] CleverTap.profileSet[JSON.stringify[props]] /** * Data types * The value of a property can be either a DateTime, an Integer, a Long, a Double, * a Float, a Character, a String, or a Boolean. * * Date object * When you pass the value of the property as DateTime, the date and time are both recorded to the second. */ var props = {'Customer Type': 'Silver', 'Prefered Language': 'English']; CleverTapPlugin.profileSet[props]; /** * Data types * The value of a property can be either a DateTime, an Integer, a Long, a Double, * a Float, a Character, a String, or a Boolean. * * Date object * When you pass the value of the property as DateTime, the date and time are both recorded to the second. */

CleverTap supports arbitrary multi-value profile properties to be set against the User Profile, as shown below. The updated value is displayed on the Find People page under the ‘User properties’ section on the CleverTap dashboard.

🚧

Note that only the first property value of a multi-value user property is available when personalizing notification content when creating campaigns.

// To set a multi-value property ArrayList stuff = new ArrayList[]; stuff.add["bag"]; stuff.add["shoes"]; cleverTap.setMultiValuesForKey["mystuff", stuff]; // To add an additional value[s] to a multi-value property cleverTap.addMultiValueForKey["mystuff", "coat"]; // or ArrayList newStuff = new ArrayList[]; newStuff.add["socks"]; newStuff.add["scarf"]; cleverTap.addMultiValuesForKey["mystuff", newStuff]; //To remove a value[s] from a multi-value property cleverTap.removeMultiValueForKey["mystuff", "bag"]; // or ArrayList oldStuff = new ArrayList[]; oldStuff.add["shoes"]; oldStuff.add["coat"]; cleverTap.removeMultiValuesForKey["mystuff", oldStuff]; //To remove the value of a property [scalar or multi-value] cleverTap.removeValueForKey["mystuff"]; // To set a multi-value property [[CleverTap sharedInstance] profileSetMultiValues:@[@"bag", @"shoes"] forKey:@"myStuff"]; // To add an additional value[s] to a multi-value property [[CleverTap sharedInstance] profileAddMultiValue:@"coat" forKey:@"myStuff"]; // or [[CleverTap sharedInstance] profileAddMultiValues:@[@"socks", @"scarf"] forKey:@"myStuff"]; //To remove a value[s] from a multi-value property [[CleverTap sharedInstance] profileRemoveMultiValue:@"bag" forKey:@"myStuff"]; [[CleverTap sharedInstance] profileRemoveMultiValues:@[@"shoes", @"coat"] forKey:@"myStuff"]; //To remove the value of a property [scalar or multi-value] [[CleverTap sharedInstance] profileRemoveValueForKey:@"myStuff"]; // To set a multi-value property CleverTap.sharedInstance[]?.profileSetMultiValues[["bag", "shoes"], forKey: "myStuff"] // To add an additional value[s] to a multi-value property CleverTap.sharedInstance[]?.profileAddMultiValue["coat", forKey: "myStuff"] // or CleverTap.sharedInstance[]?.profileAddMultiValues[["socks", "scarf"], forKey: "myStuff"] //To remove a value[s] from a multi-value property CleverTap.sharedInstance[]?.profileRemoveMultiValue["bag", forKey: "myStuff"] CleverTap.sharedInstance[]?.profileRemoveMultiValues[["shoes", "coat"], forKey: "myStuff"] //To remove the value of a property [scalar or multi-value] CleverTap.sharedInstance[]?.profileRemoveValueForKey["myStuff"] setMultiValuesForKey[key, value] // Eg: setMultiValuesForKey[‘stuff’, [‘bag’, ‘shoes’]] addMultiValueForKey[key, value] // Eg: addMultiValueForKey[‘stuff’, ‘coat’] addMultiValuesForKey[key, value]// Eg: addMultiValuesForKey[‘stuff’, [‘cap’, ‘belt’]] removeMultiValueForKey[key, value]// Eg: removeMultiValueForKey[‘stuff’, ‘belt’] removeMultiValuesForKey[key, value]// Eg: removeMultiValuesForKey[‘stuff’, [‘bag’, ‘cap’]] removeValueForKey[key] // Eg: removeValueForKey[‘stuff’] // To set a multi-value property var myStuff = {'bag','shoes'} CleverTap.profileSetMultiValuesForKey[myStuff, 'My Stuff'] // To add an additional value[s] to a multi-value property CleverTap.profileAddMultiValueForKey['coat', 'My Stuff'] // or var myStuff = {'bag','shoes'} CleverTap.profileAddMultiValuesForKey[myStuff, 'My Stuff'] //To remove a value[s] from a multi-value property CleverTap.profileRemoveMultiValueForKey['bag', 'My Stuff']; // or var myStuff = {'bag','shoes'} CleverTap.profileRemoveMultiValueForKey[myStuff, 'My Stuff']; //To remove the value of a property [scalar or multi-value] CleverTap.profileRemoveValueForKey["My Stuff"]; // To set a multi-value property var myStuff = ["bag","shoes"]; CleverTapPlugin.profileSetMultiValues["My Stuff", myStuff]; // To add an additional value[s] to a multi-value property CleverTapPlugin.profileAddMultiValue["My Stuff", "coat"]; // or var myStuff = ["bag","shoes"]; CleverTapPlugin.profileAddMultiValues["My Stuff", myStuff]; //To remove a value[s] from a multi-value property CleverTapPlugin.profileRemoveMultiValue["My Stuff", "bag"]; // or var myStuff = ["bag","shoes"]; CleverTapPlugin.profileRemoveMultiValues["My Stuff", myStuff]; //To remove the value of a property [scalar or multi-value] CleverTap.profileRemoveValueForKey["My Stuff"];

📘

Note

The applicable user properties are of type Integer, Float, or Double. The value can be zero or greater than zero.

Increment or decrement user profile property in CleverTap.

Increment or decrement a user profile property by using the incrementValue or decrementValue methods for Clevertap Android SDK version 4.2.0 and above.

Increment or decrement a user profile property by using the profileIncrementValue or profileDecrementValue methods for Clevertap iOS SDK 3.10.0 version and above.

// int values CleverTapSingleton.getDefaultInstance[ctx].incrementValue["score",10]; CleverTapSingleton.getDefaultInstance[ctx].decrementValue["score",10]; // double values CleverTapSingleton.getDefaultInstance[ctx].incrementValue["score",5.5]; CleverTapSingleton.getDefaultInstance[ctx].decrementValue["score",5.5]; // int values CleverTapAPI.getDefaultInstance[ctx]!!.incrementValue["score",10] CleverTapAPI.getDefaultInstance[ctx]!!.decrementValue["score",10] // double values CleverTapAPI.getDefaultInstance[ctx]!!.incrementValue["score",5.5] CleverTapAPI.getDefaultInstance[ctx]!!.decrementValue["score",5.5] #import // Integer properties [[CleverTap sharedInstance] profileIncrementValueBy: @3 forKey: @"score"]; [[CleverTap sharedInstance] profileDecrementValueBy: @3 forKey: @"score"]; // Float properties [[CleverTap sharedInstance] profileIncrementValueBy: @10.5 forKey: @"cost"]; [[CleverTap sharedInstance] profileDecrementValueBy: @10.5 forKey: @"cost"]; // Integer properties CleverTap.sharedInstance[]?.profileIncrementValue[by: 15, forKey: "score"] CleverTap.sharedInstance[]?.profileDecrementValue[by: 15, forKey: "score"] // Float properties CleverTap.sharedInstance[]?.profileIncrementValue[by: 10.5, forKey: "cost"] CleverTap.sharedInstance[]?.profileDecrementValue[by: 10.5, forKey: "cost"] // int values CleverTap.profileIncrementValueForKey[10, 'score'] CleverTap.profileDecrementValueForKey[10, 'score'] //double values CleverTap.profileIncrementValueForKey[10.5, 'score'] CleverTap.profileDecrementValueForKey[10.5, 'score'] // int values CleverTapPlugin.profileIncrementValue["score", 10]; CleverTapPlugin.profileDecrementValue["score", 10]; //double values CleverTapPlugin.profileIncrementValue["score", 10.5]; CleverTapPlugin.profileDecrementValue["score", 10.5];

Increment or decrement a user profile property by using the handleIncrementValue[propName, propValue] or handleDecrementValue[propName, propValue] methods for Clevertap Web SDK 1.3.0 version and above.

clevertap.handleIncrementValue['price', 10] clevertap.handleDecrementValue['price', 10]

Use the Identity field of a User Profile to set it to your customer ID, email, or any other ID that uniquely identifies your user. You can also use the user’s Facebook ID [FBID] as the Identity. CleverTap uses Identity, Email, or FBID to merge events across different devices for the same user. A User Profile can have more than one Identity value associated with it.

Specifying the same Identity attribute on different devices for the same user will then automatically associate the user’s events on those devices with the consolidated CleverTap User Profile for that user.

You can pass identity via Profile Push or On-User Login on your mobile app or web browser.
Using one of the above methods, you can link one or more Identity values [Identity, Email, FBID ] to a specific User Profile.

CleverTap assigns each User Profile a unique identifier by default. This identifier is suitable for use in your application as a user identifier, particularly in the case where your application does not otherwise create a user identifier.

CleverTapAPI.getInstance[getApplicationContext[]].getCleverTapID[]; [[CleverTap sharedInstance] profileGetCleverTapID]; CleverTap.sharedInstance[]?.profileGetCleverTapID[] clevertap.getCleverTapID[] CleverTap.getCleverTapID[[err, res] => { console.log['CleverTapID', res, err] }]; CleverTapPlugin.getCleverTapID[].then[[clevertapId] { setState[[[] { print["$clevertapId"]; }]]; }].catchError[[error] { setState[[] { print["$error"]; }]; }];

The Android and iOS SDKs provide convenient methods to access the device location. You can then set the location returned from these methods [or from your own location handling] on the User Profile to enable, among other things, finer-grained location based segmentation in CleverTap.

//requires Location Permission in AndroidManifest e.g. "android.permission.ACCESS_COARSE_LOCATION" CleverTapAPI clevertap = CleverTapAPI.getInstance[getApplicationContext[]]; Location location = clevertap.getLocation[]; // do something with location, optionally set on CleverTap for use in segmentation etc clevertap.setLocation[location]; /* Get the device location if available. Will prompt the user location permissions dialog. Please be sure to include the NSLocationWhenInUseUsageDescription key in your Info.plist. See //developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW26 Uses desired accuracy of kCLLocationAccuracyHundredMeters. If you need background location updates or finer accuracy please implement your own location handling. Please see //developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html for more info. Optional. You can use location to pass it to CleverTap via the setLocation API for, among other things, more fine-grained geo-targeting and segmentation purposes. */ [CleverTap getLocationWithSuccess:^[CLLocationCoordinate2D location] { //do something with location here, optionally set on CleverTap for use in segmentation etc [CleverTap setLocation:location]; } andError:^[NSString *error] { NSLog[@"CleverTapLocation Error is %@", error]; }]; /* Get the device location if available. Will prompt the user location permissions dialog. Please be sure to include the NSLocationWhenInUseUsageDescription key in your Info.plist. See //developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW26 Uses desired accuracy of kCLLocationAccuracyHundredMeters. If you need background location updates or finer accuracy please implement your own location handling. Please see //developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html for more info. Optional. You can use location to pass it to CleverTap via the setLocation API for, among other things, more fine-grained geo-targeting and segmentation purposes. */ CleverTap.getLocationWithSuccess[{[location: CLLocationCoordinate2D] -> Void in // do something with location here, optionally set on CleverTap for use in segmentation etc CleverTap.setLocation[location] }, andError: {[error: String?] -> Void in if let e = error { print[e] } }] CleverTap.setLocation[34.15, -118.20] var lat = 19.07; var long = 72.87; CleverTapPlugin.setLocation[lat, long];

Updated 8 days ago

  • Table of Contents
    • Overview
    • User Profile Data Model
      • User Profile Types
    • Unified User Profiles
    • Maintaining Multiple User Profiles on the Same Device
    • Updating the User Profile
      • Manually Updating Predefined User Profile Properties
      • Manually Updating Single-Value User Profile Properties
      • Manually Updating Multi-Value User Profile Properties
      • Increment or Decrement User Profile Property
    • Identifying a User
      • Accessing the CleverTap ID in Your App
    • User Location Handling

Which profile is used when new user profiles are created?

Vista Ch. 6.

Which term is used to describe an online personal journal in the form of a Web page?

A blog [WeBLOG] is a Web site that contains dated entries in reverse chronological order [most recent first] about a particular topic [28]. Functioning as an online journal, blogs can be written by one person or a group of contributors.

Which of the following is an example of a content community?

Social media sites, such as Wikipedia, YouTube, and Flickr, are examples of content communities.

Which of the following is considered to be a common data type?

Common data types are: boolean, integer, string, and date.

Chủ Đề