Команды Ads Manager для Adapty Developer CLI

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

Для выполнения этих команд необходимы подключённый аккаунт Apple Ads и активная подписка Ads Manager. Выполните adapty asa whoami, чтобы проверить оба условия. Остальные команды CLI описаны в справочнике команд.

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

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

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

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

ФлагПо умолчаниюОписание
--page1Номер страницы
--page-size100Элементов на странице (макс.: 1000)

Страницы Ads Manager больше, чем в остальной части CLI. Предпочтительнее одна большая страница, чем цикл из небольших.

Все команды, изменяющие ваш аккаунт, принимают следующие флаги:

ФлагОписание
--yes, -yПрименить без запроса подтверждения. Обязателен, если вывод перенаправляется или используется --json
--idempotency-keyФиксированный ключ для этой операции записи. Повторный запрос с тем же ключом и телом в течение 24 часов возвращает сохранённый результат вместо повторного применения изменения

Команды Ads Manager не принимают флаг --app. Область действия — компания, к которой относится ваш токен. --app присутствует в некоторых командах list только как фильтр. Исключение составляют команды segments: там --app — это приложение Adapty, которому принадлежит сегмент.

Фильтры списка

Фильтры сужают сам запрос, а не отображаемую страницу. Без фильтров keywords list перебирает все ключевые слова в аккаунте, поэтому ограничивайте каждый запрос нужным уровнем.

ФильтрПринимается
--campaign-groupcampaigns, ad-groups, keywords, negative-keywords, search-terms, ads, creatives, product-pages
--appcampaigns, ad-groups, keywords, negative-keywords, search-terms, creatives, product-pages
--campaignad-groups, keywords, negative-keywords, search-terms, ads
--ad-groupkeywords, negative-keywords, search-terms, ads
--statuscampaigns, ad-groups, ads (ENABLED или PAUSED), keywords (ACTIVE или PAUSED)
--searchcampaigns, ad-groups, keywords, negative-keywords, search-terms, ads. Поиск подстроки в имени без учёта регистра

adapty asa apps list, orgs list, automations list и automations runs не поддерживают фильтры. Они принимают только флаги пагинации.

--campaign-group, --app, --campaign и --ad-group принимают UUID, которые выводит соответствующая команда list, и каждый из них можно указать несколько раз:

adapty asa keywords list --ad-group <ad-group-id> --ad-group <other-ad-group-id>

Если указать ID, принадлежащий другой компании, страница вернётся пустой — без ошибки.

Аккаунт

adapty asa whoami

Показывает компанию, способ предоставления доступа к Ads Manager и статус подключения Apple Ads.

adapty asa whoami

Запустите эту команду первой. Она покажет, выполнены ли два предварительных условия для всех остальных команд.

adapty asa connect

Подключение Apple Ads аккаунта к Adapty.

adapty asa connect

Команда выводит ссылку для авторизации через Apple и ожидает, пока Apple не сообщит об успешном подключении аккаунта.

ФлагПо умолчаниюОписание
--wait / --no-wait--waitОжидать, пока Apple Ads сообщит о подключении. --no-wait — вернуть управление немедленно
--timeout300Количество секунд ожидания шага в браузере

adapty asa orgs list

Список групп кампаний (организаций Apple Ads), доступных вашей компании.

adapty asa orgs list

Каждая строка содержит два идентификатора, которые не взаимозаменяемы:

ПолеИспользуется как
internal_idUUID, который принимает --org в campaigns create, а также --campaign-group в качестве фильтра списка
org_idЧисловой идентификатор организации Apple, принимаемый --org-id в campaigns bulk-create. --org и --campaign-group его не принимают

--org существует только у campaigns create. Ни одна из команд list его не принимает.

Каждая строка также содержит поле payment_model. Если его значение равно LOC, организация выставляет счёт по кредитной линии, и каждая кампания в ней требует флагов --invoice-*.

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

adapty asa apps list

Список приложений, продвигаемых в Apple Ads.

adapty asa apps list

Каждая строка содержит два идентификатора, которые не взаимозаменяемы:

ПолеИспользуется как
internal_idUUID, который принимает --app в качестве фильтра списка
adam_idЧисловой App Store ID от Apple, используемый с --adam-id в campaigns create и product-pages sync

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

Кампании

adapty asa campaigns list

Список кампаний. Возвращает только метаданные — для получения показателей производительности используйте asa metrics.

adapty asa campaigns list --app <app-id> --status PAUSED

Принимает флаги пагинации и фильтры списка --campaign-group, --app, --search и --status.

adapty asa campaigns get

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

adapty asa campaigns get <campaign-id>
ArgumentDescription
campaign-idCampaign ID (UUID)

adapty asa campaigns create

Создание кампании.

adapty asa campaigns create --org <campaign-group-id> --name "Winter push" --adam-id 123456 --country US --daily-budget 50
ФлагОбязательныйОписание
--orgДаID группы кампаний (UUID). См. orgs list
--nameДаНазвание кампании
--adam-idДаID приложения в App Store (adam_id)
--countryДаКод страны или региона. Для нескольких: --country US --country CA
--daily-budgetДаДневной бюджет в виде числа, например 50 или 12.50
--budgetНетОбщий бюджет
--target-cpaНетЦелевая стоимость привлечения. Должна быть ниже --daily-budget
--currencyНетКод валюты для сумм в этом запросе. По умолчанию: USD
--bidding-strategyНетMANUAL_CPT или MAX_CONVERSIONS. Apple использует MANUAL_CPT по умолчанию
--ad-channel-typeНетSEARCH или DISPLAY. По умолчанию: SEARCH
--billing-eventНетTAPS или IMPRESSIONS. По умолчанию: TAPS
--supply-sourceНетИсточник трафика, можно указать несколько. По умолчанию: APPSTORE_SEARCH_RESULTS
--statusНетНачальный статус: ENABLED или PAUSED
--invoice-advertiserКредитная линияПараметры выставления счёта: имя рекламодателя
--invoice-order-numberКредитная линияПараметры выставления счёта: номер заказа
--invoice-contact-nameКредитная линияПараметры выставления счёта: имя контактного лица покупателя
--invoice-contact-emailКредитная линияПараметры выставления счёта: email контактного лица покупателя
--invoice-billing-emailКредитная линияПараметры выставления счёта: email для выставления счёта

