Справочник команд Adapty Developer CLI

В этой статье перечислены команды Adapty CLI для настройки аккаунта — приложений, уровней доступа, продуктов, пейволов, флоу, плейсментов и сегментов, — а также команды для миграции проекта RevenueCat и установки скиллов Adapty с их аргументами, флагами и допустимыми значениями. Для чтения аналитики приложения см. Команды аналитики. Для кампаний Apple Ads см. Команды Ads Manager.

Глобальные флаги

Эти флаги доступны для всех команд.

ФлагОписание
--jsonВывод в формате JSON вместо форматированного текста
--helpПоказать справку по команде

Все команды list также принимают флаги пагинации:

ФлагПо умолчаниюОписание
--page1Номер страницы
--page-size20Элементов на странице (макс.: 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 iosApple bundle ID
--google-bundle-idОбязателен с --platform androidGoogle bundle ID

adapty apps update

Обновить существующее приложение.

adapty apps update <app-id> --title "New Name"
АргументОписание
app-idID приложения (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-idID уровня доступа (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-idID уровня доступа (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-idID продукта (UUID)
ФлагОбязательныйОписание
--appДаID приложения (UUID)

adapty products create

Создайте новый продукт.

Important

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 lifetimeID базового плана из Google Play Console
--stripe-product-idТребуется хотя бы один сторID продукта из Stripe
--stripe-price-idОбязательный с --stripe-product-idID цены из Stripe
--paddle-product-idТребуется хотя бы один сторID продукта из Paddle
--paddle-price-idОбязательный с --paddle-product-idID цены из 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-idID продукта (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>
ArgumentDescription
paywall-idPaywall ID (UUID)
FlagRequiredDescription
--appYesApp 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

Замените все поля существующего пейвола.

Important

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

adapty paywalls update --app <app-id> <paywall-id> --title "Default Paywall" --product-id <product-id>

Эта команда заменяет все поля пейвола, включая полный список продуктов.

АргументОписание
paywall-idID пейвола (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-idID пейвола (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-idID флоу (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-idID флоу (UUID)
ФлагОбязателенОписание
--appДаID приложения (UUID)
--nameДаНовое название флоу

adapty flows publish

Опубликуйте текущую версию флоу для ваших пользователей.

adapty flows publish --app <app-id> <flow-id>
АргументОписание
flow-idID флоу (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-idID флоу (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-idID флоу (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-idID флоу (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 экрана для отрисовки
--deviceiphone-14Фрейм устройства для отрисовки
--orientationportraitportrait или 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-idID плейсмента (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. Передача обоих или ни одного из них вызывает ошибку.

Warning

--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-idID плейсмента (UUID)
ФлагОбязательныйОписание
--appДаID приложения (UUID)
--titleДаНазвание плейсмента
--developer-idДаСтроковый идентификатор, используемый в коде приложения для запроса этого плейсмента
--audiencesОдин из двухJSON-массив записей аудиторий, каждая с явным content_type. См. Форма audiences
--paywall-idОдин из двухУстарело. ID пейвола (UUID). Заменяет все аудитории одной аудиторией по умолчанию
Warning

Передача --paywall-id перезаписывает все аудитории на плейсменте. Аудитории для конкретных сегментов удаляются. Чтобы сохранить их, используйте --audiences и включите все записи, которые хотите оставить.

Структура аудиторий

Флаг --audiences принимает JSON-массив. Каждая запись содержит:

ПолеТипОписание
content_typestringОбязательное поле для каждой записи. "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_idsstring[]ID сегментов, на которые нацелена эта аудитория. Длина 0 или 1. Пустой массив обозначает аудиторию по умолчанию — резервный вариант для пользователей, не попавших ни в один другой сегмент
paywall_idstringID пейвола (UUID), который видят пользователи этой аудитории. Обязательное поле, если content_type равен "paywall"
flow_idstringID флоу (UUID), который видят пользователи этой аудитории. Обязательное поле, если content_type равен "flow"
ab_test_idstringID A/B-теста, запускаемого для пользователей этой аудитории. Обязательное поле для всех четырёх типов контента A/B-теста
ab_test_titlestringНазвание A/B-теста. Только для чтения: API игнорирует это поле при записи
prioritynumberНумерация с нуля, уникальная в рамках плейсмента. Аудитории оцениваются от меньшего к большему; аудитория по умолчанию должна иметь наибольшее значение

Плейсмент должен содержать ровно одну аудиторию по умолчанию.

Warning

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}]'

Чтобы заменить пейвол в нескольких плейсментах, не нарушив маршрутизацию по сегментам:

  1. Найдите затронутые плейсменты:

    adapty paywalls placements --app <app-id> <old-paywall-id>
  2. Для каждого из них получите полный массив audiences:

    adapty placements get --app <app-id> <placement-id> --json
  3. Замените соответствующие значения paywall_id на стороне клиента. Все остальные записи, включая записи A/B-тестов, оставьте без изменений.

  4. Запишите изменённые данные обратно:

    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>
FlagRequiredDescription
--appYesApp ID (UUID)

Принимает флаги пагинации.

adapty segments get

Получение информации о конкретном сегменте.

adapty segments get --app <app-id> <segment-id>
АргументОписание
segment-idID сегмента (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-idID сегмента (UUID)
ФлагОбязателенОписание
--appДаID приложения (UUID)
--titleДаНазвание сегмента
--filterДаПравило фильтрации. Можно указывать несколько раз. См. Синтаксис фильтров
--descriptionНетОписание сегмента
Warning

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С --flowID приложения (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-idID миграции из 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-idID действия из 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Отозвать токен на сервере, затем очистить его и сохранённую миграцию локально

Подробнее о каждой команде см. в разделе Аутентификация.