---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.2
alternate:
  - https://yandex.com/support/varioqub/en/api-usersplit.md
  - https://yandex.com/support/varioqub/ru/api-usersplit.md
  - https://yandex.com/support/varioqub/tr/api-usersplit.md
  - href: ru/api-usersplit.md
    type: text/markdown
    title: Markdown version
  - href: llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/support/varioqub/ru/llms.txt

# API usersplit

{% note tip %}

Для работы с API usersplit требуются навыки разработчика. Если вы не обладаете такими навыками, обратитесь к разработчику или вебмастеру вашего сайта.

{% endnote %}

API usersplit служит для подключения Varioqub к вашему сайту.

## Формат запроса {#request-format}

```bash
GET https://uaas.yandex.ru/v1/exps
  ? [[client_id](*client_id)=<String>]
  & [[url](*url)=<String>]
  & [[i](*i)=<String>]
  & [[client_features](*client_features)=<String>]
  & [[cuid](*cuid)=<String>]
```

#|
|| ##client_id## | Идентификатор пользователя Метрики. Формат: `metrika.{counter_id}`. Где `{counter_id}` — это номер счетчика Метрики. [Как найти номер счетчика](https://yandex.ru/support/metrica/general/tag-id.html) ||
|| ##url## | Адрес страницы с GET-параметрами, на которой находится посетитель.

Если URL не передан, то Varioqub использует реферер из заголовков, но реферер может не передаваться или передаваться не полностью. Поэтому рекомендуем всегда передавать URL. ||
|| ##i## | Идентификатор посетителя сайта, хранящийся в first-party cookies. Должен быть выставлен в cookie `_ymab_param` по факту получения ответа. Может быть пустым при первом визите посетителя.

Рекомендуем передавать в каждом запросе к API. В первом запросе поле может быть пустым. ||
|| ##client_features## | Сериализованный JSON-объект параметров пользователей[*](*parametr). Пример: `{"param2": "value2", "param1": "value1"}`. ||
|| ##cuid## | Собственный идентификатор, который позволяет использовать в экспериментах свои пользовательские идентификаторы.

Для работы данной функциональности реализуйте на сайте передачу GET-параметра `cuid`, где значение параметра будет соответствовать идентификатору пользователя. Длина собственного идентификатора не должна превышать 30 символов. ||
|#

{% note info %}

Также для разделения посетителей по выборкам используются `Referer`, `User-Agent` и `X-Forwarded-For`. Убедитесь, что они передаются корректно.

{% endnote %}

```bash
HEADERS:
Referer: {url}
User-Agent: {user-agent}
X-Forwarded-For: {user_ip}
```

где:

- `url` — Адрес страницы с GET-параметрами, на которой находится посетитель.

- `user-agent` — User-Agent посетителя сайта.

- `user_ip` — IP-адрес посетителя сайта.

## Формат ответа {#response-format}

#### JSON

```json
{
    "i":"{i}",
    "experiments":"{experiments}",
    "testids": [
        {testid.1},
        ...
        {testid.n}
    ],
    "flags":
    [
        {
            "n":"{flag.1}",
            "v":"{value.1}",
            "t":"{type.1}"
        },
        ...
        {
            "n":"{flag.n}",
            "v":"{value.n}",
            "t":"{type.n}"
        }
    ]
}
```

#|
|| **Название поля** | **Описание** ||
|| ##i## | Идентификатор посетителя сайта, хранящийся в first-party cookies. Должен быть выставлен в cookie `_ymab_param` по факту получения ответа. Может быть пустым при первом визите посетителя.
 ||
|| ##experiments## | Технические данные для счетчика Метрики, возвращаются в зашифрованном виде. После получения [передайте их в Метрику](#experiments) при инициализации счетчика или отдельным вызовом. ||
|| ##testids## |
<!-- source: ru/_includes/objects/testid1.md -->
Массив идентификаторов вариантов, в которые попал запрос.
<!-- endsource: ru/_includes/objects/testid1.md -->

