Интеграция с Console API
С Console API вы управляете экспериментами из своей системы (например, из CRM), без ручной работы в веб-интерфейсе Trisigma. На этой странице - сквозной сценарий: создать эксперимент с группами, метриками и аудиторией, запустить его и остановить по завершении кампании.
Console API принимает REST-запросы на https://{client-host-prefix-short}-conf.trisigma.io/api/console. Тело запроса - JSON, авторизация - по Bearer-токену в заголовке Authorization (см. Авторизацию).
Детальный контракт - в Справочнике методов: Эксперименты, Жизненный цикл, Справочники.
Последовательность вызовов
Шаги ниже показаны на примере самого распространённого варианта - эксперимента regular с разметкой segment по спискам участников на уровне групп control и test.
- Запросите справочники и соберите допустимые значения полей.
- Создайте эксперимент через
POST /experiments/v1(см. Эксперименты) и сохранитеidиз ответа. - Запустите эксперимент через
POST /experiments/v1/{id}/start. - Отслеживайте статус через
GET /experiments/v1илиGET /experiments/v1/{id}. - По завершении остановите эксперимент через
POST /experiments/v1/{id}/stop, затем заархивируйте черезPOST /experiments/v1/{id}/archive(см. Жизненный цикл).
Создание эксперимента со списками участников
Разберём эксперимент, в котором аудиторию задают списки участников - свой список для группы control и свой для группы test. В теле запроса это тип regular с разметкой segment.
Сначала запросите справочники - из них вы возьмёте точные имена списков и типов участников:
curl -s -X GET \
-H "Authorization: Bearer <token>" \
"https://<client-host-prefix-short>-conf.trisigma.io/api/console/experiments/v1/dictionaries/participant-lists"
curl -s -X GET \
-H "Authorization: Bearer <token>" \
"https://<client-host-prefix-short>-conf.trisigma.io/api/console/experiments/v1/dictionaries/participantTypes"
Создайте эксперимент с разными списками на группах:
curl -i -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{
"type": "regular",
"markupScopeType": "segment",
"title": "Campaign experiment",
"label": "campaign-exp-20260609-a",
"participantType": "visitor",
"duration": 7,
"groups": [
{"name": "control", "isControl": true, "allowedUsers": ["list_control"]},
{"name": "test", "isControl": false, "allowedUsers": ["list_test"]}
],
"team": "product_team",
"metricPresets": ["default_preset"],
"tags": ["integration"]
}' \
"https://<client-host-prefix-short>-conf.trisigma.io/api/console/experiments/v1"
Укажите реальные имена из справочников вместо list_control, list_test, product_team и default_preset.
Другие типы экспериментов
Помимо regular + segment в сценарии выше, Console API поддерживает:
| Тип / разметка | Когда использовать |
|---|---|
regular + incoming_traffic | Разметка всего входящего трафика. |
regular + event | Разметка по событию, сегменты в segments. |
retro | Ретроанализ - блок retro с датами. |
switchback | Switchback - блок switchback с окнами и кластерами. |
ExperimentType, ExperimentMarkupScopeType - справочники значений в Перечислениях.
Ниже - примеры создания таких экспериментов (полный контракт полей - в Экспериментах).
1. Весь входящий трафик
Эксперимент на весь трафик без фильтрации по спискам.
{
"type": "regular",
"markupScopeType": "incoming_traffic",
"title": "All traffic test",
"label": "all-traffic-test",
"participantType": "visitor",
"allocationTraffic": 100,
"duration": 14,
"groups": [
{ "name": "control", "isControl": true },
{ "name": "test", "isControl": false }
],
"team": "product_team"
}
2. Разметка по событию (с сегментацией)
Эксперимент срабатывает при наступлении события. Аудиторию задаёт блок segments.
{
"type": "regular",
"markupScopeType": "event",
"title": "Event based markup",
"label": "event-markup",
"participantType": "visitor",
"allocationTraffic": 50,
"duration": 10,
"groups": [
{ "name": "control", "isControl": true },
{ "name": "test", "isControl": false }
],
"segments": [
{
"conditions": [{ "param": "platform", "predicate": "eq", "value": "ios" }]
}
],
"team": "product_team"
}
3. Ретроанализ
Исторический анализ по уже собранным данным. Передайте блок retro; поле duration не указывайте.
{
"type": "retro",
"title": "Retro analysis",
"label": "retro-test",
"participantType": "visitor",
"groups": [
{ "name": "control", "isControl": true },
{ "name": "test", "isControl": false }
],
"team": "analytics_team",
"retro": {
"type": "parent_experiment",
"startDate": "2026-06-01",
"endDate": "2026-06-14",
"parentExperimentId": 101
}
}
4. Switchback
Эксперимент с чередованием групп во времени. Передайте блок switchback.
{
"type": "switchback",
"title": "Switchback test",
"label": "switchback-test",
"participantType": "visitor",
"duration": 7,
"groups": [
{ "name": "control", "isControl": true },
{ "name": "test", "isControl": false }
],
"team": "logistics_team",
"switchback": {
"clusterIdSetNames": ["city_clusters"],
"clusterPercent": 10.0,
"windowSizeMinutes": 60,
"burnInMinutes": 10,
"burnOutMinutes": 15,
"strategy": "DETERMINISTIC_RANDOM"
}
}
Ошибки
Формат ответа, конверт {result} / {error} и коды 400/401/403/404/500 описаны в Экспериментах, ошибки авторизации - в Авторизации.
Если вы получаете код 5xx или считаете, что 400 возвращается ошибочно (например, значение из справочника не принимается), обратитесь к менеджеру Trisigma или в чат поддержки. Обязательно приложите curl-запрос и тело ответа с ошибкой.
FAQ
Можно ли полностью удалить эксперимент через Console API?
Нет, Console API не удаляет эксперименты. Вместо удаления переведите эксперимент в архив через POST /experiments/v1/{id}/archive (см. Жизненный цикл).
Как часто нужно запрашивать справочники?
Содержимое справочников (типы участников, метрики, команды) меняется редко. Кэшируйте ответы на своей стороне (например, на 24 часа) и сбрасывайте кэш при ответе 400 Bad Request с указанием на неизвестное значение.