Справочник команд Adapty Developer CLI
В этой статье перечислены команды Adapty CLI для настройки аккаунта — приложений, уровней доступа, продуктов, пейволов, флоу, плейсментов и сегментов, — а также команды для миграции проекта RevenueCat и установки скиллов Adapty с их аргументами, флагами и допустимыми значениями. Для чтения аналитики приложения см. Команды аналитики. Для кампаний Apple Ads см. Команды Ads Manager.
Информация о настройке аутентификации и управлении токенами — в разделе Аутентификация.
Глобальные флаги
Эти флаги доступны для всех команд.
| Флаг | Описание |
|---|---|
--json | Вывод в формате JSON вместо форматированного текста |
--help | Показать справку по команде |
Все команды list также принимают флаги пагинации:
| Флаг | По умолчанию | Описание |
|---|---|---|
--page | 1 | Номер страницы |
--page-size | 20 | Элементов на странице (макс.: 100) |
Приложения
Управляйте приложениями в своём аккаунте Adapty. Настройки через дашборд описаны в разделе Настройки приложения.
adapty apps list
Список всех приложений в вашем аккаунте Adapty.
adapty apps list
Принимает флаги пагинации.
adapty apps get
Получить сведения о конкретном приложении.
adapty apps get <app-id>
| Аргумент | Описание |
|---|---|
app-id | Идентификатор приложения (UUID) |
adapty apps create
Создать новое приложение.
adapty apps create --title "My App" --platform ios --apple-bundle-id com.example.app
| Флаг | Обязательный | Описание |
|---|---|---|
--title | Да | Название приложения |
--platform | Да | Платформа: ios или android. Повторите для обеих: --platform ios --platform android |
--apple-bundle-id | Обязателен с --platform ios | Apple bundle ID |
--google-bundle-id | Обязателен с --platform android | Google bundle ID |
adapty apps update
Обновить существующее приложение.
adapty apps update <app-id> --title "New Name"
| Аргумент | Описание |
|---|---|
app-id | ID приложения (UUID) |
| Флаг | Описание |
|---|---|
--title | Новый заголовок приложения |
--apple-bundle-id | Новый Apple bundle ID |
--google-bundle-id | Новый Google bundle ID |
Необходим хотя бы один флаг. --platform нельзя изменить после создания.
Уровни доступа
adapty access-levels list
Список всех уровней доступа приложения.
adapty access-levels list --app <app-id>
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Принимает флаги пагинации.
adapty access-levels get
Получить сведения о конкретном уровне доступа.
adapty access-levels get --app <app-id> <access-level-id>
| Аргумент | Описание |
|---|---|
access-level-id | ID уровня доступа (UUID) |
| Флаг | Обязателен | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
adapty access-levels create
Создать новый уровень доступа.
adapty access-levels create --app <app-id> --sdk-id "pro" --title "Pro"
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--sdk-id | Да | Идентификатор, используемый в коде приложения для проверки доступа (например, "pro" или "premium") |
--title | Да | Отображаемое название в дашборде Adapty |
adapty access-levels update
Обновление существующего уровня доступа.
adapty access-levels update --app <app-id> <access-level-id> --title "Pro Access"
| Аргумент | Описание |
|---|---|
access-level-id | ID уровня доступа (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Новое отображаемое название |
--sdk-id нельзя изменить после создания.
Продукты
Список продуктов Adapty
Список всех продуктов для приложения.
adapty products list --app <app-id>
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Принимает флаги пагинации.
adapty products get
Получение сведений о конкретном продукте.
adapty products get --app <app-id> <product-id>
| Аргумент | Описание |
|---|---|
product-id | ID продукта (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
adapty products create
Создайте новый продукт.
ID продукта в сторе и ID цены нельзя изменить после создания. Чтобы использовать другие ID стора, создайте новый продукт.
adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --ios-product-id com.example.monthly
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название продукта |
--access-level-id | Да | ID уровня доступа (UUID), который открывает этот продукт |
--period | Да | Период подписки: weekly, monthly, two_months, trimonthly, semiannual, annual, lifetime |
--ios-product-id | Требуется хотя бы один стор | ID продукта из App Store Connect |
--android-product-id | Требуется хотя бы один стор | ID продукта из Google Play Console |
--android-base-plan-id | Обязательный с --android-product-id, если не указан --period lifetime | ID базового плана из Google Play Console |
--stripe-product-id | Требуется хотя бы один стор | ID продукта из Stripe |
--stripe-price-id | Обязательный с --stripe-product-id | ID цены из Stripe |
--paddle-product-id | Требуется хотя бы один стор | ID продукта из Paddle |
--paddle-price-id | Обязательный с --paddle-product-id | ID цены из Paddle |
Каждый продукт требует как минимум один стор: --ios-product-id, --android-product-id, --stripe-product-id или --paddle-product-id. Один продукт может содержать идентификаторы сразу нескольких сторов.
Чтобы продавать продукт в вебе через Stripe или Paddle, сначала подключите платёжного провайдера к Adapty: см. Stripe и Paddle. Для каждого из этих сторов нужно передать одновременно идентификатор продукта и идентификатор цены. Если передать только один из них, команда завершится с ошибкой.
adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --stripe-product-id prod_xxx --stripe-price-id price_xxx
Продукт только для веба является допустимым: можно создать продукт с идентификаторами Stripe или Paddle без идентификаторов App Store или Google Play.
adapty products update
Обновить существующий продукт.
Идентификаторы продукта в сторе и цены нельзя изменить после создания — они недоступны в этой команде. Чтобы использовать другие идентификаторы стора, создайте новый продукт.
adapty products update --app <app-id> <product-id> --title "Monthly" --access-level-id <access-level-id>
| Аргумент | Описание |
|---|---|
product-id | ID продукта (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Нет | Название продукта |
--access-level-id | Нет | ID (UUID) уровня доступа, который открывает этот продукт |
Пейволы
Список пейволов Adapty
Список всех пейволов приложения.
adapty paywalls list --app <app-id>
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Принимает флаги пагинации.
adapty paywalls get
Получить детали конкретного пейвола.
adapty paywalls get --app <app-id> <paywall-id>
| Argument | Description |
|---|---|
paywall-id | Paywall ID (UUID) |
| Flag | Required | Description |
|---|---|---|
--app | Yes | App ID (UUID) |
adapty paywalls create
Создание нового пейвола.
adapty paywalls create --app <app-id> --title "Default Paywall" --product-id <product-id>
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название пейвола |
--product-id | Да | ID продукта (UUID). Повторите для нескольких продуктов: --product-id <id1> --product-id <id2> |
adapty paywalls update
Замените все поля существующего пейвола.
После привязки пейвола к плейсменту его продукты нельзя изменить. Чтобы использовать другие продукты в активном пейволе, создайте новый пейвол и обновите плейсмент так, чтобы он указывал на него.
adapty paywalls update --app <app-id> <paywall-id> --title "Default Paywall" --product-id <product-id>
Эта команда заменяет все поля пейвола, включая полный список продуктов.
| Аргумент | Описание |
|---|---|
paywall-id | ID пейвола (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название пейвола |
--product-id | Да | ID продукта (UUID). Повторите для нескольких продуктов: --product-id <id1> --product-id <id2> |
adapty paywalls placements
Выводит все плейсменты, в которых используется указанный пейвол.
adapty paywalls placements --app <app-id> <paywall-id>
| Аргумент | Описание |
|---|---|
paywall-id | ID пейвола (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Используйте эту команду перед заменой пейвола, чтобы увидеть, какие плейсменты будут затронуты.
Элементы этого списка не содержат поля is_active. Чтобы узнать статус активации плейсмента, используйте placements list или placements get.
Флоу
Флоу — это пейволы и онбординги, которые вы создаёте в Flow & Paywall Builder. CLI управляет записью флоу, его конфигурацией билдера и публикацией. Конфигурация билдера — это большой JSON-документ, который обычно генерирует Flow & Paywall Builder; CLI его не создаёт. Чтобы создать или отредактировать конфигурацию из терминала, используйте скилл flow-generator — он управляет этими командами за вас. Перед публикацией скилл flow-audit проверяет, готов ли флоу к продакшену. Команды приведены здесь как справочный материал.
adapty flows list
Список всех флоу приложения.
adapty flows list --app <app-id>
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Поддерживает флаги пагинации.
adapty flows get
Получить подробную информацию о конкретном флоу.
adapty flows get --app <app-id> <flow-id>
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Ответ содержит id, name, status и updated_at. Возможные значения статуса:
| Статус | Значение |
|---|---|
draft | Флоу никогда не публиковался |
published | Текущая версия опубликована |
dirty | Флоу был опубликован ранее, и в текущей версии есть неопубликованные изменения. Пользователи видят последнюю опубликованную версию |
publishing | Публикация выполняется |
publication_failed | Последняя публикация завершилась ошибкой. Исправьте конфигурацию и опубликуйте снова |
archived | Флоу заархивирован |
adapty flows create
Создайте флоу. Новый флоу имеет только имя и не содержит конфигурации. Чтобы добавить конфигурацию, используйте flows config update.
adapty flows create --app <app-id> --name "Onboarding"
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--name | Да | Имя флоу |
adapty flows update
Переименование флоу.
adapty flows update --app <app-id> <flow-id> --name "Onboarding v2"
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязателен | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--name | Да | Новое название флоу |
adapty flows publish
Опубликуйте текущую версию флоу для ваших пользователей.
adapty flows publish --app <app-id> <flow-id>
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--yes, -y | Нет | Опубликовать без запроса подтверждения. Обязателен, если вывод перенаправляется или используется --json |
Поскольку публикация изменяет то, что видят ваши пользователи, команда выводит название флоу и запрашивает подтверждение. Любой ответ, кроме y, отменяет команду с кодом выхода 1. При использовании --json или в пайпе команда отказывается выполняться с кодом выхода 2 вместо ожидания ответа, поэтому в скриптах и агентских сессиях передавайте --yes.
Публикация выполняется асинхронно: в ответе возвращается status: publishing, а флоу ещё не активно. Опрашивайте flows get до тех пор, пока статус не станет published или publication_failed. При publication_failed команда flows config get сообщит о причине.
Публикация завершается с ошибкой HTTP 400, если у флоу нет конфига, если конфиг не готов к публикации или если текущая версия уже активна. Чтобы проверить конфиг перед публикацией, используйте flows config validate.
adapty flows config get
Чтение конфигурации конструктора флоу.
adapty flows config get --app <app-id> <flow-id>
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Ответ содержит поля config, remote_configs, status и updated_at. updated_at — это временная метка в миллисекундах последнего изменения конфига. Передайте её в flows config update через --expected-updated-at, чтобы избежать перезаписи при параллельном редактировании. Для флоу, конфиг которого ни разу не записывался, возвращается 404.
После попытки публикации ответ также содержит три поля, описывающих её результат. Читайте их, когда flows get возвращает publication_failed:
| Поле | Описание |
|---|---|
publication_status | На каком этапе находится публикация этой версии флоу: transforming, transformed, uploading, uploaded, published или failed |
transform_error | Необработанная ошибка трансформации — либо JSON-объект с перечнем проблем, либо краткая строка с описанием |
publication_error | Понятное сообщение об ошибке публикации |
adapty flows config update
Записать конфиг билдера для флоу.
adapty flows config update --app <app-id> <flow-id> --config-file config.json
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--config | Один из двух | Конфиг Builder в виде JSON-строки |
--config-file | Один из двух | Путь к JSON-файлу с конфигом Builder, или - для чтения из stdin |
--remote-configs | Нет | JSON-массив записей {locale, data}, где data — это Remote Config в виде строки |
--expected-updated-at | Нет | Значение updated_at из предыдущего вызова flows config get. Если конфиг изменился после этого чтения, команда завершится с ошибкой вместо перезаписи изменения. Если не указать — перезаписывает безусловно |
Запись конфигурации сохраняет черновик, но не публикует его. Для опубликованного флоу запись создаёт новую версию: статус флоу становится dirty, и пользователи продолжают видеть опубликованную версию до тех пор, пока вы не выполните flows publish.
adapty flows config validate
Проверяет, готова ли конфигурация билдера к публикации, без её сохранения.
adapty flows config validate --app <app-id> <flow-id> --config-file config.json
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--config | Один из двух | Конфигурация билдера в виде JSON-строки |
--config-file | Один из двух | Путь к JSON-файлу с конфигурацией билдера или - для чтения из stdin |
Ответ содержит valid и список issues. Если конфиг нельзя опубликовать, команда завершается с кодом 1 — так скрипты могут использовать это как условие.
adapty flows config preview
Отрисовывает локальный конфигурационный файл в браузере. Эта команда не обращается к API и не принимает флаг --app.
adapty flows config preview ./config.json --screen <screen-id> --device iphone-14 --orientation portrait
| Аргумент | Описание |
|---|---|
config-file | Путь к локальному JSON-файлу конфигурации билдера |
| Флаг | По умолчанию | Описание |
|---|---|---|
--screen | Первый экран флоу | ID экрана для отрисовки |
--device | iphone-14 | Фрейм устройства для отрисовки |
--orientation | portrait | portrait или landscape |
В терминале команда открывает предпросмотр в браузере. При использовании pipe или флага --json она выводит URL вместо этого. URL содержит всю конфигурацию и может быть очень длинным: передавайте его в инструмент для скриншотов, а не выводите напрямую. Конфигурации объёмом более ~32 КБ рендерятся медленно.
adapty flows media upload
Загрузите изображение для использования в конфиге флоу.
adapty flows media upload --app <app-id> ./hero.png
| Аргумент | Описание |
|---|---|
file | Путь к файлу изображения |
| Флаг | Обязателен | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Поддерживаемые форматы: GIF, HEIC, JPEG, PNG, SVG и WebP. В ответе содержатся id, name и CDN-ссылка url для обращения из конфига.
Плейсменты
Плейсменты — это точки, в которых флоу, пейволы и онбординги показываются пользователям. Тип контента плейсмента задаётся при создании, поэтому при переходе с пейволов на флоу нужно создавать новые плейсменты, а не обновлять существующие — для этого в скилле migrate-placements есть команды, которые автоматизируют этот процесс.
adapty placements list
Вывод списка всех плейсментов для приложения.
adapty placements list --app <app-id>
| Флаг | Обязателен | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Принимает флаги пагинации.
Каждый элемент содержит id, developer_id, title и is_active. is_active равно true для активного плейсмента и false для неактивного.
adapty placements get
Получить детали конкретного плейсмента.
adapty placements get --app <app-id> <placement-id>
| Аргумент | Описание |
|---|---|
placement-id | ID плейсмента (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Ответ содержит id, developer_id, title, is_active и массив audiences. is_active равен true для активного плейсмента и false для неактивного. Каждая запись аудитории включает content_type, segment_ids, priority и идентификатор контента: paywall_id для paywall, flow_id для flow, либо ab_test_id и ab_test_title для аудитории, которая запускает A/B-тест. Аудитория по умолчанию имеет segment_ids: [] и наибольшее значение приоритета (вычисляется последней). См. Форма audiences.
adapty placements create
Создать новый плейсмент.
adapty placements create --app <app-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название плейсмента |
--developer-id | Да | Строковый идентификатор, используемый в коде приложения для запроса этого плейсмента |
--audiences | Один из двух | JSON-массив элементов аудитории, каждый с явным content_type. См. Структура аудиторий |
--paywall-id | Один из двух | Устарело. ID пейвола (UUID). На стороне клиента оборачивается в единую аудиторию по умолчанию |
Передайте ровно один из параметров: --audiences или --paywall-id. Передача обоих или ни одного из них вызывает ошибку.
--paywall-id устарел и будет удалён. При передаче этого флага CLI выводит предупреждение в stderr и преобразует значение в аудиторию по умолчанию. Для новой автоматизации используйте --audiences.
adapty placements update
Заменяет все поля существующего плейсмента.
adapty placements update --app <app-id> <placement-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'
Эта команда заменяет все поля плейсмента, включая полный список аудиторий.
| Аргумент | Описание |
|---|---|
placement-id | ID плейсмента (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название плейсмента |
--developer-id | Да | Строковый идентификатор, используемый в коде приложения для запроса этого плейсмента |
--audiences | Один из двух | JSON-массив записей аудиторий, каждая с явным content_type. См. Форма audiences |
--paywall-id | Один из двух | Устарело. ID пейвола (UUID). Заменяет все аудитории одной аудиторией по умолчанию |
Передача --paywall-id перезаписывает все аудитории на плейсменте. Аудитории для конкретных сегментов удаляются. Чтобы сохранить их, используйте --audiences и включите все записи, которые хотите оставить.
Структура аудиторий
Флаг --audiences принимает JSON-массив. Каждая запись содержит:
| Поле | Тип | Описание |
|---|---|---|
content_type | string | Обязательное поле для каждой записи. "paywall", "flow", "ab_test" (A/B-тест пейволов), "flow_ab_test" (A/B-тест флоу), "cross_ab_test" или "flow_cross_ab_test" (кроссплейсментный A/B-тест). Используйте paywall, ab_test и cross_ab_test в плейсменте пейвола, а flow, flow_ab_test и flow_cross_ab_test — в плейсменте флоу |
segment_ids | string[] | ID сегментов, на которые нацелена эта аудитория. Длина 0 или 1. Пустой массив обозначает аудиторию по умолчанию — резервный вариант для пользователей, не попавших ни в один другой сегмент |
paywall_id | string | ID пейвола (UUID), который видят пользователи этой аудитории. Обязательное поле, если content_type равен "paywall" |
flow_id | string | ID флоу (UUID), который видят пользователи этой аудитории. Обязательное поле, если content_type равен "flow" |
ab_test_id | string | ID A/B-теста, запускаемого для пользователей этой аудитории. Обязательное поле для всех четырёх типов контента A/B-теста |
ab_test_title | string | Название A/B-теста. Только для чтения: API игнорирует это поле при записи |
priority | number | Нумерация с нуля, уникальная в рамках плейсмента. Аудитории оцениваются от меньшего к большему; аудитория по умолчанию должна иметь наибольшее значение |
Плейсмент должен содержать ровно одну аудиторию по умолчанию.
placements update заменяет весь список аудиторий, включая те, для которых запущен A/B-тест. Чтобы сохранить активный тест, скопируйте его запись из placements get в --audiences без изменений — с теми же ab_test_id и segment_ids. Если запись удалить или заменить, тест остановится без определения победителя. Если запись перенести в другие сегменты, тест запустится заново; ab_test_id в другой аудитории запустит тест там. Изменение только приоритетов не влияет на выполнение теста. CLI не предупреждает ни об одном из этих случаев.
Записи A/B-теста для нескольких плейсментов (cross_ab_test, flow_cross_ab_test) доступны только для чтения. API игнорирует их при записи и сохраняет уже существующие значения.
Тип контента плейсмента фиксируется при создании, поэтому placements update не позволяет переключить плейсмент с пейвола на флоу или наоборот. Используйте для флоу отдельный плейсмент — см. Создание нового плейсмента для флоу.
CLI проверяет каждую запись перед отправкой запроса. Запись с отсутствующим или неизвестным content_type, или без ID, который требует её content_type, завершает выполнение с кодом 2 — и ничего не отправляется. Для неизвестного content_type CLI выводит this CLI does not know this audience kind; update the CLI. Если запись получена из placements get, обновите CLI вместо удаления записи: эта запись может быть запущенным A/B-тестом.
Флоу можно привязать только после его публикации. draft-флоу или флоу, чья первая публикация ещё не завершена, будет отклонён сервером; CLI распознаёт это отклонение и завершает работу с кодом 2, выводя команду flows publish для данного флоу. Чтобы опубликовать флоу, используйте flows publish или Flow & Paywall Builder, а затем дождитесь, когда его статус станет published.
Пример с одной целевой аудиторией и одной аудиторией по умолчанию:
adapty placements update <placement-id> --app <app-id> --title "Main" --developer-id "main" \
--audiences '[{"content_type":"paywall","segment_ids":["<vip-segment-id>"],"paywall_id":"<vip-paywall-id>","priority":0},{"content_type":"paywall","segment_ids":[],"paywall_id":"<default-paywall-id>","priority":1}]'
Пример плейсмента, который показывает опубликованный флоу всем пользователям:
adapty placements create --app <app-id> --title "Onboarding" --developer-id "onboarding" \
--audiences '[{"content_type":"flow","segment_ids":[],"flow_id":"<flow-id>","priority":0}]'
Чтобы заменить пейвол в нескольких плейсментах, не нарушив маршрутизацию по сегментам:
-
Найдите затронутые плейсменты:
adapty paywalls placements --app <app-id> <old-paywall-id> -
Для каждого из них получите полный массив
audiences:adapty placements get --app <app-id> <placement-id> --json -
Замените соответствующие значения
paywall_idна стороне клиента. Все остальные записи, включая записи A/B-тестов, оставьте без изменений. -
Запишите изменённые данные обратно:
adapty placements update --app <app-id> <placement-id> --title "<title>" --developer-id "<developer-id>" --audiences '<modified-payload>'
Сегменты
Сегменты группируют пользователей по атрибутам их профиля. Используйте эти команды, чтобы создавать сегменты и находить их ID при составлении аудиторий плейсментов. Чтобы создать сегмент на основе кампаний Apple Ads, групп объявлений или ключевых слов, используйте adapty asa segments create: эта команда сама найдёт Apple ID и назовёт сегмент так, как это делает Ads Manager.
adapty segments list
Список всех сегментов приложения.
adapty segments list --app <app-id>
| Flag | Required | Description |
|---|---|---|
--app | Yes | App ID (UUID) |
Принимает флаги пагинации.
adapty segments get
Получение информации о конкретном сегменте.
adapty segments get --app <app-id> <segment-id>
| Аргумент | Описание |
|---|---|
segment-id | ID сегмента (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Ответ содержит поля id, title, description, filters, profile_count, refresh_in_progress, created_at и updated_at. Команда list возвращает только id, title и description.
adapty segments create
Создание сегмента по одному или нескольким фильтрам.
adapty segments create --app <app-id> --title "US installs" --filter ip_country:IN:US --filter install_date:>=:2026-01-01
| Флаг | Обязателен | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название сегмента |
--filter | Да | Правило фильтра. Можно указывать несколько раз. См. Синтаксис фильтров |
--description | Нет | Описание сегмента |
Пользователь попадает в сегмент только если соответствует каждому фильтру. Ответ содержит те же поля, что и segments get. profile_count начинается с 0, и Adapty пересчитывает его после создания сегмента.
adapty segments update
Замените название, описание и фильтры существующего сегмента.
adapty segments update --app <app-id> <segment-id> --title "US installs" --filter ip_country:IN:US,CA
| Аргумент | Описание |
|---|---|
segment-id | ID сегмента (UUID) |
| Флаг | Обязателен | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название сегмента |
--filter | Да | Правило фильтрации. Можно указывать несколько раз. См. Синтаксис фильтров |
--description | Нет | Описание сегмента |
segments update полностью заменяет сегмент. Передавайте все фильтры, которые хотите сохранить, а не только изменяемый. Чтобы прочитать текущие фильтры, выполните adapty segments get --app <app-id> <segment-id> --json.
Синтаксис фильтров
Каждый --filter записывается в формате field:OPERATOR:value. Чтобы указать несколько допустимых значений, разделите их запятыми: ip_country:IN:US,CA.
| Оператор | Значения | Пример |
|---|---|---|
IN, NOT IN | Одно или несколько | ip_country:NOT IN:US,CA |
>, >=, <, <= | Одно | age:>:18 |
BETWEEN | Два | total_revenue_usd:BETWEEN:10,100 |
IS NULL, IS NOT NULL | Нет | age:IS NULL |
Передавайте числа как обычные значения, например age:>:18. Adapty автоматически преобразует их для числовых полей, таких как age, total_revenue_usd, и пользовательских атрибутов типа float.
Если значение нельзя выразить в этой краткой форме, передайте фильтр как JSON-объект:
adapty segments create --app <app-id> --title "Adults" --filter '{"field_name":"age","operator":">","value_list":[18]}'
Adapty проверяет имена полей, операторы и типы значений, и сообщает об ошибке для каждого некорректного фильтра. Чтобы узнать имена полей и форматы значений существующих фильтров, выполните adapty segments get --app <app-id> <segment-id> --json для сегмента, созданного в дашборде.
Миграции
Перенесите проект RevenueCat в Adapty: каталог продуктов, а также, при необходимости, события стора и историю транзакций. Adapty выполняет каждую миграцию последовательно и сообщает, какие действия можно выполнить следующими, — поэтому перед каждым действием читайте status. Полная процедура описана в статье Миграция из RevenueCat.
Все команды, кроме list, create, use, current и unuse, принимают флаг миграции:
| Флаг | Обязательный | Описание |
|---|---|---|
-m, --migration | Нет | ID миграции. Если не указан, CLI использует переменную окружения ADAPTY_MIGRATION, затем миграцию, сохранённую командой create или use. |
adapty migrations list
Просмотр ваших миграций и флоу миграций, которые можно запустить, сгруппированных по приложениям.
adapty migrations list
adapty migrations create
Запустить миграцию и сохранить её как текущую.
adapty migrations create --name <app-name>
adapty migrations create --flow <flow> --app <app-id>
| Флаг | Обязателен | Описание |
|---|---|---|
--name | Один из --name или --flow | Название нового приложения Adapty. Запускает миграцию каталога. Нельзя использовать вместе с --flow или --app. |
--flow | Один из --name или --flow | Флоу для запуска в существующем приложении, как показывает adapty migrations list. Требует --app. |
--app | С --flow | ID приложения (UUID) |
--no-select | Нет | Создать миграцию без сохранения её как текущей |
Флоу, доступные для существующего приложения после миграции каталога:
| Флоу | Описание |
|---|---|
transactions | Импорт истории транзакций из ежедневного облачного экспорта RevenueCat |
transactions_support | Импорт истории транзакций через поддержку RevenueCat и поддержку Adapty — для тарифов RevenueCat без Cloud Export |
apple_events | Перенаправление уведомлений App Store в Adapty при сохранении их получения RevenueCat |
google_events | Подключение Adapty к Pub/Sub-топику, который RevenueCat использует для уведомлений Google Play |
code | Замена SDK RevenueCat на SDK Adapty в одной кодовой базе приложения с помощью агента |
integrations | Поиск инструментов аналитики, атрибуции и рассылок в коде приложения для настройки в Adapty с помощью агента |
paywall_design | Перестройка дизайнов пейволов RevenueCat во флоу, созданных при миграции каталога, с помощью агента |
adapty migrations use
Сохраняет миграцию как текущую, чтобы другие команды не требовали флага -m.
adapty migrations use <migration-id>
| Аргумент | Описание |
|---|---|
migration-id | ID миграции из adapty migrations list |
CLI проверяет доступ к миграции перед сохранением ID. Сохранённая миграция привязана к текущему токену и применяется во всех терминалах.
adapty migrations current
Показывает текущую миграцию и её источник: переменную окружения ADAPTY_MIGRATION или сохранённый выбор.
adapty migrations current
adapty migrations unuse
Очищает сохранённую миграцию. Значение ADAPTY_MIGRATION, заданное в оболочке, действует до тех пор, пока вы не сбросите его.
adapty migrations unuse
adapty migrations status
Показывает состояние миграции, её проблемы и доступные следующие действия.
adapty migrations status
| Флаг | Обязательный | Описание |
|---|---|---|
--wait | Нет | Опрашивать до изменения состояния миграции, затем вернуть последнее состояние |
--timeout | Нет | Время опроса для --wait: 1–600 секунд, по умолчанию 120. Принимает 300, 300s или 5m. Требует --wait. |
С флагом --json поля next_actions и available_actions содержат для каждого действия его ID, читаемые ресурсы, input_schema и текст confirm.
Код завершения 0 означает, что запрос выполнен успешно, но не что миграция прошла успешно. Проверьте migration.state в ответе.
Шаги миграции adapty
Показывает чеклист миграции и статус каждого шага.
adapty migrations steps
adapty migrations show
Просмотр доступных ресурсов или чтение одного из них.
adapty migrations show [resource]
| Аргумент | Описание |
|---|---|
resource | Название ресурса, например apps, mapping, report или export-config. Если не указать, отобразится список ресурсов, доступных на текущем шаге. |
adapty migrations run
Выполняет действие из adapty migrations status.
adapty migrations run <action-id>
| Аргумент | Описание |
|---|---|
action-id | ID действия из next_actions или available_actions в adapty migrations status |
| Флаг | Обязательный | Описание |
|---|---|---|
--input | Нет | Входные данные действия в виде JSON-объекта, соответствующего input_schema действия. Без входных данных CLI отправляет {}. |
--input-file | Нет | Путь к файлу с входными данными действия или - для чтения из stdin. Нельзя использовать вместе с --input. |
-y, --yes | Для действий с текстом confirm | Подтверждает действие после прочтения текста confirm. Интерактивного запроса нет. |
--open | Нет | Открывает ссылку действия даже при использовании pipe или --json |
--no-browser | Нет | Выводит ссылку действия без открытия браузера |
Действия бывают трёх видов:
- Входные действия передают данные в Adapty, например список приложений RevenueCat для миграции или ваши решения по маппингу.
- Внешние действия открывают страницу в дашборде Adapty, например для вставки секретного API-ключа RevenueCat. Выполните действия на странице, затем проверьте
status. - Действия агента, например
migrate_code, предназначены для вашего агента кодирования. Запускайте их из git-репозитория приложения: CLI сохраняет данные миграции в.git/adapty/<migration-id>/и выводит инструкции для агента. Агент сообщает о результате, повторно запуская действие с флагом--input.
adapty migrations close
Завершите или отмените миграцию. После этого её нельзя будет открыть снова.
adapty migrations close --outcome finish --yes
| Флаг | Обязателен | Описание |
|---|---|---|
--outcome | Да | finish помечает миграцию как завершённую; cancel отменяет её |
-y, --yes | Да | Подтвердите закрытие |
Скиллы
adapty skills install
Устанавливает скиллы Adapty в агенты кодирования на этом компьютере.
adapty skills install
| Флаг | Обязателен | Описание |
|---|---|---|
--agent | Нет | Агент для установки: claude-code, codex или gemini-cli. Повторите флаг для нескольких агентов. |
-y, --yes | Нет | Установить во все найденные агенты без подтверждения. Обязателен, если CLI находит несколько агентов и не может задать вопрос, например при использовании --json. |
CLI ищет Claude Code, Codex и Gemini CLI в PATH. Если ни один не найден, он спрашивает, запустить ли npx skills@1.7.0 add adaptyteam/adapty-skills --all --global, который охватывает другие агенты. Перезапустите агент, чтобы загрузить скиллы.
Auth
| Команда | Описание |
|---|---|
adapty auth login | Аутентификация через браузер с использованием device flow |
adapty auth logout | Очистить сохранённые учётные данные и сохранённую миграцию локально |
adapty auth whoami | Проверить токен на сервере и показать информацию о пользователе |
adapty auth status | Показать локальное состояние аутентификации без обращения к серверу |
adapty auth revoke | Отозвать токен на сервере, затем очистить его и сохранённую миграцию локально |
Подробнее о каждой команде см. в разделе Аутентификация.