Организация с payment_model равным LOC выставляет счета по кредитной линии, и Apple требует указания параметров выставления счёта для каждой из её кампаний. Передавайте все пять флагов --invoice-* в одном вызове — неполный набор отклоняется до отправки запроса. См. Настройка параметров выставления счёта для кредитной линии.

Ответ содержит serving_status и serving_state_reasons. Кампания может быть создана, но не запущена: кампания с типом MAX_CONVERSIONS ждёт автоматической группы объявлений, а кампания с кредитной линией ждёт настройки параметров выставления счетов. В обоих случаях команда выводит причину и команду, которая её устраняет.

adapty asa campaigns update

Обновите существующую кампанию.

adapty asa campaigns update <campaign-id> --daily-budget 80 --status PAUSED
АргументОписание
campaign-idID кампании (UUID)
ФлагОписание
--nameНовое название кампании
--statusENABLED или PAUSED
--countryЗаменяет список стран. Повторите для нескольких
--daily-budgetНовый дневной бюджет
--budgetНовый общий бюджет
--target-cpaНовая целевая стоимость привлечения
--bidding-strategyMANUAL_CPT или MAX_CONVERSIONS
--currencyКод валюты для сумм в этом запросе. По умолчанию: USD
--invoice-advertiserПараметры выставления счёта: название рекламодателя
--invoice-order-numberПараметры выставления счёта: номер заказа
--invoice-contact-nameПараметры выставления счёта: контактное имя покупателя
--invoice-contact-emailПараметры выставления счёта: контактный email покупателя
--invoice-billing-emailПараметры выставления счёта: email для выставления счёта

По меньшей мере один флаг обязателен.

Пять флагов --invoice-* работают как единое целое и полностью заменяют сохранённые параметры выставления счёта, поэтому передавайте все пять даже при изменении одного из них. Неполный набор отклоняется ещё до отправки запроса.

adapty asa campaigns bulk-create

Создайте всю структуру кампании — кампании с вложенными группами объявлений, ключевыми словами, минус-словами и объявлениями — за одну операцию.

adapty asa campaigns bulk-create --file structure.json

Конвертируйте нативный шаблон Apple Ads bulk вместо того, чтобы писать JSON вручную:

adapty asa campaigns bulk-create --from-file Campaign_And_Adgroup_Template.xlsx --org-id 1234567
ФлагПо умолчаниюОписание
--file—JSON-файл со структурой кампании или - для чтения из стандартного ввода
--from-file—Bulk-шаблон Apple Ads для конвертации на сервере: Campaign_And_Adgroup_Template.xlsx или ключевые слова .csv
--org-id—Числовой идентификатор организации Apple (org_id). См. orgs list. Обязателен при использовании --from-file
--preview—С --from-file: выводит сконвертированную структуру и завершает работу. Ничего не создаётся
--wait / --no-wait--waitОтслеживает операцию до её завершения. --no-wait выводит ID операции и возвращает управление
--poll-interval5Интервал между проверками прогресса в секундах
--timeout900Максимальное время ожидания завершения операции в секундах

Exactly one of --file and --from-file is required.

The structure names the campaign group at the top level and nests everything else:

{
  "campaign_group_id": 555777,
  "campaigns": [
    {
      "payload": {
        "name": "US Search",
        "adam_id": 123456,
        "countries_or_regions": ["US"],
        "daily_budget_amount": { "amount": "100", "currency": "USD" },
        "status": "ENABLED",
        "ad_channel_type": "SEARCH",
        "billing_event": "TAPS",
        "supply_sources": ["APPSTORE_SEARCH_RESULTS"]
      },
      "ad_groups": [
        {
          "payload": { "name": "Brand", "start_time": "2026-08-01T00:00:00Z", "status": "ENABLED" },
          "keywords": [{ "text": "meditation app", "match_type": "BROAD" }]
        }
      ]
    }
  ]
}

campaign_group_id принимает числовой идентификатор организации Apple; используйте campaign_group_internal_id, чтобы передать UUID. Узел с payload создаётся как новый объект. Узел, указывающий на существующий объект по его id, является якорем — используйте его, чтобы добавить группы объявлений в существующую кампанию, а поле update_payload позволяет изменить сам объект в той же операции. Внутри кампании вложены ad_groups, а внутри каждой группы объявлений — keywords, negative_keywords и ads. Кроме того, кампания принимает negative_keywords напрямую — для минус-слов на уровне кампании.

Вся структура проверяется перед созданием, а при отклонении выводится список всех некорректных узлов. При использовании --from-file ошибки конвертации сообщаются с указанием листа, строки и столбца; предупреждения конвертации не останавливают отправку, а ошибки конвертации прерывают её. Перед отправкой команда показывает количество кампаний, групп объявлений, ключевых слов, минус-слов и объявлений в структуре и запрашивает подтверждение.

Затем команда отслеживает операцию и выводит прогресс вплоть до одного из трёх финальных статусов:

СтатусЗначение
successВсе объекты созданы
partialНекоторые объекты не были созданы. Каждая ошибка выводится с сообщением от Apple
failedОперация завершилась с ошибкой, команда возвращает ненулевой код выхода

Если операция не завершилась за --timeout секунд, команда возвращает управление и выводит вызов bulk-status для последующего запуска.

adapty asa campaigns bulk-status

Показывает ход выполнения одной массовой операции: статус, количество объектов и журнал по каждому объекту.

adapty asa campaigns bulk-status <operation-id>
АргументОписание
operation-idID операции (UUID), выведенный командой campaigns bulk-create

Поле status принимает значения pending, running, success, partial или failed. Блок counts показывает, сколько объектов применено, завершилось с ошибкой и ожидает выполнения от общего числа.

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

Рекламные группы

adapty asa ad-groups list

Список групп объявлений. Возвращает только метаданные — для получения показателей производительности используйте asa metrics.

adapty asa ad-groups list --campaign <campaign-id>

Принимает флаги пагинации и фильтры списка --campaign-group, --app, --campaign, --search и --status.

adapty asa ad-groups get

Получить подробную информацию о конкретной группе объявлений.

adapty asa ad-groups get <ad-group-id>
АргументОписание
ad-group-idID группы объявлений (UUID)

adapty asa ad-groups create

Создание группы объявлений в кампании.

adapty asa ad-groups create --campaign <campaign-id> --name "Brand terms" --default-bid 1.20
ФлагОбязателенОписание
--campaignДаID кампании (UUID)
--nameДаНазвание группы объявлений
--default-bidЕсли не указан --automatedСтавка по умолчанию в виде числа, например 1.20
--cpa-goalНетЦелевая стоимость привлечения
--pricing-modelНетCPC или CPM. Apple требует указать для каждой группы объявлений. По умолчанию: CPC
--start-timeНетДата начала (YYYY-MM-DD). По умолчанию — сегодня
--end-timeНетДата окончания (YYYY-MM-DD)
--automated-keywords / --no-automated-keywordsНетРазрешить Apple автоматически добавлять ключевые слова
--automatedНетСоздать автоматизированную группу объявлений, необходимую для кампании MAX_CONVERSIONS
--currencyНетКод валюты для сумм в этом запросе. По умолчанию: USD
--statusНетНачальный статус: ENABLED или PAUSED

--automated включает автоматический подбор ключевых слов для группы объявлений, поэтому его нельзя комбинировать с --automated-keywords. Apple самостоятельно управляет расписанием автоматизированной группы объявлений и держит её включённой, поэтому --start-time и --status PAUSED не поддерживаются — чтобы поставить на паузу, остановите кампанию. См. Создание кампании Max Conversions.

adapty asa ad-groups update

Обновить существующую группу объявлений.

adapty asa ad-groups update <ad-group-id> --default-bid 1.50 --status PAUSED
АргументОписание
ad-group-idID группы объявлений (UUID)
ФлагОписание
--nameНовое название группы объявлений
--statusENABLED или PAUSED
--default-bidНовая ставка по умолчанию
--cpa-goalНовая целевая стоимость привлечения
--start-timeНачало расписания (YYYY-MM-DD)
--end-timeКонец расписания (YYYY-MM-DD)
--automated-keywords / --no-automated-keywordsРазрешить Apple автоматически добавлять ключевые слова
--currencyКод валюты для сумм в этом запросе. По умолчанию: USD

Необходим хотя бы один флаг. Родительская кампания определяется на сервере и никогда не передаётся напрямую.

Ключевые слова

Команды для ключевых слов применяются пакетами не более 100 элементов за один вызов. Эквивалент в дашборде см. в разделе Управление ключевыми словами.

adapty asa keywords list

Выводит список таргетинговых ключевых слов. Возвращает только метаданные — для просмотра показателей производительности используйте asa metrics.

adapty asa keywords list --ad-group <ad-group-id> --status ACTIVE

Принимает флаги пагинации и фильтры списка --campaign-group, --app, --campaign, --ad-group, --search и --status. Фильтруйте по --ad-group — без фильтра это самый широкий запрос по данной теме.

adapty asa keywords recommend

Получите готовый пул ключевых слов для одного из ваших приложений. Это те же пулы, которые использует Ads Manager при настройке кампании в дашборде.

adapty asa keywords recommend --adam-id <adam-id> --type generic --country US
ФлагОбязательныйОписание
--adam-idДаApple App Store ID (adam_id) вашего приложения, из asa apps list
--typeДаbrand, generic или competitor
--countryНетДвухбуквенный код страны ISO. Повторите для нескольких стран. По умолчанию: все страны в пуле

Флаг --type выбирает пул:

ТипКлючевые слова
brandБрендовые запросы вашего приложения, их варианты написания и органические запросы, содержащие бренд. В результатах также перечислены сами брендовые запросы
genericНебрендовые запросы, по которым ранжируется ваше приложение и его главные органические конкуренты, — с удалёнными брендовыми запросами. relevance_tier: top_organic отмечает запросы, по которым ваше приложение уже занимает позиции в органическом топ-10
competitorБрендовые запросы каждого конкурента, выбранного для приложения в AI Growth Advisor, по одному пулу на конкурента. Остаётся пустым до выбора конкурентов

Каждое ключевое слово содержит страну, популярность, оценку и медианный органический ранг. Ставки и типы соответствия не заданы — выберите их самостоятельно, затем добавьте ключевые слова с помощью asa keywords add.

Проверьте status пула перед использованием его ключевых слов:

