Comandos de Ads Manager para el CLI de Adapty Developer

Este artículo lista todos los comandos de Ads Manager en el CLI de Adapty, con sus argumentos, flags y valores aceptados. Los comandos de Ads Manager se encuentran bajo el topic adapty asa.

Estos comandos requieren una cuenta de Apple Ads conectada y una suscripción activa de Ads Manager. Ejecuta adapty asa whoami para verificar ambas. Para el resto de la CLI, consulta la referencia de comandos.

Flags globales

Estos flags están disponibles en todos los comandos de Ads Manager.

FlagDescripción
--jsonSalida en formato JSON en lugar de texto formateado
--helpMuestra la ayuda del comando

Todos los comandos list también aceptan flags de paginación:

FlagPor defectoDescripción
--page1Número de página
--page-size100Elementos por página (máx.: 1000)

Las páginas de Ads Manager son más grandes que en el resto de la CLI. Es preferible usar una página grande en lugar de un bucle de páginas pequeñas.

Todos los comandos que modifican tu cuenta aceptan estos flags:

IndicadorDescripción
--yes, -yAplica sin pedir confirmación. Es obligatorio cuando la salida se redirige por pipe o se usa --json
--idempotency-keyClave fija para esta escritura. Una repetición con la misma clave y cuerpo en 24 horas devuelve el resultado almacenado en lugar de aplicar el cambio de nuevo

Los comandos de Ads Manager no aceptan el indicador --app. El ámbito es la empresa a la que pertenece tu token. --app existe en algunos comandos list solo como filtro. Los comandos de segmentos son la excepción: allí, --app es la app de Adapty a la que pertenece el segmento.

Filtros de lista

Los filtros acotan la consulta en sí, no la página mostrada. Una keywords list sin filtros recorre todas las palabras clave de la cuenta, así que limita cada lectura al nivel que necesites.

FiltroAceptado por
--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 o PAUSED), keywords (ACTIVE o PAUSED)
--searchcampaigns, ad-groups, keywords, negative-keywords, search-terms, ads. Coincidencia de subcadena sin distinción entre mayúsculas y minúsculas en el nombre

adapty asa apps list, orgs list, automations list y automations runs no admiten filtros. Solo aceptan flags de paginación.

--campaign-group, --app, --campaign y --ad-group reciben los UUIDs que imprime el comando list correspondiente, y cada uno es repetible:

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

Un ID que pertenece a otra empresa no devuelve ningún resultado, por lo que la página aparece vacía en lugar de mostrar un error.

Cuenta

adapty asa whoami

Muestra la empresa, cómo se concedió el acceso a Ads Manager y si Apple Ads está conectado.

adapty asa whoami

Ejecuta este comando primero. Informa de si se cumplen los dos requisitos previos para todos los demás comandos.

adapty asa connect

Vincula una cuenta de Apple Ads a Adapty.

adapty asa connect

El comando imprime un enlace de autorización de Apple y espera hasta que Apple notifique que la cuenta está conectada.

FlagPor defectoDescripción
--wait / --no-wait--waitEspera hasta que Apple Ads notifique que está conectado. --no-wait devuelve el control inmediatamente
--timeout300Segundos de espera para el paso del navegador

adapty asa orgs list

Lista los grupos de campañas (organizaciones de Apple Ads) disponibles para tu empresa.

adapty asa orgs list

Cada fila contiene dos identificadores que no son intercambiables:

CampoSe usa como
internal_idEl UUID que --org acepta en campaigns create, y que --campaign-group acepta como filtro de lista
org_idEl ID numérico de organización de Apple, que acepta --org-id en campaigns bulk-create. --org y --campaign-group lo rechazan

--org solo existe en campaigns create. Ningún comando de lista lo acepta.

Cada fila también incluye un payment_model. Cuando es LOC, la organización factura por línea de crédito, y cada campaña en ella necesita los indicadores --invoice-*.

Acepta indicadores de paginación.

adapty asa apps list

Lista las apps promocionadas en Apple Ads.

adapty asa apps list

Cada fila contiene dos identificadores que no son intercambiables:

CampoSe usa como
internal_idEl UUID que --app acepta como filtro de lista
adam_idEl ID numérico de App Store de Apple, que usa --adam-id en campaigns create y product-pages sync

Acepta flags de paginación.

Campañas

adapty asa campaigns list

Lista campañas. Devuelve solo metadatos — consulta los datos de rendimiento con asa metrics.

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

Acepta indicadores de paginación y los filtros de lista --campaign-group, --app, --search y --status.

adapty asa campaigns get

Obtén detalles de una campaña específica.

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

adapty asa campaigns create

Crea una campaña.

adapty asa campaigns create --org <campaign-group-id> --name "Winter push" --adam-id 123456 --country US --daily-budget 50
IndicadorObligatorioDescripción
--orgSíID del grupo de campañas (UUID). Ver orgs list
--nameSíNombre de la campaña
--adam-idSíID de la app en el App Store (adam_id)
--countrySíCódigo de país o región. Repite para varios: --country US --country CA
--daily-budgetSíPresupuesto diario como cantidad simple, por ejemplo 50 o 12.50
--budgetNoPresupuesto total
--target-cpaNoCoste objetivo por adquisición. Debe ser inferior a --daily-budget
--currencyNoCódigo de moneda para los importes de esta llamada. Valor predeterminado: USD
--bidding-strategyNoMANUAL_CPT o MAX_CONVERSIONS. Apple usa MANUAL_CPT por defecto
--ad-channel-typeNoSEARCH o DISPLAY. Valor predeterminado: SEARCH
--billing-eventNoTAPS o IMPRESSIONS. Valor predeterminado: TAPS
--supply-sourceNoFuente de suministro, repetible. Valor predeterminado: APPSTORE_SEARCH_RESULTS
--statusNoEstado inicial: ENABLED o PAUSED
--invoice-advertiserLínea de créditoOpciones de facturación: nombre del anunciante
--invoice-order-numberLínea de créditoOpciones de facturación: número de pedido
--invoice-contact-nameLínea de créditoOpciones de facturación: nombre del contacto de compra
--invoice-contact-emailLínea de créditoOpciones de facturación: email del contacto de compra
--invoice-billing-emailLínea de créditoOpciones de facturación: email del contacto de facturación

