Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Update User Profile

Method Objective

The method updates the user's profile or creates a new profile bound to the user's current device if it was not created earlier.

Note

If you don't have user data, never send bogus data. It'll cause problems in profile handling in the future. For example, don't send a non-existent email, like anonymous@example.com, or an automatically generated email address that doesn't have anything to do with the user's actual email.

Syntax and parameters

Code Block
languageapplescript
themeFadeToGrey
 sdk.setProfileData(params) { callback }

NameTypeRequirementDescription
paramsHashMaprequiredObject with request parameters.
callbackfunctionoptionallyCallback Function

Request Parameters

Name

Type

Description

userEmail

string

User Email.

firstNamestringUser First Name.
genderstringUser Gender (m – male, f – female).
userLoyaltyIdstringThe Loyalty Program user ID (loyalty card).
lastNamestringUser Surname.
userPhonestringUser Phone.
userIdstringStore side user ID
birthdaystringUser birthday in the format YYYYY-MM-DD.
agestringUser age (in years).
locationstringThe user's current location from the list of locations in the product feed.
customPropertiesDictionary [string: stringAny]

Dictionary of custom properties. The custom property must be created before it can be used. Located there: Account > Settings > Profile Property

Tip

If property creation isn't available in the account, contact PersonaClick support.

Note

Non-scalar data types are not supported in the current version of the SDK.


Example of use

Code Block
languageapplescript
themeFadeToGrey
sdk.setProfileData(
    userEmail: "john.doe@examplemail.com",
    userPhone: "4400114527199",
    userLoyaltyId: "000001234567# custom properties
let stringArray = ["item1", "item2", "item3"]
let intArray = [1, 2, 3, 4, 5]
let floatArray: [Float] = [1.1, 2.2, 3.3]
let boolArray = [true, false, true]
let dateArray = [Date(),Date(),Date()]
let object: [String: Any] = [
  "stringKey": "stringValue",
  "intKey": 123,
  "floatKey": 45.67,
  "boolKey": true,
  "dateKey": Date(),
  "arrayKey": [1, 2, 3],
  "nestedObjectKey": [
      "nestedStringKey": "nestedValue",
      "nestedIntKey": 456
  ]
]

let customProperties: [String: Any] = [
    "string_prop": "string_value",
    birthday: "1990-03-11""integer_prop": 123,
    "float_prop": 7.62,
    age"date_prop": "2021-12-31 23:55:00",
    firstName"stringArray": "John"stringArray,
    "intArray": intArray,
    lastName"floatArray": "Doe"floatArray,
    "boolArray": boolArray,
    location:"dateArray": dateArray,
    "NY",customObject": object
]

sdk.setProfileData(
    genderuserEmail: "mjohn.doe@examplemail.com",
    customPropertiesuserPhone: ["4400114527199",
    userLoyaltyId: "000001234567",
    "property1"birthday: "1990-03-11",
    age: "value131",
    firstName: "John",
    lastName: "property2"Doe",
    userId: "value2extID100500",
    location: "NY",
  "property3"  gender: "value3m",
    ]customProperties: customProperties
) { (profileDataResp) in
      print("Profile data callback")
}


Anchor
did
did
Get Device ID of Current Profile

Method Objective

The method allows getting the Device ID of the current profile.

Syntax

Code Block
languageapplescript
themeFadeToGrey
 sdk.getDeviceID()

Example of use

Code Block
languageapplescript
themeFadeToGrey
var deviceId = sdk.getDeviceID()



Column

Page Navigation

Table of Contents
maxLevel2
indent0px
stylenone




Related Pages

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
sorttitle
cqllabel = "profile"