СтатусЗначение
readyПул сформирован
buildingПул ещё формируется. Повторите попытку примерно через минуту
emptyПул сформирован, но не содержит ключевых слов
failedФормирование завершилось ошибкой. Повторите попытку позже

Первый вызов brand или generic для приложения формирует пул во время запроса и может занять несколько десятков секунд. Команда имеет лимит 10 вызовов в минуту на компанию, и одновременно выполняется только одна сборка brand или generic на компанию. Второй вызов в это время вернёт 429 cli_analytics_busy с заголовком Retry-After: 5.

adapty asa keywords add

Добавьте ключевые слова таргетинга в группу объявлений.

adapty asa keywords add --ad-group <ad-group-id> --text "running shoes" --text "trail shoes" --bid 1.20

Считайте ключевые слова из файла — по одному на строку:

adapty asa keywords add --ad-group <ad-group-id> --from-file keywords.txt
ФлагОбязательныйОписание
--ad-groupДаID группы объявлений (UUID). Из него определяется кампания
--textДа, если не используется --from-fileТекст ключевого слова. Повторите для нескольких
--from-fileНетФайл с одним ключевым словом на строку. Объединяется с любыми значениями --text
--bidНетСтавка за ключевое слово в виде числового значения
--match-typeНетBROAD или EXACT. По умолчанию: BROAD
--currencyНетКод валюты для сумм в этом запросе. По умолчанию: USD
--statusНетACTIVE или PAUSED. По умолчанию: ACTIVE

Один недопустимый идентификатор приводит к сбою всего пакета ещё до обращения к Apple. Apple по-прежнему может отклонять отдельные ключевые слова, и каждый отказ сопровождается указанием причины.

adapty asa keywords update

Изменение ставки, статуса, текста или типа соответствия одного или нескольких ключевых слов.

adapty asa keywords update <keyword-id> <keyword-id> --bid 2.00 --status PAUSED
АргументОписание
keyword-idID ключевого слова (UUID). Чтобы передать несколько, укажите их как дополнительные аргументы
ФлагОписание
--bidНовая ставка
--statusACTIVE или PAUSED
--match-typeBROAD или EXACT
--textНовый текст ключевого слова. Имеет смысл только при обновлении одного ключевого слова
--currencyКод валюты для сумм в этом вызове. По умолчанию: USD

Одно изменение применяется к каждому переданному ID.

Негативные ключевые слова

adapty asa negative-keywords list

Выводит список минус-слов. Строки с пустым ad_group_id относятся к уровню кампании.

adapty asa negative-keywords list --campaign <campaign-id>
ФлагОписание
--campaign-level-onlyОставить только строки уровня кампании

Принимает флаги пагинации и фильтры списка --campaign-group, --app, --campaign, --ad-group и --search.

adapty asa negative-keywords add

Добавление минус-слов в группу объявлений или кампанию.

adapty asa negative-keywords add --ad-group <ad-group-id> --text free

Применить ко всем группам объявлений кампании:

adapty asa negative-keywords add --campaign <campaign-id> --all-ad-groups --text free
ФлагОбязательныйОписание
--ad-groupОдно из --ad-group или --campaignID группы объявлений (UUID). Кампания определяется из него
--campaignОдно из --ad-group или --campaignID кампании (UUID)
--textДаТекст ключевого слова. Повторите для нескольких
--all-ad-groupsНетПрименить ко всем группам объявлений кампании вместо самой кампании. Требует --campaign
--match-typeНетBROAD или EXACT. По умолчанию: EXACT
--statusНетACTIVE или PAUSED. По умолчанию: ACTIVE

--ad-group и --campaign являются взаимоисключающими. Передайте ровно один из них.

Условия поиска

adapty asa search-terms list

Список поисковых запросов, которые запустили ваши объявления. Используйте его для поиска новых ключевых слов и минус-слов.

adapty asa search-terms list --ad-group <ad-group-id> --date-from 2026-07-01 --date-to 2026-07-31
ФлагПо умолчаниюОписание
--date-fromСегодняНачало отчётного периода (YYYY-MM-DD)
--date-toСегодняКонец отчётного периода (YYYY-MM-DD)

Принимает флаги пагинации и фильтры списка --campaign-group, --app, --campaign, --ad-group и --search.

Помимо метрик эффективности, каждая строка поискового запроса содержит инсайты Apple по этому запросу:

ПолеЗначение
impression_share_all, impression_share_firstДоля показов на любой позиции объявления или на первой позиции
impression_midpoint_all, impression_midpoint_firstДоля показов в виде единого процентного показателя
rank_all, rank_firstПозиция вашего приложения относительно других приложений по запросу — на любой позиции объявления или на первой
search_popularityПопулярность поиска от 1 до 5

Каждое поле равно null, если у Apple нет данных по этому показателю. Описание значений смотрите в разделе Insights.

Эта команда использует общий пул аналитики с asa metrics. См. раздел Ошибки.

Реклама

adapty asa ads list

Выводит список объявлений. Поле serving_state_reasons объясняет, почему объявление не показывается.

adapty asa ads list --ad-group <ad-group-id>

Принимает флаги пагинации и фильтры списка --campaign-group, --campaign, --ad-group, --search и --status. У этого списка нет фильтра --app, поскольку объявления принадлежат группам объявлений.

adapty asa ads get

Получить детали конкретного объявления.

adapty asa ads get <ad-id>
АргументОписание
ad-idID объявления (UUID)

adapty asa ads create

Создать объявление в группе объявлений.