Значение отображается при использовании [расширенной версии Varioqub](https://yandex.com/support/varioqub/ru/paid-functionality.md). В базовой версии массив пустой.
 ||
|| ##flags## | Массив флагов, которые определяют экспериментальные изменения. Состоит из пар `{flag.N}:{value.N}`. Уникальность флагов в массиве не гарантируется и зависит от конфигурации экспериментов. ||
|| ##t## | Тип флага (type). Может иметь тип данных `flag`. ||
|| ##n## | Имя флага (name). ||
|| ##v## | Значение флага (value). ||
|#

{% note info %}

Формат ответа может содержать дополнительные поля. При обработке ответа используйте только те, которые нужны для работы с API.

{% endnote %}

Пример ответа:

```json
{
    "i":"7ASX7O3PO+SD4f30Y1GqkUEVIgyJ+lqpl9teI7DtiRQTGlsMT8VszxKsrU/2D5+mTTJviiKIv2/2
obmd4t7fGkefkfY=",
    "experiments":"JjfiHndoV8s",
    "flags":
    [
        {
            "n":"flag_name",
            "v":"value",
            "t":"flag"
        }
    ],
     "testids": [
        1234,
        4567
    ],
}
```

## Передача технических данных в Метрику {#experiments}

Для передачи технических данных используйте метод `experiments`. Метод можно вызывать при [инициализации счетчика](https://yandex.ru/support/metrica/code/counter-initialize.html) или отдельно.

```javascript
ym(XXXXXX, 'experiments', experiments);
```

| **Параметр** | **Тип** | **Описание** |
|--------------|--------|-----------|
| ##experiments## | String | Технические данные для Метрики, например, данные об используемых в эксперименте вариантах и т. д. Возвращаются в зашифрованном виде после вызова метода API usersplit. |


<!-- source: ru/_includes/neuroexpert-1.md -->
<hr>

Задайте вопрос Нейроэксперту — в правом нижнем углу нажмите кнопку ![](_assets/neuro-mod.png =150x).

Если у вас остались вопросы, напишите в службу поддержки.
<!-- endsource: ru/_includes/neuroexpert-1.md -->


<!-- source: ru/_includes/feedback/feedback.md -->
<details>
    <summary class="button">Написать в службу поддержки</summary>
    <div style="padding: 15px;
     margin: 10px 0;
     background: #FFFFFF;
     border-radius: 10px;
     border: 1px solid var(--yc-color-line-generic);">
     <iframe style="background: #FFFFFF;"
        height="700"
        width="100%"
        frameborder="0"
        src="https://forms.yandex.ru/surveys/1705/?iframe=1&lang=ru">
    </iframe>
</details>







<!-- endsource: ru/_includes/feedback/feedback.md -->

[*requiredParam]: Обязательный параметр

[*client_id]: Идентификатор пользователя Метрики. Формат: `metrika.{counter_id}`. Где `{counter_id}` — это номер счетчика Метрики. [Как найти номер счетчика](https://yandex.ru/support/metrica/general/tag-id.html)

[*url]: Адрес страницы с GET-параметрами, на которой находится посетитель.

Если URL не передан, то Varioqub использует реферер из заголовков, но реферер может не передаваться или передаваться не полностью. Поэтому рекомендуем всегда передавать URL.

[*i]: Идентификатор посетителя сайта, хранящийся в first-party cookies. Должен быть выставлен в cookie `_ymab_param` по факту получения ответа. Может быть пустым при первом визите посетителя.

Рекомендуем передавать в каждом запросе к API. В первом запросе поле может быть пустым.

[*parametr]: Чтобы использовать в эксперименте, подключите [расширенную версию](https://yandex.com/support/varioqub/ru/paid-functionality.md).

[*client_features]: Сериализованный JSON-объект параметров пользователей. Пример: `{"param2": "value2", "param1": "value1"}`.

[*cuid]: Собственный идентификатор, который позволяет использовать в экспериментах свои пользовательские идентификаторы.
 
Для работы данной функциональности реализуйте на сайте передачу GET-параметра `cuid`, где значение параметра будет соответствовать идентификатору пользователя.