Tracking User Time Zone and Language

You can record the contact's time zone and language in two ways:

  • via API.
  • using the SDK (when transferring data from the frontend of the mobile application).

๐Ÿ“˜

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.

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": "john@example.com" } ], "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": "john@example.com" } ], "firstName": "John", "lastName": " Smith", "languageCode": "en-US", "timeZone": "Europe/Kyiv", "externalCustomerId": "543323" } ], "dedupeOn": "externalCustomerId" } '

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) }

Details >

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) }

Details >

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", }, }, );

Details >


Did this page help you?