adapty asa ads create --ad-group <ad-group-id> --creative-id 4321 --name "Summer ad"
ФлагОбязателенОписание
--ad-groupДаID группы объявлений (UUID). Кампания определяется из него
--creative-idДаApple creative ID. См. creatives list
--nameДаНазвание объявления
--statusНетНачальный статус: ENABLED или PAUSED

adapty asa ads update

Обновление существующего объявления.

adapty asa ads update <ad-id> --status PAUSED
АргументОписание
ad-idID объявления (UUID)
ФлагОписание
--nameНовое название объявления
--statusENABLED или PAUSED

Необходимо указать хотя бы один флаг. Креатив и родительская группа объявлений фиксируются при создании.

Креативы

adapty asa creatives list

Список креативов, доступных для новых объявлений.

adapty asa creatives list --app <app-id>

creative_id, возвращаемый здесь, является значением --creative-id для ads create.

Принимает флаги пагинации и фильтры списка --campaign-group и --app.

Страницы продуктов

adapty asa product-pages list

Выводит список доступных пользовательских страниц продукта для ваших приложений.

adapty asa product-pages list --app <app-id>

Принимает флаги пагинации, а также фильтры --campaign-group и --app из раздела фильтры списка.

adapty asa product-pages sync

Обновить кастомные страницы продукта из App Store Connect.

adapty asa product-pages sync --adam-id 123456
ФлагОписание
--adam-idОграничить обновление одним приложением. Если не указан, охватывает все приложения

Обновление ставится в очередь, а не выполняется сразу — команда подтверждает это сообщением Sync queued.. Если такое же обновление уже выполняется, вместо этого выводится Already running; nothing new was queued.

Сегменты

Эти команды создают сегменты Adapty из кампаний, групп объявлений или ключевых слов Apple Ads — так же, как Create segment from… в Ads Manager. Используйте сегменты как аудитории в плейсментах и A/B-тестах, чтобы показывать пользователям из конкретной кампании другой пейвол.

Каждый сегмент содержит один фильтр атрибуции по Apple ID выбранных сущностей. CLI самостоятельно ищет эти ID, поэтому вы передаёте UUID, которые выводят команды list.

В отличие от других команд adapty asa, эти принимают --app: идентификатор приложения Adapty, которому принадлежит сегмент, из adapty apps list. Они не принимают --idempotency-key. Для сегментов с другими фильтрами, такими как страна или дата установки, используйте adapty segments create.

adapty asa segments create

Создайте сегмент на основе кампаний, групп объявлений или ключевых слов.

adapty asa segments create --app <app-id> --campaign <campaign-id>
adapty asa segments create --app <app-id> --ad-group <ad-group-id> --keyword <keyword-id> --keyword <other-keyword-id>
ФлагОбязательныйОписание
--appДаID приложения Adapty (UUID)
--campaignОдин тип сущностиID кампании (UUID). Можно указывать несколько раз
--ad-groupОдин тип сущностиID группы объявлений (UUID). Можно указывать несколько раз. При использовании с --keyword укажите ровно одну: группу объявлений, содержащую ключевые слова
--keywordОдин тип сущностиID ключевого слова (UUID). Можно указывать несколько раз. Требует одного --ad-group
--titleНетНазвание сегмента. По умолчанию используется формат Ads Manager, например [ASA] Campaign: <name>
--descriptionНетОписание сегмента. По умолчанию используется формат Ads Manager

Каждый сегмент строится из одного типа сущностей. Одновременная передача --campaign и --ad-group, или --campaign вместе с --keyword, приводит к ошибке с кодом выхода 2 до отправки любого запроса. Несколько сущностей одного типа создают один сегмент, охватывающий пользователей из любой из них.

Оставьте заголовок по умолчанию, если не требуется другой. Ads Manager распознаёт свои сегменты по префиксу [ASA], а asa segments list показывает только сегменты с этим префиксом.

Ответ содержит весь сегмент, включая id и filters. profile_count начинается с 0, и Adapty пересчитывает его после создания сегмента.

adapty asa segments update

Замените кампании, группы объявлений или ключевые слова существующего сегмента.

adapty asa segments update <segment-id> --app <app-id> --campaign <campaign-id> --campaign <other-campaign-id>
АргументОписание
segment-idID сегмента (UUID), из asa segments list или adapty segments list

Принимает те же флаги, что и asa segments create. Фильтр сегмента заменяется теми сущностями, которые вы передаёте. Название и описание остаются прежними, если вы не передаёте --title или --description.

adapty asa segments list

Список сегментов, созданных на основе сущностей Apple Ads, — тех, чьё название начинается с [ASA].

adapty asa segments list --app <app-id> --campaign <campaign-id>
ФлагОбязателенОписание
--appДаID приложения Adapty (UUID)
--campaignНетОставить только сегменты, построенные на основе этой кампании (UUID)
--ad-groupНетОставить только сегменты, построенные на основе этой группы объявлений (UUID)

Передайте --campaign или --ad-group, но не оба сразу. Чтобы не создавать второй сегмент для той же кампании, выполните эту команду перед asa segments create: пустой результат означает, что у кампании ещё нет сегмента.

Команда читает первые 100 сегментов приложения.

Автоматизации

CLI сохраняет JSON-правило, которое вы передаёте, с одним исключением: настройки действия Add as keyword задаются через флаги. Смотрите Автоматизации для описания каждого типа правил и Запуск правил автоматизации — для создания файла правила.

Флаги действия «добавить как ключевое слово»

Команды automations create и automations update имеют общий набор флагов, задающих actions[0].params для действия add-as-keyword-to — Add as keyword в правиле поисковых запросов, Add as keyword to… в правиле для ключевых слов. Передача любого из этих флагов заменяет весь объект params, поэтому вводить JSON вручную для этого действия не нужно.

