Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion skills/adapty-cli-setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ license: MIT
description: Use when the Adapty CLI needs installing or authenticating before any Apple Search Ads work — a fresh Cowork or cloud session, "adapty: command not found", AuthRequiredError, an expired auth code, or connecting an Apple Search Ads account. Triggers on "install the Adapty CLI", "set up adapty", "adapty auth login", "connect Apple Search Ads", "not authenticated", or any Apple Ads request made in a session where the CLI is not yet installed.
---

<!-- GENERATED — synced from adaptyteam/adapty-cli@v0.8.8 (docs/agent/skills/adapty-cli-setup/SKILL.md). Do not edit here.
<!-- GENERATED — synced from adaptyteam/adapty-cli@v0.8.9 (docs/agent/skills/adapty-cli-setup/SKILL.md). Do not edit here.
Edits are overwritten by .github/workflows/sync-from-cli.yml on the next CLI release. -->

# Adapty CLI setup
Expand Down
15 changes: 12 additions & 3 deletions skills/apple-ads/references/asa-management.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- GENERATED — synced from adaptyteam/adapty-cli@v0.8.8 (docs/agent/asa-management.md). Do not edit here.
<!-- GENERATED — synced from adaptyteam/adapty-cli@v0.8.9 (docs/agent/asa-management.md). Do not edit here.
Edits are overwritten by .github/workflows/sync-from-cli.yml on the next CLI release. -->

