Skip to main content

Схема sigmaUserData


sigmaUserData {
{
userId?: string | number // например, clientId из счетчика google analytics
profileId?: string | number // например, ID пользователя при регистрации
deviceId?: string | number // например, ID устройства с которого зашел пользователь
ip?: string // ip для определения гео локации (geo)
email?: string // email
appVersion?: string | number // версия приложения, только для платформ Android и ios
geo?: object { // гео локация
country?: string
code?: string
state?: string
city?: string
};
browser?: object { // название и версия браузера, только для платформы web
name?: string
version?: string | number
};
os?: object { // название и версия операционной системы, только для платформы web
name?: string
version?: string | number
};
custom?: object {
[key: string]: string | number | boolean // поле с произвольным ключ: значение
};
deviceCategory?: string // устройство с которого зашел пользователь (web, android, tablet) только для платформы web
url?: string // весь URL https://www.ya.ru/cart/?param=1
pathname?: string // строка пути (относительно хоста) /cart
query?: string // часть адреса после символа ? ?param=1
domain?: string // домен (hostname) www.ya.ru
},
getAllUserExperiments?: boolean // получить все эксперименты (формат: <название>.<вариант> разделитель: |)
cacheTTL?: number // указывает через какой промежуток времени обновить данные. Измеряется в секундах. Меньше 10 поставить нельзя
platform?: string // фильтр по платформе. Настраивается в админ-панели при создании фича флага или эксперимента. Доступные платформы 'web', 'android', 'ios'
ua?: string // user-agent. Если передать, SDK автоматически подставит значения в browser, os. Приоритет у browser и os выше. Если не передать, SDK сама попробует определить user-agent (например вызвать API на клиенте)
}

Эксперименты и фича-флаги с гео-локацией

Есть два способа работы с экспериментами и ФФ, в которых есть условия на гео:

  1. Передавать гео-данные пользователя в объект sigmaUserData.
    Данные можно получить сторонним сервисом (но в таком случае, необходимо, чтобы наименование было идентично тому, что будет указано в условиях эксперимента/фф).

    Пример, передать гео-данные:

    curl 
    --location 'https://api.expf.ru/api/v1/user/estimate/all' \
    --header 'token: <TOKEN>' \
    --header 'Content-Type: application/json'

    --data '{
    "sigmaUserData": {
    "userId": "1",
    "geo": "geo"
    }
    }'
  1. Передавать ip пользователя в объект sigmaUserData.
    SDK сделает запрос по ip, результат запишет в кэш.

    Пример, передать ip:

    curl 
    --location 'https://api.expf.ru/api/v1/user/estimate/all' \
    --header 'token: <TOKEN>' \
    --header 'Content-Type: application/json'

    --data '{
    "sigmaUserData": {
    "userId": "1",
    "ip": "5.140.69.184"
    }
    }'