ФлагJSON-полеОписание
--target-ad-grouptargets.internal_idsГруппа объявлений, получающая ключевое слово (UUID), может повторяться. Правило без целевой группы объявлений не делает ничего
--match-typematch_typeBROAD или EXACT
--cpt-bid-typecpt_bid.typeИсточник ставки для нового ключевого слова: ad_group_default_bid, set_to, search_term_current_cpt или keyword_current_bid
--cpt-bidcpt_bid.valueПри set_to — сама ставка. При search_term_current_cpt или keyword_current_bid — процентная наценка к копируемой ставке. Не принимается при ad_group_default_bid
--negatenegateТакже добавляет поисковый запрос как минус-слово — в своей ad-group или своей campaign. --no-negate не оставляет минус-слов. Только для правил поисковых запросов
--skip-enable-duplicatesskip_enable_duplicate_keywordsПропускать ключевое слово, которое уже существует в целевой группе объявлений, вместо его активации. Только для правил поисковых запросов
--pause-originalpause_in_original_ad_groupПриостановить исходное ключевое слово в его группе объявлений. Только для правил ключевых слов

--cpt-bid-type и --match-type не имеют значений по умолчанию, поэтому оба обязательны, если файл правила не содержит собственных params.

Четыре флага зависят от поля operate_with правила: --negate, --no-negate и --skip-enable-duplicates относятся к правилу search-term, --pause-original — к правилу targeting-keyword. Флаг из другого набора завершается с кодом выхода 2 и выводит список применимых флагов.

Warning

Берите params для этого действия из флагов, а не из правила с другим действием. API определяет params по форме, а не по названию варианта — поэтому ключ, принадлежащий другому действию, заставит его выбрать то действие и проигнорировать остальное: вернёт 200 и сохранит правило, которое не добавит ключевые слова ни в одну группу объявлений.

adapty asa automations list

Список правил автоматизации. Поле status принимает значение 1 для активных и 0 для остановленных.

adapty asa automations list

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

adapty asa automations get

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

adapty asa automations get <automation-id>
ArgumentDescription
automation-idAutomation rule ID (UUID)

adapty asa automations create

Создаёт правило автоматизации из JSON-файла с описанием правила.

adapty asa automations create --file rule.json
ФлагОписание
--fileJSON-файл с телом правила, или - для чтения из стандартного ввода
--run-nowСтавит в очередь первый запуск сразу после сохранения правила

--file обязателен, и файл должен содержать ровно одно действие: API хранит одно действие и одно условие на правило.

Также принимает флаги действия add-as-keyword, которые заполняют или переопределяют actions[0].params:

adapty asa automations create --file rule.json --target-ad-group <ad-group-id> --match-type EXACT --cpt-bid-type search_term_current_cpt --negate ad-group

adapty asa automations update

Изменить правило автоматизации: остановить его, переименовать или заменить части правила.

adapty asa automations update <automation-id> --stop
АргументОписание
automation-idID правила автоматизации (UUID)
ФлагОписание
--startАктивировать правило
--stopОстановить правило и сбросить время следующего запуска
--nameНовое имя правила
--fileJSON-файл с изменяемыми частями или - для чтения из стандартного ввода

--start и --stop взаимоисключают друг друга. Файл, переданный здесь, не должен содержать internal_id.

Также принимает флаги действия add-as-keyword. Передача одного из них превращает вызов в операцию чтение-изменение-запись: CLI читает правило, перестраивает actions[0].params и отправляет весь список actions обратно, поскольку API заменяет actions целиком, а не объединяет с существующим. Правки, сделанные в дашборде между чтением и записью, будут перезаписаны.

An update with an action flag also repairs a rule whose stored params carry the shape of another action. The params are rebuilt from scratch, so only the stored keys that fit add-as-keyword-to are kept and everything else has to come from a flag.

adapty asa automations run

Запустить правило автоматизации один раз, вне расписания.

adapty asa automations run <automation-id> --dry-run
АргументОписание
automation-idID правила автоматизации (UUID)
ФлагОписание
--dry-runПроверить правило и записать результат в лог без изменений в Apple Ads

Запуск ставится в очередь, и команда выводит ID запуска. Просмотреть результат можно с помощью automations runs.

adapty asa automations runs

Список прошедших запусков правила автоматизации, включая тестовые (dry run).

adapty asa automations runs <automation-id>
АргументОписание
automation-idID правила автоматизации (UUID)

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

Метрики

adapty asa metrics

Запрашивает метрики для любого уровня аккаунта за указанный диапазон дат.

adapty asa metrics --entity campaign --date-from 2026-07-01 --date-to 2026-07-31
ФлагОбязательныйОписание
--entityДаНа что составлять отчёт: campaign, ad-group, keyword или ad
--date-fromДаНачало периода (YYYY-MM-DD)
--date-toДаКонец периода (YYYY-MM-DD)
--metricДаНазвание метрики, можно указывать несколько раз
--appНетФильтровать только по этим приложениям. Можно указывать несколько раз
--campaignНетФильтровать только по этим кампаниям. Можно указывать несколько раз
--ad-groupНетФильтровать только по этим группам объявлений. Можно указывать несколько раз
--group-byНетГруппировка строк по country, day, week, month, quarter или year. Можно указывать несколько раз
--by-daysНетОкно продления в днях для метрик когорт, можно указывать несколько раз. Максимум 16 за вызов. Если не указать — используются значения по умолчанию из дашборда
--order-byНетМетрика или поле для сортировки
--order-by-dayНетРанжировать по метрике когорты при данном окне продления. Должно быть одним из значений --by-days
--orderНетasc или desc. По умолчанию: desc

