Общие положения API Сплиттера
В этом разделе описаны основные детали API Trisigma Splitter.
Для работы с API потребуется получить Bearer-токен авторизации, который предоставляется менеджером Trisigma.
Данный токен необходимо включать в заголовок Authorization каждого запроса.
API сплиттера использует RPC-протокол на базе HTTP.
API можно тестировать без предварительно настроенных экспериментов. Однако для более точного тестирования рекомендуется завести эксперимент в Trisigma.
Для выполнения запроса необходимо делать POST-запросы вида: https://<host>/<method_name>/.
Обратите внимание: косая черта (
/) в конце адреса запроса обязательна.
Параметр <host> можно узнать у менеджера Trisigma, так как для каждого клиента он является уникальным.
Методы API
participant — устаревший способПараметры пользователя рекомендуется передавать через randomizationUnits — он поддерживает любые типы партисипантов: стандартные (user_id, visitor_id) и кастомные (например, storeid, kioskid, phone_hash).
Поле participant (userId/visitorId/passportId) устарело и оставлено для обратной совместимости. Удаление не планируется — существующие интеграции продолжат работать. В новых интеграциях используйте randomizationUnits.
value в randomizationUnits всегда передаётся строкой, даже для числовых типов (например, user_id).
Получение списка фичей (getFeaturesByTag)
Метод getFeaturesByTag используется для получения списка фичей, связанных с заданным тегом.
Параметры запроса
Эта таблица описывает все поля, которые необходимо передать в теле JSON-запроса.
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
tag | string | Тэг эксперимента, используемый для группировки. | Да |
platform.id | int | ID платформы (например, 1 для Desktop). | Да |
platform.version | string | Версия платформы (например, версия приложения: "2.15.0"). | Да |
participant.userId | int | Устаревший. ID пользователя. Используйте randomizationUnits с type: "user_id". | Условно |
participant.visitorId | string | Устаревший. ID устройства или анонимного посетителя. Используйте randomizationUnits с type: "visitor_id". | Условно |
randomizationUnits | list | Параметры пользователя (рекомендуемый способ). Хотя бы один параметр должен быть передан. | Условно |
randomizationUnits.type | string | Тип параметра пользователя (например, user_id, visitor_id, storeid). | |
randomizationUnits.value | string | Значение параметра пользователя. Всегда строка, даже для числовых типов. |
Формирование запроса
URL:
POST https://<host>/getFeaturesByTag/
Заголовки:
Authorization: Bearer <ваш_токен>
Content-Type: application/json
X-Source: local
Тело запроса (рекомендуемый способ — randomizationUnits):
{
"tag": "<ваш_тег>",
"platform": {
"id": 1,
"version": "2.15.0"
},
"randomizationUnits": [
{
"type": "user_id",
"value": "123456"
},
{
"type": "phone_hash",
"value": "33AFF380-6289-4B76-BB19-46EB8B7D8998"
},
{
"type": "age",
"value": "30"
}
]
}
Тело запроса (устаревший способ — participant, оставлен для совместимости):
{
"tag": "<ваш_тег>",
"platform": {
"id": 1,
"version": "2.15.0"
},
"participant": {
"userId": 123456
}
}
Пример успешного ответа
{
"result": {
"features": [
{
"label": "test_group",
"experimentLabel": "demo_experiment",
"exposureParams": "1:2:12345"
}
]
}
}
Расшифровка ответа:
| Параметр | Тип | Описание |
|---|---|---|
label | string | Группа, в которую попал пользователь. |
experimentLabel | string | Лейбл эксперимента, который задается при создании в Trisigma. |
exposureParams | string | Внутренний параметр. Будет удален из ответа в будущих версиях. |
Алгоритм работы
- Отбор экспериментов, в которых есть переданный tag
- Проверка участия пользователя в отобранных экспериментах.
В ходе проверки переданные параметры пользователя сравниваются с конфигурацией эксперимента
Обратите внимание: В случае, когда конфигурация эксперимента требует проверки какого-то параметра пользователя (см Условия попадания в эксперимент), которого нет в запросе, эксперимент не попадёт в ответ метода. Ошибка возвращена не будет
- Сохранение информации о запросе фичи пользователя для аналитики.
- Формирование ответа
Общие рекомендации
- Убедитесь, что в заголовке запроса используется актуальный
Bearerтокен, выданный вам командой Trisigma. - Передавайте максимум возможной информации о пользователе, чтобы гарантировать прохождение всех фильтров эксперимента.
- При формировании запроса на получение фичей, в параметре tag укажите значение, связанное с конкретным сервисом или страницей, для которых вы хотите получить данные.
- Кеширование ответа. Для оптимизации скорости ответа вашего сервиса рекомендуется запрашивать у сплиттера участие пользователя в эксперименте только один раз за сессию. Такой подход используется, например, в мобильных приложе ниях. Группы скачиваются редко, что позволяет экономить трафик, так как они изменяются нечасто.
- Точка запроса. Старт приложения или начало сессии. хорошая точка, чтобы получить весь список текущих экспериментов и фичей.
Вы также можете прочитать про SLA сплиттера здесь.
Регистрация участия пользователя (exposeManyV2)
Метод exposeManyV2 фиксирует факт показа фичи пользователю в рамках эксперимента. Отправка этих событий (exposures) необходима для последующего анализа данных и формирования отчетов.
Параметры запроса
| Параметр | Тип |
|---|