Відстеження часового поясу та мови контакту

Ви можете записати часовий пояс та мову контакту двома способами:

  • через API.
  • за допомогою SDK (при передаванні даних з фронтенду мобільного додатка).

Передавайте мову у форматі RFC 5646 з основним субтегом мови у форматі ISO 639-1 — наприклад, de-AT. Часовий пояс передавайте у форматі TZ database — наприклад, Europe/Kyiv.

❗️

Важливо

Атрибути (мова, часовий пояс тощо) відстежуються лише для контактів із зовнішнім ID.

Як заповнюється мова контакту

  • Коли контакт створюється через мобільний SDK, мова записується з мови пристрою.
  • Якщо згодом пристрій переходить до іншого контакту (наприклад, у застосунок увійшов інший користувач), мова не переноситься — залишається раніше збережене значення. Оновіть його явно методом оновлення атрибутів користувача, описаним нижче.
  • Коли контакт створюється або оновлюється через API, мова заповнюється лише тоді, коли її явно передано в запиті.

У картці контакту найпоширеніші коди мов показуються локалізованими назвами. Нестандартні значення (наприклад, регіональні коди) відображаються точно так, як їх передали. Картка завжди показує значення з останнього оновлення.

API-методи

Використовуйте метод API Add/update a contact, щоб додати новий або оновити існуючий контакт, та метод Add/update contacts для масового додавання/оновлення даних контактів.

Приклад запиту Add/update a contact

curl --request POST \
     --url https://api.esputnik.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

curl --request POST \
     --url https://api.esputnik.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"
}
'

iOS SDK

Записуйте атрибути контакту, такі як часовий пояс та мову, за допомогою наступного методу:

Reteno.updateUserAttributes(externalUserId: "USER_ID", userAttributes: UserAttributes, subscriptionKeys: [String], groupNamesInclude: [String], groupNamesExclude: [String])

Приклад об'єкту UserAttributes:

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

Методи додавання атрибутів контакту:

Reteno.setUserAttributes(String externalUserId, User user)

Reteno.setUserAttributes(externalUserId: String, user: User?)

Приклад об'єкта UserAttributes:

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

Метод додавання атрибутів контакту:

import { setUserAttributes } from 'reteno-react-native-sdk';

setUserAttributes({
    externalUserId: "USER_ID",
    user: {
        attributes: userAttributes,
        subscriptionKeys: string[],
        groupNamesInclude: string[],
        groupNamesExclude: string[]
    }
})

Приклад об'єкта UserAttributes:

setUserAttributes({
  externalUserId,
  user: {
    userAttributes: {
      languageCode: "de-AT",
      timeZone: "Europe/Kyiv",
    },
  },
);

Докладніше >

Отримання мови контакту в контексті сценарію

Системне поле $languageCode дозволяє отримати в контексті сценарію мову з картки контакту, щоб не передавати її в кожній події.

Поле $languageCode можна використовувати в типових блоках, що працюють зі змінними та умовами, наприклад:

  • Webhook
  • Розгалуження
  • Перевірити значення
Умова $languageCode дорівнює en у блоці Розгалуження сценарію


Did this page help you?