# Получение A/B-тестов (runtime)
Тот же runtime-контур, что и у персонализаций и действий по правилам на сайте, но ответ содержит только A/B-тесты.
Применяется без веб-бандла (мобильное приложение, SSR, бэкенд). Структура запроса совпадает с personalizations/apply; на сайте с бандлом A/B подключаются через тот же onPersonalization — с ID теста в personalizationId.
# Описание метода
POST https://api.sales-ninja.me/public/{source}/v1.0/ab-tests/apply
Headers:
X-SN-TOKEN: <ваш токен проекта>
Content-Type: application/json
# Тело запроса
Структура запроса идентична personalizations/apply:
{
"context": {
"pageTitle": "Корзина",
"userScreenWidth": 1280,
"userScreenHeight": 720,
"customUserScopeParams": {},
"customPageScopeParams": {},
"clientDevice": "Smartphone",
"deviceModel": "iPhone 14 Pro",
"deviceBrand": "Apple",
"os": "IOs",
"osVersion": "17.2",
"userIp": "192.168.0.10",
"utmMedium": "cpc",
"utmSource": "google",
"utmCampaign": "spring_sale",
"sessionNumber": 2,
"sessionId": "8bf06a1d-0321-4be2-89b7-314181511c3d",
"pagesOpenedSinceFirstEntry": 5,
"pagesOpenedInThisSession": 3,
"firstEntryOnUtc": "2026-04-12T08:00:00Z",
"sessionStartOnUtc": "2026-04-15T18:00:00Z",
"lastReachedGoals": []
},
"customerId": "ab859455-b459-419b-bba0-d73e911a9dc2",
"appliedAbTestItems": []
}
Поля context — те же, что в методе персонализаций.
appliedAbTestItems — список A/B-тестов, уже применённых на этом пользователе в этой сессии, чтобы система не
перебрасывала пользователя между вариантами одного и того же эксперимента.
# Пример ответа
{
"abTests": [
{
"abTestId": "12d4f8b1-1234-4ab6-aa00-1234abcd5678",
"title": "Цвет кнопки 'Купить'",
"version": 7,
"validUntilUtc": "2026-04-30T18:00:00Z",
"isControl": false,
"option": {
"id": "9a82c331-...",
"title": "Зелёная"
}
}
],
"customerId": "ab859455-b459-419b-bba0-d73e911a9dc2"
}
Логика применения на стороне клиента такая же: применить указанные варианты, при достижении бизнес-цели вызвать POST /goals/reach — система привяжет конверсию к активным A/B-тестам.
# cURL
curl -X POST "https://api.sales-ninja.me/public/mobile/v1.0/ab-tests/apply" \
-H "X-SN-TOKEN: $SN_TOKEN" \
-H "Content-Type: application/json" \
-d @request.json