# Apple Search Ads — Managing Campaigns
Expand Down Expand Up @@ -31,12 +31,21 @@ Every `list` and `get` command in this file returns metadata only, no metrics. E
|---|---|---|
| `asa campaigns list` | scope filters only | Metadata only. |
| `asa campaigns get <id>` | positional UUID | Metadata only. |
| `asa campaigns create` | `--org`, `--name`, `--adam-id`, `--country` (repeatable), `--daily-budget`; optional `--status` (`ENABLED`/`PAUSED`, no default), `--budget` (lifetime), `--target-cpa`, `--bidding-strategy`, `--supply-source` (repeatable, default `APPSTORE_SEARCH_RESULTS`), `--billing-event` (`IMPRESSIONS`/`TAPS`, default `TAPS`), `--ad-channel-type` (`DISPLAY`/`SEARCH`, default `SEARCH`), `--invoice-advertiser`, `--invoice-order-number`, `--invoice-contact-name`, `--invoice-contact-email`, `--invoice-billing-email` (all five together, LOC organizations only) | `--org` takes the UUID (`internal_id`) from `asa orgs list`, not that row's numeric `org_id`; `--adam-id` comes from `asa apps list`. `--status` has no default — pass `--status PAUSED` to launch without spending until you enable it. The response carries `serving_status` and `serving_state_reasons`; when the campaign is `NOT_RUNNING` the command prints the reason and the fixing command — see [Max Conversions](#max-conversions-campaigns) and [Line of credit](#line-of-credit-loc-organizations). |
| `asa campaigns update <id>` | at least one of `--name`, `--status`, `--country`, `--daily-budget`, `--budget`, `--target-cpa`, `--bidding-strategy`, or `--invoice-advertiser`, `--invoice-order-number`, `--invoice-contact-name`, `--invoice-contact-email`, `--invoice-billing-email` together | The `--invoice-*` flags replace the stored Invoicing Options as a whole — pass all five, a partial set exits 2 before the network. |
| `asa campaigns create` | `--org`, `--name`, `--adam-id`, `--country` (repeatable), `--daily-budget`; optional `--status` (`ENABLED`/`PAUSED`, no default), `--target-cpa`, `--bidding-strategy`, `--supply-source` (repeatable, default `APPSTORE_SEARCH_RESULTS`), `--billing-event` (`IMPRESSIONS`/`TAPS`, default `TAPS`), `--ad-channel-type` (`DISPLAY`/`SEARCH`, default `SEARCH`), `--invoice-advertiser`, `--invoice-order-number`, `--invoice-contact-name`, `--invoice-contact-email`, `--invoice-billing-email` (all five together, LOC organizations only) | `--org` takes the UUID (`internal_id`) from `asa orgs list`, not that row's numeric `org_id`; `--adam-id` comes from `asa apps list`. `--status` has no default — pass `--status PAUSED` only when the user asks to launch without spending (see [Budget and serving](#budget-and-serving)). The response carries `serving_status` and `serving_state_reasons`; when the campaign is `NOT_RUNNING` the command prints the reason and the fixing command — see [Max Conversions](#max-conversions-campaigns) and [Line of credit](#line-of-credit-loc-organizations). |
| `asa campaigns update <id>` | at least one of `--name`, `--status`, `--country`, `--daily-budget`, `--target-cpa`, `--bidding-strategy`, or `--invoice-advertiser`, `--invoice-order-number`, `--invoice-contact-name`, `--invoice-contact-email`, `--invoice-billing-email` together | The `--invoice-*` flags replace the stored Invoicing Options as a whole — pass all five, a partial set exits 2 before the network. |
| `asa campaigns bulk-create` | exactly one of `--file` (JSON structure, `-` for stdin) / `--from-file` (Apple Ads template, `.xlsx` or keywords `.csv`); `--org-id` required with `--from-file`; optional `--preview`, `--no-wait`, `--poll-interval` (default `5`), `--timeout` (default `900`) | Creates a whole structure — campaigns → ad groups → keywords/negative keywords/ads — as one queued operation. `--org-id` is the exception to this file's UUID rule: it takes the **numeric** `org_id` from `asa orgs list` (Apple's `campaign_group_id`), not the `internal_id` UUID that `campaigns create --org` takes. `--from-file` converts the template server-side first (its own budget — see [Request budgets](#request-budgets)); with `--preview` the command prints the converted request and creates nothing. By default it polls until the operation finishes (`success`/`partial`/`failed`, per-object failures listed); `--no-wait` prints the `operation_id` and returns — follow up with `bulk-status`. |
| `asa campaigns bulk-status <operation-id>` | positional operation id, printed by `bulk-create` | Progress of one bulk operation: status, applied/failed counts, and the per-object log with each failure's reason. |
| `asa campaigns bulk-list` | optional `--status` (`pending`/`running`/`success`/`partial`/`failed`, repeatable), `--app` (UUID), `--created-from`/`--created-to` (YYYY-MM-DD) | This company's bulk operations, newest first — one row per operation with its verdict and timestamps, no per-object detail. Use it to find an `operation_id` you lost or to check what ran recently, then drill in with `bulk-status`. Cheap catalog read. |

### Budget and serving

- Budget always means `--daily-budget`. Apple does not support lifetime budgets; if the user gives a total for a
period, divide it by the number of days and confirm the daily amount before writing.
- A campaign serves only when the campaign, its ad groups and its keywords are all enabled (`ENABLED`; keywords
`ACTIVE`). Create them `PAUSED` only if the user asks; after setup, list anything still paused and offer to enable
it (`asa campaigns update <id> --status ENABLED`, `asa ad-groups update <id> --status ENABLED`,
`asa keywords update <id> --status ACTIVE`).

### Max Conversions campaigns

A campaign with `--bidding-strategy MAX_CONVERSIONS` is created fine but stays `NOT_RUNNING` with
Expand Down
2 changes: 1 addition & 1 deletion skills/apple-ads/references/asa-metrics.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- GENERATED — synced from adaptyteam/adapty-cli@v0.8.8 (docs/agent/asa-metrics.md). Do not edit here.
<!-- GENERATED — synced from adaptyteam/adapty-cli@v0.8.9 (docs/agent/asa-metrics.md). Do not edit here.
Edits are overwritten by .github/workflows/sync-from-cli.yml on the next CLI release. -->

# Apple Search Ads — Metrics and Analytics
Expand Down
Loading