Принимает флаги пагинации. Из фильтров списка поддерживает только --app, --campaign и --ad-group; параметров --search и --status нет. Чтобы сузить отчёт по другим критериям, сопоставьте строки с идентификаторами из команды list с нужной областью.

Каждая строка — одна сущность, агрегированная на сервере и отсортированная по --order-by. Запрос «топ-N» — это один вызов: задайте --order-by и --page-size N, не перебирая страницы и не суммируя результаты вручную:

adapty asa metrics --entity campaign --date-from 2026-07-01 --date-to 2026-07-31 --order-by spend --page-size 5

--metric принимает названия метрик, которые отслеживает Ads Manager, в номенклатуре дашборда — например spend, taps или gross_roas. Полный список и описание расчёта каждой метрики см. в разделе Метрики. Если указать несуществующее название, команда завершится с ошибкой и выведет список допустимых значений.

При использовании --entity keyword параметр --metric также принимает метрики, доступные только для ключевых слов. Apple сообщает долю показов и позицию как для любой позиции объявления, так и для первой позиции объявления, поэтому каждая из них представлена в двух вариантах: _all и _first. Подробнее о том, как Apple их определяет, см. в разделе Insights.

МетрикаЗначение
impression_midpoint_all, impression_midpoint_firstДоля показов за отчётный период, в процентах
rank_all, rank_firstПозиция вашего приложения среди других приложений по ключевому слову. Актуальное значение, независимо от --date-from и --date-to
search_popularityПопулярность поискового запроса от 1 до 5

Ключевое слово без данных отчёта возвращает 0 для этих метрик. Начиная с CLI 0.9.2, эти названия заменяют rank и impression_midpoint.

Каждая метрика вычисляется по всему уровню сущности до разбивки на страницы, поэтому запрашивайте только нужные столбцы, а не весь каталог. subscribers и paid_subscribers считают уникальные профили на сущность — это примерно в семнадцать раз дороже простого запроса расходов и установок; то же касается arppu и arpas, которые производятся от них. На любом --entity эти четыре имени требуют --campaign или --ad-group для сужения запроса:

adapty asa metrics --entity keyword --date-from 2026-07-01 --date-to 2026-07-31 --metric arpas --campaign <campaign-id>

Без одного из этих двух фильтров запрос завершается ошибкой 422 cli_metric_scope_too_wide. Сужение области — самый дешёвый способ ускорить любой запрос метрик, поскольку стоимость определяется количеством агрегируемых сущностей, а не размером страницы.

Длина периода отчётности ограничена наименьшим значением --group-by. Чтобы охватить более длинный период, используйте более крупную группировку, а не разбивайте запрос на несколько частей:

Наименьшее значение --group-byМаксимальный период
day28 дней
Без группировки по периоду90 дней
week180 дней
month и крупнее365 дней

Гранулярность по дням охватывает не более четырёх недель. Для более длительного периода запрашивайте данные с гранулярностью week — один запрос вмещает до полугода.

Каждая страница также ограничена 5000 строк разбивки, где строка — это одна сущность × страна × период. Если страница превышает лимит, запрос завершается ошибкой 422 cli_response_too_large. Уменьшите детализацию группировки, сузьте временной диапазон или снизьте значение --page-size. При группировке по day ошибка сообщает подходящий размер страницы — используйте именно его, а не вычисляйте самостоятельно. Команда metrics overview не возвращает разбивку по сущностям, поэтому это ограничение к ней не применяется.

Метрики ltv не существует. Lifetime value — это когортная метрика, считываемая в окне продления, поэтому --by-days — это способ запросить значение за день 7 или день 90:

adapty asa metrics --entity campaign --date-from 2026-07-01 --date-to 2026-07-31 --metric roas --by-days 7 --by-days 90

--order-by-day сортирует строки по одному из этих окон, что возвращает топ кампаний по ROAS за день 90 в одном вызове.

adapty asa metrics overview

Query totals for a period, bucketed by a unit of time.

adapty asa metrics overview --entity campaign --date-from 2026-07-01 --date-to 2026-07-31 --period-unit week
ФлагОбязательныйОписание
--entityДаПо какому объекту строить отчёт: campaign, ad-group, keyword или ad
--date-fromДаНачало периода (YYYY-MM-DD)
--date-toДаКонец периода (YYYY-MM-DD)
--period-unitНетРазмер бакета: day, week, month, quarter или year. По умолчанию: day
--metricНетНазвание метрики, можно указывать несколько раз. Не указывайте, чтобы получить все метрики
--by-daysНетОкно продлений в днях для метрик когорт, можно указывать несколько раз. Максимум 16 за один вызов

Эта команда возвращает итоговые значения для всего уровня сущности плюс серию по периодам, то есть за один вызов отвечает на вопрос «сколько я потратил или заработал в целом». У неё нет флагов сортировки и пагинации.

В этой команде --metric принимает только корневые метрики когорты — revenue, roas и arpu — без вариантов gross_, proceeds_ или net_. Также не принимаются метрики только для ключевых слов.

Длина отчётного периода ограничена значением --period-unit:

--period-unitМаксимальный период
day90 дней
week180 дней
month и крупнее365 дней

Конкуренты

adapty asa competitors summary

Показывает сводку по ключевым словам Apple Ads, на которые делает ставки набор приложений из App Store. Возвращает те же данные о конкурентах, что и Market Intelligence в дашборде.

adapty asa competitors summary --app-ids 1668337467,6503873027
ФлагОбязательныйОписание
--app-idsДаID приложений в Apple App Store (adam_id), через запятую. От 1 до 5 значений

