Tracking User Time Zone and Language
You can record the user's time zone and language in Reteno through SDK or through API, if you transfer data from the backend.
Note
Send data about language in RFC 5646 format. A primary language subtag in ISO 639-1 format is required. Example: de-AT
Send data about time zone in TZ database format. Example: Europe/Kyiv
Important
You can track user attributes (language, time zone etc.) only for users with external user IDs.
iOS SDK
Add user attributes like time zone and language by the following method:
Reteno.updateUserAttributes(externalUserId: "USER_ID", userAttributes: UserAttributes, subscriptionKeys: [String], groupNamesInclude: [String], groupNamesExclude: [String])
The UserAttributes object example:
func saveUser() {
let attributes = UserAttributes(
phone: user.phone,
email: user.email,
firstName: user.firstName,
lastName: user.lastName,
languageCode: "en-US",
timeZone: "Europe/Kyiv"
)
Reteno.updateUserAttributes(externalUserId: user.id, userAttributes: attributes)
}
Android SDK
Methods for adding user attributes:
Reteno.setUserAttributes(String externalUserId, User user)
Reteno.setUserAttributes(externalUserId: String, user: User?)
The userAttributes object example:
fun setLanguageTimeZone() {
val userId = "UserIdHere"
val userAttributes = UserAttributes(
languageCode = "en-US",
timeZone = "Europe/Kyiv"
)
val user = User(
userAttributes = userAttributes,
subscriptionKeys = listOf("key1", "key2", "key3")
)
application.getRetenoInstance().setUserAttributes(userId, user)
}
React Native SDK
Method for adding user attributes:
import { setUserAttributes } from 'reteno-react-native-sdk';
setUserAttributes({
externalUserId: "USER_ID",
user: {
attributes: userAttributes,
subscriptionKeys: string[],
groupNamesInclude: string[],
groupNamesExclude: string[]
}
})
The userAttributes object example:
setUserAttributes({
externalUserId,
user: {
userAttributes: {
languageCode: "de-AT",
timeZone: "Europe/Kyiv",
},
},
);
Note
Sending the time zone is optional because the SDK will automatically track it by default
API Methods
Use Add/update a contact API method to add a new or update an existing user and Add/update contacts for bulk adding/updating your users’ data.
Add/update a contact request example
curl --request POST \
--url https://api.reteno.com/api/v1/contact \
--header 'accept: application/json; charset=UTF-8' \
--header 'authorization: Basic
your_api_key
\
--header 'content-type: application/json' \
--data '
{
"channels": [
{
"type": "email",
"value": "[email protected]"
}
],
"languageCode": "en-us",
"timeZone": "Europe/Kyiv",
"firstName": "John",
"lastName": "Smith",
"externalCustomerId": "24233"
}
'
Add/update contacts request example
curl --request POST \
--url https://api.reteno.com/api/v1/contacts \
--header 'accept: application/json; charset=UTF-8' \
--header 'authorization: Basic
your_api_key
\
--header 'content-type: application/json' \
--data '
{
"contacts": [
{
"channels": [
{
"type": "email",
"value": "[email protected]"
}
],
"firstName": "John",
"lastName": " Smith",
"languageCode": "en-US",
"timeZone": "Europe/Kyiv",
"externalCustomerId": "543323"
}
],
"dedupeOn": "externalCustomerId"
}
'
Updated 5 months ago