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.
Para conocer los requisitos previos, las prácticas de escritura segura y ejemplos basados en tareas, consulta Gestionar Ads Manager desde la CLI.
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.
| Flag | Descripción |
|---|---|
--json | Salida en formato JSON en lugar de texto formateado |
--help | Muestra la ayuda del comando |
Todos los comandos list también aceptan flags de paginación:
| Flag | Por defecto | Descripción |
|---|---|---|
--page | 1 | Número de página |
--page-size | 100 | Elementos 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:
| Indicador | Descripción |
|---|---|
--yes, -y | Aplica sin pedir confirmación. Es obligatorio cuando la salida se redirige por pipe o se usa --json |
--idempotency-key | Clave 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.
| Filtro | Aceptado por |
|---|---|
--campaign-group | campaigns, ad-groups, keywords, negative-keywords, search-terms, ads, creatives, product-pages |
--app | campaigns, ad-groups, keywords, negative-keywords, search-terms, creatives, product-pages |
--campaign | ad-groups, keywords, negative-keywords, search-terms, ads |
--ad-group | keywords, negative-keywords, search-terms, ads |
--status | campaigns, ad-groups, ads (ENABLED o PAUSED), keywords (ACTIVE o PAUSED) |
--search | campaigns, 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.
| Flag | Por defecto | Descripción |
|---|---|---|
--wait / --no-wait | --wait | Espera hasta que Apple Ads notifique que está conectado. --no-wait devuelve el control inmediatamente |
--timeout | 300 | Segundos 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:
| Campo | Se usa como |
|---|---|
internal_id | El UUID que --org acepta en campaigns create, y que --campaign-group acepta como filtro de lista |
org_id | El 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:
| Campo | Se usa como |
|---|---|
internal_id | El UUID que --app acepta como filtro de lista |
adam_id | El 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>
| Argument | Description |
|---|---|
campaign-id | Campaign 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
| Indicador | Obligatorio | Descripción |
|---|---|---|
--org | Sí | ID del grupo de campañas (UUID). Ver orgs list |
--name | Sí | Nombre de la campaña |
--adam-id | Sí | ID de la app en el App Store (adam_id) |
--country | Sí | Código de país o región. Repite para varios: --country US --country CA |
--daily-budget | Sí | Presupuesto diario como cantidad simple, por ejemplo 50 o 12.50 |
--budget | No | Presupuesto total |
--target-cpa | No | Coste objetivo por adquisición. Debe ser inferior a --daily-budget |
--currency | No | Código de moneda para los importes de esta llamada. Valor predeterminado: USD |
--bidding-strategy | No | MANUAL_CPT o MAX_CONVERSIONS. Apple usa MANUAL_CPT por defecto |
--ad-channel-type | No | SEARCH o DISPLAY. Valor predeterminado: SEARCH |
--billing-event | No | TAPS o IMPRESSIONS. Valor predeterminado: TAPS |
--supply-source | No | Fuente de suministro, repetible. Valor predeterminado: APPSTORE_SEARCH_RESULTS |
--status | No | Estado inicial: ENABLED o PAUSED |
--invoice-advertiser | Línea de crédito | Opciones de facturación: nombre del anunciante |
--invoice-order-number | Línea de crédito | Opciones de facturación: número de pedido |
--invoice-contact-name | Línea de crédito | Opciones de facturación: nombre del contacto de compra |
--invoice-contact-email | Línea de crédito | Opciones de facturación: email del contacto de compra |
--invoice-billing-email | Línea de crédito | Opciones 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
| Argumento | Descripción |
|---|---|
campaign-id | ID de campaña (UUID) |
| Flag | Descripción |
|---|---|
--name | Nuevo nombre de campaña |
--status | ENABLED o PAUSED |
--country | Reemplaza la lista de países. Repite para varios |
--daily-budget | Nuevo presupuesto diario |
--budget | Nuevo presupuesto total |
--target-cpa | Nuevo coste objetivo por adquisición |
--bidding-strategy | MANUAL_CPT o MAX_CONVERSIONS |
--currency | Código de moneda para los importes de esta llamada. Por defecto: USD |
--invoice-advertiser | Opciones de facturación: nombre del anunciante |
--invoice-order-number | Opciones de facturación: número de pedido |
--invoice-contact-name | Opciones de facturación: nombre del contacto del comprador |
--invoice-contact-email | Opciones de facturación: email del contacto del comprador |
--invoice-billing-email | Opciones 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
| Flag | Predeterminado | Descripció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 | --wait | Consulta el estado de la operación hasta que finaliza. --no-wait imprime el ID de la operación y termina |
--poll-interval | 5 | Segundos entre consultas de progreso |
--timeout | 900 | Segundos 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:
| Estado | Significado |
|---|---|
success | Todos los objetos fueron creados |
partial | Algunos objetos no se crearon. Cada error se muestra con el error de Apple |
failed | La 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>
| Argumento | Descripción |
|---|---|
operation-id | ID 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>
| Argument | Description |
|---|---|
ad-group-id | ID 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
| Flag | Obligatorio | Descripción |
|---|---|---|
--campaign | Sí | ID de campaña (UUID) |
--name | Sí | Nombre del grupo de anuncios |
--default-bid | Salvo --automated | Puja predeterminada como importe simple, por ejemplo 1.20 |
--cpa-goal | No | Objetivo de coste por adquisición |
--pricing-model | No | CPC o CPM. Apple exige uno en cada grupo de anuncios. Valor predeterminado: CPC |
--start-time | No | Inicio de programación (YYYY-MM-DD). Por defecto, hoy |
--end-time | No | Fin de programación (YYYY-MM-DD) |
--automated-keywords / --no-automated-keywords | No | Permite que Apple añada palabras clave automáticamente |
--automated | No | Crea el grupo de anuncios automatizado que necesita una campaña MAX_CONVERSIONS |
--currency | No | Código de divisa para los importes de esta llamada. Valor predeterminado: USD |
--status | No | Estado 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
| Argumento | Descripción |
|---|---|
ad-group-id | ID del grupo de anuncios (UUID) |
| Flag | Descripción |
|---|---|
--name | Nuevo nombre del grupo de anuncios |
--status | ENABLED o PAUSED |
--default-bid | Nueva puja predeterminada |
--cpa-goal | Nuevo objetivo de coste por adquisición |
--start-time | Inicio de la programación (YYYY-MM-DD) |
--end-time | Fin de la programación (YYYY-MM-DD) |
--automated-keywords / --no-automated-keywords | Permitir que Apple añada palabras clave automáticamente |
--currency | Có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
| Flag | Requerido | Descripción |
|---|---|---|
--adam-id | Sí | ID de tu app en el App Store de Apple (adam_id), obtenido desde asa apps list |
--type | Sí | brand, generic o competitor |
--country | No | Có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:
| Tipo | Palabras clave |
|---|---|
brand | Los 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 |
generic | Té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 |
competitor | Los 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:
| Estado | Significado |
|---|---|
ready | El pool está listo |
building | El pool se está construyendo. Vuelve a intentarlo en un minuto |
empty | El pool se ha construido y no contiene keywords |
failed | La 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
| Indicador | Obligatorio | Descripción |
|---|---|---|
--ad-group | Sí | ID del grupo de anuncios (UUID). La campaña se resuelve a partir de él |
--text | Sí, a menos que se use --from-file | Texto de la palabra clave. Repite para varias |
--from-file | No | Archivo con una palabra clave por línea. Se combina con los valores --text indicados |
--bid | No | Puja por palabra clave como importe simple |
--match-type | No | BROAD o EXACT. Valor predeterminado: BROAD |
--currency | No | Código de moneda para los importes de esta llamada. Valor predeterminado: USD |
--status | No | ACTIVE 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
| Argumento | Descripción |
|---|---|
keyword-id | ID de la palabra clave (UUID). Pasa varios como argumentos adicionales |
| Flag | Descripción |
|---|---|
--bid | Nueva puja |
--status | ACTIVE o PAUSED |
--match-type | BROAD o EXACT |
--text | Nuevo texto de la palabra clave. Solo tiene sentido para una única palabra clave |
--currency | Có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>
| Flag | Descripción |
|---|---|
--campaign-level-only | Conserva 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
| Flag | Obligatorio | Descripción |
|---|---|---|
--ad-group | Uno de --ad-group o --campaign | ID del grupo de anuncios (UUID). La campaña se resuelve a partir de él |
--campaign | Uno de --ad-group o --campaign | ID de la campaña (UUID) |
--text | Sí | Texto de la palabra clave. Repite para varias |
--all-ad-groups | No | Aplica a todos los grupos de anuncios de la campaña en lugar de a la campaña en sí. Requiere --campaign |
--match-type | No | BROAD o EXACT. Por defecto: EXACT |
--status | No | ACTIVE 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
| Flag | Por defecto | Descripción |
|---|---|---|
--date-from | Hoy | Inicio del período de informe (YYYY-MM-DD) |
--date-to | Hoy | Fin 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:
| Campo | Valor |
|---|---|
impression_share_all, impression_share_first | Cuota de impresiones en cualquier posición de anuncio, o en la primera posición |
impression_midpoint_all, impression_midpoint_first | Cuota de impresiones como un único porcentaje |
rank_all, rank_first | La posición de tu app frente a otras apps para el término, en cualquier posición de anuncio o en la primera |
search_popularity | Popularidad 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>
| Argument | Description |
|---|---|
ad-id | Ad 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"
| Flag | Obligatorio | Descripción |
|---|---|---|
--ad-group | Sí | ID del grupo de anuncios (UUID). La campaña se obtiene a partir de él |
--creative-id | Sí | ID de creatividad de Apple. Véase creatives list |
--name | Sí | Nombre del anuncio |
--status | No | Estado inicial: ENABLED o PAUSED |
adapty asa ads update
Actualiza un anuncio existente.
adapty asa ads update <ad-id> --status PAUSED
| Argumento | Descripción |
|---|---|
ad-id | ID del anuncio (UUID) |
| Flag | Descripción |
|---|---|
--name | Nuevo nombre del anuncio |
--status | ENABLED 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
| Flag | Description |
|---|---|
--adam-id | Limita 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>
| Flag | Required | Description |
|---|---|---|
--app | Yes | ID de la app de Adapty (UUID) |
--campaign | Un tipo de entidad | ID de campaña (UUID). Repetible |
--ad-group | Un tipo de entidad | ID de grupo de anuncios (UUID). Repetible. Con --keyword, indica exactamente uno: el grupo de anuncios que contiene las palabras clave |
--keyword | Un tipo de entidad | ID de palabra clave (UUID). Repetible. Requiere un --ad-group |
--title | No | Título del segmento. Por defecto usa el formato de Ads Manager, por ejemplo [ASA] Campaign: <name> |
--description | No | Descripció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>
| Argumento | Descripción |
|---|---|
segment-id | ID 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>
| Flag | Requerido | Descripción |
|---|---|---|
--app | Sí | ID de la app de Adapty (UUID) |
--campaign | No | Muestra solo los segmentos creados a partir de esta campaña (UUID) |
--ad-group | No | Muestra 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.
| Indicador | Campo JSON | Descripción |
|---|---|---|
--target-ad-group | targets.internal_ids | Grupo de anuncios que recibe la palabra clave (UUID), repetible. Una regla sin grupo de anuncios de destino no hace nada |
--match-type | match_type | BROAD o EXACT |
--cpt-bid-type | cpt_bid.type | De 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-bid | cpt_bid.value | Con 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 |
--negate | negate | Tambié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-duplicates | skip_enable_duplicate_keywords | Omite 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-original | pause_in_original_ad_group | Pausa 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.
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>
| Argument | Description |
|---|---|
automation-id | Automation 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
| Flag | Descripción |
|---|---|
--file | Archivo JSON con el cuerpo de la regla, o - para leer desde la entrada estándar |
--run-now | Pone 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
| Argumento | Descripción |
|---|---|
automation-id | ID de la regla de automatización (UUID) |
| Flag | Descripción |
|---|---|
--start | Activa la regla |
--stop | Detiene la regla y borra su próxima ejecución |
--name | Nuevo nombre de la regla |
--file | Archivo 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
| Argumento | Descripción |
|---|---|
automation-id | ID de la regla de automatización (UUID) |
| Flag | Descripción |
|---|---|
--dry-run | Evalú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>
| Argumento | Descripción |
|---|---|
automation-id | ID 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
| Indicador | Requerido | Descripción |
|---|---|---|
--entity | Sí | Sobre qué reportar: campaign, ad-group, keyword o ad |
--date-from | Sí | Inicio del período (YYYY-MM-DD) |
--date-to | Sí | Fin del período (YYYY-MM-DD) |
--metric | Sí | Nombre de la métrica, repetible |
--app | No | Reportar solo sobre estas apps. Repetible |
--campaign | No | Reportar solo sobre estas campañas. Repetible |
--ad-group | No | Reportar solo sobre estos grupos de anuncios. Repetible |
--group-by | No | Desglosar las filas por country, day, week, month, quarter o year. Repetible |
--by-days | No | Ventana 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-by | No | Métrica o campo por el que ordenar |
--order-by-day | No | Clasificar por una métrica de cohorte en esta ventana de renovación. Debe ser uno de los valores de --by-days |
--order | No | asc 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étrica | Valor |
|---|---|
impression_midpoint_all, impression_midpoint_first | Cuota de impresiones durante el período de reporte, en porcentaje |
rank_all, rank_first | Posició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_popularity | Popularidad 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-by | Período máximo |
|---|---|
day | 28 días |
| Sin agrupación por período | 90 días |
week | 180 días |
month y más grueso | 365 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
| Indicador | Requerido | Descripción |
|---|---|---|
--entity | Sí | Sobre qué reportar: campaign, ad-group, keyword o ad |
--date-from | Sí | Inicio del período (YYYY-MM-DD) |
--date-to | Sí | Fin del período (YYYY-MM-DD) |
--period-unit | No | Tamaño del intervalo: day, week, month, quarter o year. Por defecto: day |
--metric | No | Nombre de la métrica, repetible. Omitir para todas las métricas |
--by-days | No | Ventana 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-unit | Período máximo |
|---|---|
day | 90 días |
week | 180 días |
month y unidades mayores | 365 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
| Flag | Obligatorio | Descripción |
|---|---|---|
--app-ids | Sí | 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
| Indicador | Obligatorio | Descripción |
|---|---|---|
--campaign-group | Sí | Organización a leer (UUID de orgs list). Una organización por llamada. Para leer varias, ejecuta el comando por cada una |
--date-from | No | Inicio del período (YYYY-MM-DD). Predeterminado: hace 7 días |
--date-to | No | Fin del período (YYYY-MM-DD). Predeterminado: hoy. El período puede abarcar como máximo 14 días |
--entity-type | No | Campaign, 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-type | No | CREATE, UPDATE o DELETE. Repetible |
--user-type | No | Quié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-id | No | IDs numéricos de Apple de la campaña, el grupo de anuncios o la entidad modificada. Repetible |
--user | No | ID de usuario de Apple de la persona que realizó el cambio. Repetible |
--txn | No | ID de transacción de Apple. Repetible |
--fields | No | Expande cada cambio en una fila por campo modificado, con sus valores anterior y nuevo |
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>
| Argumento | Descripción |
|---|---|
detail-id | detail_id de change-history list, en el formato EntityType.entityId.txnId |
| Flag | Requerido | Descripción |
|---|---|---|
--campaign-group | Sí | 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
| Estado | Código | Significado |
|---|---|---|
402 | ads_manager_subscription_required | La empresa no tiene una suscripción activa de Ads Manager |
403 | cli_ad_account_unreadable | change-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 |
409 | cli_idempotency_in_progress | Una escritura con la misma clave de idempotencia sigue en curso |
422 | cli_idempotency_key_reuse | La misma clave de idempotencia se usó con un cuerpo de solicitud diferente |
422 | cli_metric_scope_too_wide | Se solicitó una métrica de conteo de perfiles sin --campaign ni --ad-group |
422 | cli_response_too_large | Una página de metrics superaría las 5000 filas de desglose |
429 | cli_analytics_busy | El 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 |
429 | cli_cooldown_active | Demasiadas solicitudes rechazadas han puesto el token en período de enfriamiento |
429 | cli_upstream_rate_limited | Apple limitó la tasa de una solicitud change-history. El tiempo de espera de Apple está en la cabecera Retry-After |
504 | cli_read_timeout | Una 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.