Отчётный период и набор стран фиксированы на сервере — последний полный месяц, все страны. У команды нет флагов для периода, страны или пагинации.

Команда выводит три блока: общие показатели анализа, топ приложений по эффективности и наиболее конкурентные термины. Добавьте --json для получения полного результата, который также содержит разбивку терминов каждого приложения по странам.

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

История изменений

История изменений поступает напрямую из Apple Ads API. Adapty её не хранит, а Apple держит её в течение 6 месяцев. Она охватывает все изменения в организации, включая изменения, внесённые непосредственно в Apple Ads, через поддержку Apple или другие инструменты API.

adapty asa change-history list

Список изменений в одной организации Apple Ads, начиная с самых новых.

adapty asa change-history list --campaign-group <campaign-group-id> --date-from 2026-10-01 --entity-type Campaign --event-type UPDATE
ФлагОбязателенОписание
--campaign-groupДаОрганизация для чтения (UUID из orgs list). Одна организация за вызов. Чтобы прочитать несколько, запустите команду для каждой
--date-fromНетНачало периода (YYYY-MM-DD). По умолчанию: 7 дней назад
--date-toНетКонец периода (YYYY-MM-DD). По умолчанию: сегодня. Период не может превышать 14 дней
--entity-typeНетCampaign, AdGroup, Keyword, NegativeKeyword, Ad, Creative, LocationGroup, Org или AdAccount. Можно указывать несколько раз. По умолчанию: все типы, кроме Org и AdAccount. Org и AdAccount нельзя комбинировать с другими типами
--event-typeНетCREATE, UPDATE или DELETE. Можно указывать несколько раз
--user-typeНетКто внёс изменение: CUSTOMER (в Apple Ads), CUSTOMER_API (через Apple Ads API) или APPLE_SUPPORT. Можно указывать несколько раз
--campaign, --ad-group, --entity-idНетЧисловые ID Apple для кампании, группы объявлений или изменённой сущности. Можно указывать несколько раз
--userНетApple ID пользователя, внёсшего изменение. Можно указывать несколько раз
--txnНетID транзакции Apple. Можно указывать несколько раз
--fieldsНетРазворачивает каждое изменение в одну строку на каждое изменённое поле с его старым и новым значением
Important

В отличие от фильтров списка других команд, --campaign, --ad-group и --entity-id принимают числовые идентификаторы Apple, как они указаны в строках истории изменений, — не UUID. Аналогично, modified_by в каждой строке — это идентификатор пользователя Apple, а не email.

Каждая строка — одна транзакция: кто её совершил (modified_by, user_type), когда (event_time) и какие сущности были изменены. Каждая сущность содержит detail_id для change-history get.

С --fields размер страницы по умолчанию равен 10, а большее значение --page-size не принимается. Страница, для которой потребовалось бы более 20 запросов, завершится ошибкой: сузьте фильтры, или уберите --fields и читайте отдельные изменения с помощью change-history get.

Принимает флаги пагинации. Произведение --page × --page-size не может превышать 1000.

adapty asa change-history get

Показывает изменения на уровне полей для одной сущности в одной транзакции.

adapty asa change-history get Campaign.444555666.TXN_ID --campaign-group <campaign-group-id>
АргументОписание
detail-iddetail_id из change-history list, в формате EntityType.entityId.txnId
ФлагОбязательныйОписание
--campaign-groupДаОрганизация, к которой относится изменение. Берётся из campaign_group_id в строке списка

Ответ содержит список каждого изменённого поля с его old_values и new_values, а также метаданные сущности в entity_metadata. Запрос с detail_id, о котором у Apple нет сведений, возвращает 404.

Ошибки

СтатусКодОписание
402ads_manager_subscription_requiredУ компании нет активной подписки Ads Manager
403cli_ad_account_unreadablechange-history не может прочитать организацию: токен Apple Ads отозван, организация больше не привязана или Apple отклонила доступ
404—Сущность не существует или принадлежит другой компании
409cli_idempotency_in_progressЗапись с тем же ключом идемпотентности ещё выполняется
422cli_idempotency_key_reuseТот же ключ идемпотентности был использован с другим телом запроса
422cli_metric_scope_too_wideЗапрошена метрика подсчёта профилей без --campaign или --ad-group
422cli_response_too_largeСтраница metrics превысила бы 5000 строк разбивки
429cli_analytics_busyПул аналитики занят или для компании ещё выполняется сборка пула ключевых слов. Время ожидания указано в заголовке Retry-After
429cli_cooldown_activeСлишком большое количество отклонённых запросов перевело токен в режим ожидания
429cli_upstream_rate_limitedApple ограничила частоту запросов change-history. Время ожидания от Apple указано в заголовке Retry-After
504cli_read_timeoutЗапрос change-history выполнялся дольше 50 секунд. Сузьте период или фильтры

Метрики и список поисковых запросов используют один общий бюджет на компанию: 5 вызовов в минуту, не более 2 за любые 10 секунд. У change-history собственный бюджет: 30 вызовов в минуту, не более 5 за любые 10 секунд, и одновременно только один запрос на компанию. Если за 5 минут накапливается 20 отклонённых запросов, включается нарастающий кулдаун: сначала 5 минут, затем 30 минут, затем 3 часа. Повторные попытки во время паузы её не продлевают, однако решение — исправить проблемный запрос, а не повторять его снова.

CLI обрабатывает короткие ожидания автоматически. Если при ошибке 429 (не период отдыха) заголовок Retry-After указывает 60 секунд или меньше, команда ждёт указанное время и повторяет запрос, сообщая об ожидании в стандартный поток ошибок.