Una organización cuyo payment_model es LOC factura mediante línea de crédito, y Apple requiere opciones de facturación en cada una de sus campañas. Pasa los cinco flags --invoice-* en una sola llamada — un conjunto parcial se rechaza antes de enviar la solicitud. Consulta Configurar opciones de facturación para una línea de crédito.

La respuesta incluye serving_status y serving_state_reasons. Es posible crear una campaña y que aún así no sirva anuncios: una campaña de tipo MAX_CONVERSIONS espera a que se cree un grupo de anuncios automatizado, y una campaña con línea de crédito espera a que se configuren sus Opciones de Facturación. En ambos casos, el comando muestra el motivo y el comando que lo resuelve.

adapty asa campaigns update

Actualiza una campaña existente.

adapty asa campaigns update <campaign-id> --daily-budget 80 --status PAUSED
ArgumentoDescripción
campaign-idID de campaña (UUID)
FlagDescripción
--nameNuevo nombre de campaña
--statusENABLED o PAUSED
--countryReemplaza la lista de países. Repite para varios
--daily-budgetNuevo presupuesto diario
--budgetNuevo presupuesto total
--target-cpaNuevo coste objetivo por adquisición
--bidding-strategyMANUAL_CPT o MAX_CONVERSIONS
--currencyCódigo de moneda para los importes de esta llamada. Por defecto: USD
--invoice-advertiserOpciones de facturación: nombre del anunciante
--invoice-order-numberOpciones de facturación: número de pedido
--invoice-contact-nameOpciones de facturación: nombre del contacto del comprador
--invoice-contact-emailOpciones de facturación: email del contacto del comprador
--invoice-billing-emailOpciones de facturación: email del contacto de facturación

Al menos un flag es obligatorio.

Los cinco flags --invoice-* van juntos y reemplazan las Opciones de Facturación almacenadas como un conjunto, así que pasa los cinco aunque solo quieras cambiar uno. Un conjunto parcial se rechaza antes de enviar la solicitud.

adapty asa campaigns bulk-create

Crea toda una estructura de campaña — campañas con grupos de anuncios anidados, palabras clave, palabras clave negativas y anuncios — en una sola operación.

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

Convierte una plantilla bulk nativa de Apple Ads en lugar de escribir el JSON:

adapty asa campaigns bulk-create --from-file Campaign_And_Adgroup_Template.xlsx --org-id 1234567
FlagPredeterminadoDescripción
--file—Archivo JSON con la estructura de la campaña, o - para leer desde la entrada estándar
--from-file—Plantilla en bloque de Apple Ads para convertir en el servidor: Campaign_And_Adgroup_Template.xlsx o un .csv de palabras clave
--org-id—ID numérico de organización de Apple (org_id). Ver orgs list. Obligatorio con --from-file
--preview—Con --from-file: muestra la estructura convertida y se detiene. No se crea nada
--wait / --no-wait--waitConsulta el estado de la operación hasta que finaliza. --no-wait imprime el ID de la operación y termina
--poll-interval5Segundos entre consultas de progreso
--timeout900Segundos máximos para esperar a que finalice la operación

Exactamente uno de --file y --from-file es obligatorio.

La estructura nombra el grupo de campaña en el nivel superior y anida todo lo demás:

{
  "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 acepta el ID numérico de la organización de Apple; usa campaign_group_internal_id para pasar el UUID en su lugar. Un nodo con payload crea una entidad nueva. Un nodo que referencia una entidad existente por su id es un ancla — úsalo para añadir grupos de anuncios a una campaña existente, y añade update_payload para modificar la entidad en la misma operación. Cada campaña anida ad_groups, y cada grupo de anuncios anida keywords, negative_keywords y ads. Una campaña también acepta negative_keywords directamente para las palabras clave a nivel de campaña.

Toda la estructura se valida antes de crear nada, y si hay un rechazo se listan todos los nodos inválidos. Con --from-file, los problemas de conversión se notifican con su hoja, fila y columna; los avisos de conversión no detienen el envío, pero los errores de conversión lo abortan. Antes de enviar, el comando informa de cuántas campañas, grupos de anuncios, palabras clave, palabras clave negativas y anuncios contiene la estructura, y pide confirmación.

A continuación, el comando sondea la operación e imprime el progreso hasta que se alcanza uno de los tres estados finales:

EstadoSignificado
successTodos los objetos fueron creados
partialAlgunos objetos no se crearon. Cada error se muestra con el error de Apple
failedLa operación falló y el comando termina con código distinto de cero

Si la operación no ha finalizado tras --timeout segundos, el comando devuelve e imprime la llamada bulk-status para ejecutar más tarde.

adapty asa campaigns bulk-status

Muestra el progreso de una operación masiva: el estado, el recuento de objetos y el registro por objeto.

adapty asa campaigns bulk-status <operation-id>
ArgumentoDescripción
operation-idID de operación (UUID) que imprime campaigns bulk-create

El campo status puede ser pending, running, success, partial o failed. El bloque counts indica cuántos objetos se han aplicado, fallado y están pendientes del total.

Acepta flags de paginación.

Grupos de anuncios

adapty asa ad-groups list

Lista los grupos de anuncios. Devuelve solo metadatos — consulta el rendimiento con asa metrics.

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

Acepta flags de paginación y los filtros de lista --campaign-group, --app, --campaign, --search y --status.

adapty asa ad-groups get

Obtén los detalles de un grupo de anuncios específico.

adapty asa ad-groups get <ad-group-id>
ArgumentDescription
ad-group-idID del grupo de anuncios (UUID)

adapty asa ad-groups create

Crea un grupo de anuncios en una campaña.

adapty asa ad-groups create --campaign <campaign-id> --name "Brand terms" --default-bid 1.20
FlagObligatorioDescripción
--campaignSíID de campaña (UUID)
--nameSíNombre del grupo de anuncios
--default-bidSalvo --automatedPuja predeterminada como importe simple, por ejemplo 1.20
--cpa-goalNoObjetivo de coste por adquisición
--pricing-modelNoCPC o CPM. Apple exige uno en cada grupo de anuncios. Valor predeterminado: CPC
--start-timeNoInicio de programación (YYYY-MM-DD). Por defecto, hoy
--end-timeNoFin de programación (YYYY-MM-DD)
--automated-keywords / --no-automated-keywordsNoPermite que Apple añada palabras clave automáticamente
--automatedNoCrea el grupo de anuncios automatizado que necesita una campaña MAX_CONVERSIONS
--currencyNoCódigo de divisa para los importes de esta llamada. Valor predeterminado: USD
--statusNoEstado inicial: ENABLED o PAUSED

--automated inscribe al grupo de anuncios en palabras clave automatizadas, por lo que no puede combinarse con --automated-keywords. Apple programa el grupo de anuncios automatizado por su cuenta y lo mantiene activo, por lo que --start-time y --status PAUSED no están permitidos — pausa la campaña en su lugar. Consulta Crear una campaña de Conversiones Máximas.

adapty asa ad-groups update

Actualiza un grupo de anuncios existente.

adapty asa ad-groups update <ad-group-id> --default-bid 1.50 --status PAUSED
ArgumentoDescripción
ad-group-idID del grupo de anuncios (UUID)
FlagDescripción
--nameNuevo nombre del grupo de anuncios
--statusENABLED o PAUSED
--default-bidNueva puja predeterminada
--cpa-goalNuevo objetivo de coste por adquisición
--start-timeInicio de la programación (YYYY-MM-DD)
--end-timeFin de la programación (YYYY-MM-DD)
--automated-keywords / --no-automated-keywordsPermitir que Apple añada palabras clave automáticamente
--currencyCódigo de divisa para los importes de esta llamada. Por defecto: USD

Se requiere al menos un flag. La campaña padre se resuelve en el servidor y nunca se pasa directamente.

Palabras clave

Los comandos de palabras clave se aplican en lotes de un máximo de 100 elementos por llamada. Consulta Gestionar palabras clave para conocer el equivalente en el dashboard.

adapty asa keywords list

Lista las palabras clave de targeting. Devuelve solo metadatos — consulta las métricas de rendimiento con asa metrics.

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

Acepta flags de paginación y los filtros de lista --campaign-group, --app, --campaign, --ad-group, --search y --status. Filtra por --ad-group — sin filtro, esta es la lectura más amplia del tema.

adapty asa keywords recommend

Obtén un banco de palabras clave listo para usar para una de tus aplicaciones. Estos son los mismos bancos que utiliza Ads Manager cuando configuras una campaña en el dashboard.

adapty asa keywords recommend --adam-id <adam-id> --type generic --country US
FlagRequeridoDescripción
--adam-idSíID de tu app en el App Store de Apple (adam_id), obtenido desde asa apps list
--typeSíbrand, generic o competitor
--countryNoCódigo de país ISO de dos letras. Repite para añadir varios. Por defecto: todos los países del banco

El flag --type selecciona el pool:

TipoPalabras clave
brandLos términos de marca de tu app, sus variantes ortográficas y los términos orgánicos que contienen la marca. El resultado también incluye los propios términos de marca
genericTérminos no relacionados con ninguna marca por los que tu app y sus principales competidores orgánicos aparecen en resultados, con todos los términos de marca conocidos eliminados. relevance_tier: top_organic marca los términos donde tu app ya aparece en el top 10 orgánico
competitorLos términos de marca de cada competidor seleccionado para la app en AI Growth Advisor, un grupo por competidor. Está vacío hasta que selecciones competidores

Cada keyword incluye su país, popularidad, puntuación y rango orgánico medio. Las keywords no tienen pujas ni tipos de concordancia. Elige los que consideres oportunos y luego añade las keywords con asa keywords add.

Comprueba el status del pool antes de usar sus keywords:

EstadoSignificado
readyEl pool está listo
buildingEl pool se está construyendo. Vuelve a intentarlo en un minuto
emptyEl pool se ha construido y no contiene keywords
failedLa construcción falló. Inténtalo más tarde

La primera llamada de brand o generic para una app construye el pool durante la solicitud y puede tardar decenas de segundos. El comando tiene un límite de 10 llamadas por minuto por empresa, y solo se ejecuta una construcción de brand o generic a la vez por empresa. Una segunda construcción durante ese tiempo devuelve 429 cli_analytics_busy con Retry-After: 5.

adapty asa keywords add

Añade palabras clave de segmentación a un grupo de anuncios.

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

Lee las palabras clave desde un archivo, una por línea:

adapty asa keywords add --ad-group <ad-group-id> --from-file keywords.txt
IndicadorObligatorioDescripción
--ad-groupSíID del grupo de anuncios (UUID). La campaña se resuelve a partir de él
--textSí, a menos que se use --from-fileTexto de la palabra clave. Repite para varias
--from-fileNoArchivo con una palabra clave por línea. Se combina con los valores --text indicados
--bidNoPuja por palabra clave como importe simple
--match-typeNoBROAD o EXACT. Valor predeterminado: BROAD
--currencyNoCódigo de moneda para los importes de esta llamada. Valor predeterminado: USD
--statusNoACTIVE o PAUSED. Valor predeterminado: ACTIVE

Un ID no válido hace fallar todo el lote antes de llamar a Apple. Apple puede rechazar palabras clave individuales, y cada rechazo se notifica con su motivo.

adapty asa keywords update

Cambia la puja, el estado, el texto o el tipo de coincidencia de una o varias palabras clave.

adapty asa keywords update <keyword-id> <keyword-id> --bid 2.00 --status PAUSED
ArgumentoDescripción
keyword-idID de la palabra clave (UUID). Pasa varios como argumentos adicionales
FlagDescripción
--bidNueva puja
--statusACTIVE o PAUSED
--match-typeBROAD o EXACT
--textNuevo texto de la palabra clave. Solo tiene sentido para una única palabra clave
--currencyCódigo de moneda para los importes de esta llamada. Por defecto: USD

Un único cambio se aplica a cada ID pasado.

Palabras clave negativas

adapty asa negative-keywords list

Lista las palabras clave negativas. Las filas con ad_group_id vacío corresponden al nivel de campaña.

adapty asa negative-keywords list --campaign <campaign-id>
FlagDescripción
--campaign-level-onlyConserva solo las filas a nivel de campaña

Acepta flags de paginación y los filtros de lista --campaign-group, --app, --campaign, --ad-group y --search.

adapty asa negative-keywords add

Añade palabras clave negativas a un grupo de anuncios o a una campaña.

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

Aplícalas a todos los grupos de anuncios de una campaña en su lugar:

adapty asa negative-keywords add --campaign <campaign-id> --all-ad-groups --text free
FlagObligatorioDescripción
--ad-groupUno de --ad-group o --campaignID del grupo de anuncios (UUID). La campaña se resuelve a partir de él
--campaignUno de --ad-group o --campaignID de la campaña (UUID)
--textSíTexto de la palabra clave. Repite para varias
--all-ad-groupsNoAplica a todos los grupos de anuncios de la campaña en lugar de a la campaña en sí. Requiere --campaign
--match-typeNoBROAD o EXACT. Por defecto: EXACT
--statusNoACTIVE o PAUSED. Por defecto: ACTIVE

--ad-group y --campaign son mutuamente excluyentes. Pasa exactamente uno de ellos.

Términos de búsqueda

adapty asa search-terms list

Lista los términos de búsqueda que activaron tus anuncios. Úsala para encontrar nuevas palabras clave y nuevas palabras clave negativas.

adapty asa search-terms list --ad-group <ad-group-id> --date-from 2026-07-01 --date-to 2026-07-31
FlagPor defectoDescripción
--date-fromHoyInicio del período de informe (YYYY-MM-DD)
--date-toHoyFin del período de informe (YYYY-MM-DD)

Acepta flags de paginación y los filtros de lista --campaign-group, --app, --campaign, --ad-group y --search.

Además de sus métricas de rendimiento, cada fila de término de búsqueda incluye los insights de Apple para ese término:

CampoValor
impression_share_all, impression_share_firstCuota de impresiones en cualquier posición de anuncio, o en la primera posición
impression_midpoint_all, impression_midpoint_firstCuota de impresiones como un único porcentaje
rank_all, rank_firstLa posición de tu app frente a otras apps para el término, en cualquier posición de anuncio o en la primera
search_popularityPopularidad de búsqueda de 1 a 5

Cada campo es null cuando Apple no tiene datos para el término. Consulta Insights para ver cómo Apple define estos valores.

Este comando comparte un pool de análisis con asa metrics. Consulta Errors.

Anuncios

Lista de anuncios de Adapty ASA

Lista anuncios. El campo serving_state_reasons explica por qué un anuncio no está en ejecución.

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

Acepta flags de paginación y los filtros de lista --campaign-group, --campaign, --ad-group, --search y --status. Esta lista no tiene el filtro --app, ya que los anuncios pertenecen a grupos de anuncios.

adapty asa ads get

Obtén los detalles de un anuncio específico.

adapty asa ads get <ad-id>
ArgumentDescription
ad-idAd ID (UUID)

adapty asa ads create

Crea un anuncio en un grupo de anuncios.

adapty asa ads create --ad-group <ad-group-id> --creative-id 4321 --name "Summer ad"
FlagObligatorioDescripción
--ad-groupSíID del grupo de anuncios (UUID). La campaña se obtiene a partir de él
--creative-idSíID de creatividad de Apple. Véase creatives list
--nameSíNombre del anuncio
--statusNoEstado inicial: ENABLED o PAUSED

adapty asa ads update

Actualiza un anuncio existente.

adapty asa ads update <ad-id> --status PAUSED
ArgumentoDescripción
ad-idID del anuncio (UUID)
FlagDescripción
--nameNuevo nombre del anuncio
--statusENABLED o PAUSED

Se requiere al menos un flag. El creativo y el grupo de anuncios padre son fijos desde la creación.

Creatives

adapty asa creatives list

Lista los creativos disponibles para nuevos anuncios.

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

El creative_id devuelto aquí es el valor --creative-id para ads create.

Acepta indicadores de paginación y los filtros de lista --campaign-group y --app list filters.

Páginas de producto

adapty asa product-pages list

Lista las páginas de producto personalizadas disponibles para tus apps.

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

Acepta flags de paginación y los filtros de lista --campaign-group y --app list filters.

adapty asa product-pages sync

Actualiza las páginas de producto personalizadas desde App Store Connect.

adapty asa product-pages sync --adam-id 123456
FlagDescription
--adam-idLimita la actualización a una sola app. Omítelo para cubrir todas las apps

La actualización se pone en cola en lugar de ejecutarse de inmediato, y el comando confirma con Sync queued. Si la misma actualización ya está en curso, muestra Already running; nothing new was queued. en su lugar.

Segmentos

Estos comandos crean segmentos de Adapty a partir de campañas, grupos de anuncios o palabras clave de Apple Ads, de la misma forma que Create segment from… en Ads Manager. Usa los segmentos como audiencias en placements y pruebas A/B para mostrar a los usuarios de una campaña específica un paywall diferente.

Cada segmento tiene un filtro de atribución sobre los Apple IDs de las entidades que elijas. El CLI busca esos IDs, por lo que debes pasar los UUIDs que muestran los comandos list.

A diferencia de otros comandos adapty asa, estos aceptan --app: el ID de la app de Adapty a la que pertenece el segmento, obtenido con adapty apps list. No admiten --idempotency-key. Para segmentos con otros filtros, como país o fecha de instalación, usa adapty segments create.

adapty asa segments create

Crea un segmento a partir de campañas, grupos de anuncios o palabras clave.

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>
FlagRequiredDescription
--appYesID de la app de Adapty (UUID)
--campaignUn tipo de entidadID de campaña (UUID). Repetible
--ad-groupUn tipo de entidadID de grupo de anuncios (UUID). Repetible. Con --keyword, indica exactamente uno: el grupo de anuncios que contiene las palabras clave
--keywordUn tipo de entidadID de palabra clave (UUID). Repetible. Requiere un --ad-group
--titleNoTítulo del segmento. Por defecto usa el formato de Ads Manager, por ejemplo [ASA] Campaign: <name>
--descriptionNoDescripción del segmento. Por defecto usa el formato de Ads Manager

Construye cada segmento a partir de un solo tipo de entidad. Pasar --campaign y --ad-group a la vez, o --campaign con --keyword, falla con el código de salida 2 antes de enviar ninguna petición. Varias entidades del mismo tipo generan un único segmento que incluye a los usuarios de cualquiera de ellas.

Conserva el título por defecto salvo que necesites otro. Ads Manager reconoce sus segmentos por el prefijo [ASA], y asa segments list solo muestra los segmentos con este prefijo.

La respuesta contiene el segmento completo, incluyendo id y filters. profile_count comienza en 0, y Adapty lo recalcula después de que se crea el segmento.

adapty asa segments update

Reemplaza las campañas, grupos de anuncios o palabras clave de un segmento existente.

adapty asa segments update <segment-id> --app <app-id> --campaign <campaign-id> --campaign <other-campaign-id>
ArgumentoDescripción
segment-idID del segmento (UUID), obtenido desde asa segments list o adapty segments list

Acepta los mismos flags que asa segments create. El filtro del segmento se reemplaza con las entidades que indiques. El título y la descripción permanecen igual a menos que pases --title o --description.

adapty asa segments list

Lista los segmentos creados a partir de entidades de Apple Ads — aquellos cuyo título empieza por [ASA].

adapty asa segments list --app <app-id> --campaign <campaign-id>
FlagRequeridoDescripción
--appSíID de la app de Adapty (UUID)
--campaignNoMuestra solo los segmentos creados a partir de esta campaña (UUID)
--ad-groupNoMuestra solo los segmentos creados a partir de este grupo de anuncios (UUID)

Pasa --campaign o --ad-group, no ambos. Para evitar crear un segundo segmento para la misma campaña, ejecuta este comando antes de asa segments create: un resultado vacío significa que la campaña aún no tiene ningún segmento.

El comando lee los primeros 100 segmentos de la app.

Automatizaciones

La CLI almacena el JSON de reglas que le proporciones, con una excepción: los ajustes de una acción Add as keyword provienen de flags. Consulta Automatizaciones para saber qué hace cada tipo de regla, y Ejecutar reglas de automatización para saber cómo generar un archivo de reglas.

Marcadores de acción para añadir como keyword

automations create y automations update comparten un conjunto de marcadores que establecen actions[0].params para una acción add-as-keyword-to — Add as keyword en una regla de términos de búsqueda, Add as keyword to… en una regla de keyword. Al pasar cualquiera de ellos se reemplaza todo el objeto params, por lo que esta acción no necesita JSON escrito a mano.

IndicadorCampo JSONDescripción
--target-ad-grouptargets.internal_idsGrupo de anuncios que recibe la palabra clave (UUID), repetible. Una regla sin grupo de anuncios de destino no hace nada
--match-typematch_typeBROAD o EXACT
--cpt-bid-typecpt_bid.typeDe dónde proviene la puja de la nueva palabra clave: ad_group_default_bid, set_to, search_term_current_cpt o keyword_current_bid
--cpt-bidcpt_bid.valueCon set_to, la puja en sí. Con search_term_current_cpt o keyword_current_bid, un incremento porcentual sobre la puja que se copia. No se acepta con ad_group_default_bid
--negatenegateTambién añade el término de búsqueda como palabra clave negativa, en su propio ad-group o en su propia campaign. --no-negate no deja ninguna. Solo para reglas de términos de búsqueda
--skip-enable-duplicatesskip_enable_duplicate_keywordsOmite una palabra clave que ya existe en el grupo de anuncios de destino en lugar de habilitarla. Solo para reglas de términos de búsqueda
--pause-originalpause_in_original_ad_groupPausa la palabra clave de origen en su propio grupo de anuncios. Solo para reglas de palabras clave

--cpt-bid-type y --match-type no tienen valor por defecto, por lo que ambos son obligatorios cuando el archivo de reglas no contiene params propios.

Cuatro de estos flags dependen del campo operate_with de la regla: --negate, --no-negate y --skip-enable-duplicates pertenecen a una regla search-term; --pause-original, a una regla targeting-keyword. Si se usa un flag del otro conjunto, el comando falla con el código de salida 2 y muestra la lista de flags aplicables.

Warning

Toma los params de esta acción de los flags, nunca de una regla que tenga una acción diferente. La API resuelve los params por forma y no por un variante con nombre, por lo que una clave perteneciente a otra acción hace que la elija y descarte el resto, respondiendo con 200 y almacenando una regla que no añade palabras clave a ningún grupo de anuncios.

lista de automatizaciones de adapty asa

Lista las reglas de automatización. El campo status vale 1 para activa y 0 para detenida.

adapty asa automations list

Acepta flags de paginación.

adapty asa automations get

Obtén una regla de automatización específica, incluyendo sus condiciones y acciones.

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

adapty asa automations create

Crea una regla de automatización a partir de un archivo JSON.

adapty asa automations create --file rule.json
FlagDescripción
--fileArchivo JSON con el cuerpo de la regla, o - para leer desde la entrada estándar
--run-nowPone en cola la primera ejecución justo después de guardar la regla

--file es obligatorio y el archivo debe contener exactamente una acción: la API mantiene una acción y una condición por regla.

También acepta los flags de acción add-as-keyword, que rellenan o sobreescriben 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

Modifica una regla de automatización: detenla, renómbrala o reemplaza partes de la regla.

adapty asa automations update <automation-id> --stop
ArgumentoDescripción
automation-idID de la regla de automatización (UUID)
FlagDescripción
--startActiva la regla
--stopDetiene la regla y borra su próxima ejecución
--nameNuevo nombre de la regla
--fileArchivo JSON con las partes a modificar, o - para leer desde la entrada estándar

--start y --stop son mutuamente excluyentes. Un archivo pasado aquí no debe contener internal_id.

También acepta los indicadores de acción add-as-keyword. Si se pasa alguno, la llamada se convierte en una operación de lectura-modificación-escritura: la CLI lee la regla, reconstruye actions[0].params y reenvía toda la lista actions, ya que la API reemplaza actions en lugar de fusionarse con ella. Cualquier edición realizada en el dashboard entre la lectura y la escritura se sobreescribirá.

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

Ejecuta una regla de automatización una vez, fuera de su programación.

adapty asa automations run <automation-id> --dry-run
ArgumentoDescripción
automation-idID de la regla de automatización (UUID)
FlagDescripción
--dry-runEvalúa la regla y registra el resultado sin realizar ningún cambio en Apple Ads

La ejecución se pone en cola y el comando muestra un ID de ejecución. Consulta el resultado con automations runs.

adapty asa automations runs

Lista las ejecuciones pasadas de una regla de automatización, incluidas las ejecuciones de prueba.

adapty asa automations runs <automation-id>
ArgumentoDescripción
automation-idID de la regla de automatización (UUID)

Acepta indicadores de paginación.

Métricas

adapty asa metrics

Consulta métricas para cualquier nivel de la cuenta en un rango de fechas.

adapty asa metrics --entity campaign --date-from 2026-07-01 --date-to 2026-07-31
IndicadorRequeridoDescripción
--entitySíSobre qué reportar: campaign, ad-group, keyword o ad
--date-fromSíInicio del período (YYYY-MM-DD)
--date-toSíFin del período (YYYY-MM-DD)
--metricSíNombre de la métrica, repetible
--appNoReportar solo sobre estas apps. Repetible
--campaignNoReportar solo sobre estas campañas. Repetible
--ad-groupNoReportar solo sobre estos grupos de anuncios. Repetible
--group-byNoDesglosar las filas por country, day, week, month, quarter o year. Repetible
--by-daysNoVentana de renovación en días para métricas de cohorte, repetible. Máximo 16 por llamada. Omitir para usar los valores predeterminados del dashboard
--order-byNoMétrica o campo por el que ordenar
--order-by-dayNoClasificar por una métrica de cohorte en esta ventana de renovación. Debe ser uno de los valores de --by-days
--orderNoasc o desc. Valor predeterminado: desc

Acepta opciones de paginación. De los filtros de lista solo admite --app, --campaign y --ad-group; no hay --search ni --status. Para acotar el informe por cualquier otro criterio, filtra las filas comparándolas con los IDs obtenidos de un comando list con el ámbito correspondiente.

Cada fila es una entidad, agregada en el servidor y ordenada por --order-by. Una consulta de los N primeros resultados es, por tanto, una sola llamada: establece --order-by y --page-size N en lugar de paginar los resultados y sumarlos manualmente:

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

--metric acepta los nombres de las métricas que Ads Manager registra, en la nomenclatura del dashboard — por ejemplo spend, taps o gross_roas. Consulta Métricas para ver la lista completa y cómo se calcula cada una. Si el nombre no existe, el comando falla y muestra los nombres válidos en el error.

Con --entity keyword, --metric también acepta las métricas exclusivas de palabras clave. Apple reporta la cuota de impresiones y el ranking tanto para cualquier posición de anuncio como para la primera posición, por lo que cada una tiene dos versiones: _all y _first. Consulta Insights para ver cómo las define Apple.

MétricaValor
impression_midpoint_all, impression_midpoint_firstCuota de impresiones durante el período de reporte, en porcentaje
rank_all, rank_firstPosición de tu app frente a otras apps para la palabra clave. El valor más reciente, independientemente de --date-from y --date-to
search_popularityPopularidad de búsqueda del 1 al 5

Una palabra clave sin datos de reporte devuelve 0 para estas métricas. Desde CLI 0.9.2, estos nombres reemplazan a rank e impression_midpoint.

Cada métrica que indiques se calcula sobre todo el nivel de entidad antes de paginar, así que solicita solo las columnas que vayas a leer. subscribers y paid_subscribers cuentan perfiles únicos por entidad, lo que cuesta alrededor de diecisiete veces más que una llamada simple de gasto e instalaciones; lo mismo ocurre con arppu y arpas, que se derivan de ellos. Para cualquier --entity, esos cuatro nombres necesitan --campaign o --ad-group para acotar la llamada:

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

Sin uno de esos dos filtros, la llamada falla con 422 cli_metric_scope_too_wide. Acotar el alcance es la forma más barata de acelerar cualquier llamada de métricas, porque el coste depende del número de entidades agregadas, no del tamaño de la página.

La longitud del período de reporte está limitada por el valor más fino de --group-by. Para reportar un período más largo, agrupa de forma más gruesa en lugar de dividir la solicitud en varias llamadas:

Valor más fino de --group-byPeríodo máximo
day28 días
Sin agrupación por período90 días
week180 días
month y más grueso365 días

El grano day cubre como máximo cuatro semanas. Para períodos más largos, usa el grano week, que permite abarcar medio año en una sola llamada.

Cada página tiene un límite de 5000 filas de desglose, donde una fila equivale a una entidad × país × período. Si una página supera ese límite, la llamada falla con 422 cli_response_too_large. Reduce la agrupación, acota el rango de fechas o baja el valor de --page-size; cuando la llamada agrupa por day, el error indica el tamaño de página que cabe, así que reintenta con ese número en lugar de calcularlo tú mismo. metrics overview no devuelve desglose por entidad, por lo que este límite nunca le aplica.

No existe la métrica ltv. El valor del ciclo de vida es una métrica de cohorte que se lee en una ventana de renovación, por lo que --by-days es la forma de solicitar el valor del día 7 o del día 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 ordena las filas por una de esas ventanas, lo que devuelve las mejores campañas por ROAS del día 90 en una sola llamada.

adapty asa metrics overview

Consulta totales de un período, agrupados por una unidad de tiempo.

adapty asa metrics overview --entity campaign --date-from 2026-07-01 --date-to 2026-07-31 --period-unit week
IndicadorRequeridoDescripción
--entitySíSobre qué reportar: campaign, ad-group, keyword o ad
--date-fromSíInicio del período (YYYY-MM-DD)
--date-toSíFin del período (YYYY-MM-DD)
--period-unitNoTamaño del intervalo: day, week, month, quarter o year. Por defecto: day
--metricNoNombre de la métrica, repetible. Omitir para todas las métricas
--by-daysNoVentana de renovación en días para métricas de cohorte, repetible. Máximo 16 por llamada

Este comando devuelve los totales del nivel de entidad completo junto con una serie por período, de modo que responde “cuánto gasté o gané en total” en una sola llamada. No tiene indicadores de ordenación ni paginación.

En este comando, --metric acepta únicamente raíces de cohorte — revenue, roas y arpu — y no sus variantes gross_, proceeds_ o net_. Tampoco acepta las métricas exclusivas de palabras clave.

La duración del período de reporte está limitada por --period-unit:

--period-unitPeríodo máximo
day90 días
week180 días
month y unidades mayores365 días

Competidores

adapty asa competitors summary

Resume las palabras clave de Apple Ads en las que pujan un conjunto de aplicaciones de App Store. Devuelve los mismos datos de competidores que Market Intelligence en el dashboard.

adapty asa competitors summary --app-ids 1668337467,6503873027
FlagObligatorioDescripción
--app-idsSíIDs de Apple App Store (adam_id), separados por comas. Entre 1 y 5 valores

El período de análisis y el conjunto de países están fijados en el servidor: el último mes completo, para todos los países. Este comando no tiene parámetros de período, país ni paginación.

El comando imprime tres bloques: los totales del análisis, las apps con mejor rendimiento y los términos más disputados. Añade --json para obtener el resultado completo, que también desglosa los términos de cada app por país.

La primera llamada para un conjunto de apps puede tardar decenas de segundos mientras se preparan los datos. Las llamadas posteriores para las mismas apps son más rápidas.

Historial de cambios

El historial de cambios se obtiene en tiempo real desde la API de Apple Ads. Adapty no lo almacena, y Apple lo conserva durante 6 meses. Incluye todos los cambios realizados en la organización, ya sean hechos directamente en Apple Ads, por el soporte de Apple o mediante otras herramientas de API.

adapty asa change-history list

Lista los cambios realizados en una organización de Apple Ads, del más reciente al más antiguo.

adapty asa change-history list --campaign-group <campaign-group-id> --date-from 2026-10-01 --entity-type Campaign --event-type UPDATE
IndicadorObligatorioDescripción
--campaign-groupSíOrganización a leer (UUID de orgs list). Una organización por llamada. Para leer varias, ejecuta el comando por cada una
--date-fromNoInicio del período (YYYY-MM-DD). Predeterminado: hace 7 días
--date-toNoFin del período (YYYY-MM-DD). Predeterminado: hoy. El período puede abarcar como máximo 14 días
--entity-typeNoCampaign, AdGroup, Keyword, NegativeKeyword, Ad, Creative, LocationGroup, Org o AdAccount. Repetible. Predeterminado: todos los tipos excepto Org y AdAccount. Org y AdAccount no pueden combinarse con los demás tipos
--event-typeNoCREATE, UPDATE o DELETE. Repetible
--user-typeNoQuién realizó el cambio: CUSTOMER (en Apple Ads), CUSTOMER_API (a través de la API de Apple Ads) o APPLE_SUPPORT. Repetible
--campaign, --ad-group, --entity-idNoIDs numéricos de Apple de la campaña, el grupo de anuncios o la entidad modificada. Repetible
--userNoID de usuario de Apple de la persona que realizó el cambio. Repetible
--txnNoID de transacción de Apple. Repetible
--fieldsNoExpande cada cambio en una fila por campo modificado, con sus valores anterior y nuevo
Important

A diferencia de los filtros de lista de otros comandos, --campaign, --ad-group y --entity-id aceptan los ID numéricos de Apple tal como aparecen en las filas del historial de cambios, no UUIDs. Del mismo modo, modified_by en cada fila es un ID de usuario de Apple, no un correo electrónico.

Cada fila es una transacción: quién la realizó (modified_by, user_type), cuándo (event_time) y las entidades que modificó. Cada entidad incluye un detail_id para change-history get.

Con --fields, el tamaño de página predeterminado es 10 y se rechaza un --page-size mayor. Una página que requiera más de 20 búsquedas fallará: reduce los filtros o elimina --fields y lee cambios individuales con change-history get.

Acepta flags de paginación. --page × --page-size no puede superar 1000.

adapty asa change-history get

Muestra los cambios a nivel de campo de una entidad en una transacción.

adapty asa change-history get Campaign.444555666.TXN_ID --campaign-group <campaign-group-id>
ArgumentoDescripción
detail-iddetail_id de change-history list, en el formato EntityType.entityId.txnId
FlagRequeridoDescripción
--campaign-groupSíOrganización a la que pertenece el cambio. Tómalo de campaign_group_id en la fila del listado

La respuesta lista cada campo modificado con sus old_values y new_values, más los metadatos de la entidad en entity_metadata. Un detail_id del que Apple no tiene registro devuelve 404.

Errores

EstadoCódigoSignificado
402ads_manager_subscription_requiredLa empresa no tiene una suscripción activa de Ads Manager
403cli_ad_account_unreadablechange-history no puede leer la organización: el token de Apple Ads está revocado, la organización ya no está vinculada, o Apple denegó el acceso
404—La entidad no existe, o pertenece a otra empresa
409cli_idempotency_in_progressUna escritura con la misma clave de idempotencia sigue en curso
422cli_idempotency_key_reuseLa misma clave de idempotencia se usó con un cuerpo de solicitud diferente
422cli_metric_scope_too_wideSe solicitó una métrica de conteo de perfiles sin --campaign ni --ad-group
422cli_response_too_largeUna página de metrics superaría las 5000 filas de desglose
429cli_analytics_busyEl pool de análisis está ocupado, o sigue ejecutándose otra construcción de pool de palabras clave para la empresa. El tiempo de espera está en la cabecera Retry-After
429cli_cooldown_activeDemasiadas solicitudes rechazadas han puesto el token en período de enfriamiento
429cli_upstream_rate_limitedApple limitó la tasa de una solicitud change-history. El tiempo de espera de Apple está en la cabecera Retry-After
504cli_read_timeoutUna solicitud change-history tardó más de 50 segundos. Reduce el período o los filtros

Métricas y la lista de términos de búsqueda comparten un presupuesto de análisis por empresa: 5 llamadas por minuto y como máximo 2 en cualquier período de 10 segundos. change-history tiene su propio presupuesto: 30 llamadas por minuto, como máximo 5 en cualquier período de 10 segundos y una solicitud a la vez por empresa. Una ráfaga de 20 solicitudes rechazadas en 5 minutos activa un período de enfriamiento escalonado de 5 minutos, luego 30 minutos y después 3 horas. Reintentar durante la pausa no la extiende, pero la solución es corregir la solicitud fallida en lugar de repetirla.

La CLI gestiona las esperas cortas automáticamente. Ante un 429 que no sea de enfriamiento, si Retry-After es de 60 segundos o menos, el comando espera ese tiempo y reintenta una vez, informando de la espera en el error estándar.