CLIからAds Managerを管理する

Adapty CLIでは、adapty asaトピックの下で、ターミナルからAds Managerアカウントを管理できます。キャンペーン、広告グループ、キーワード、広告、プロダクトページ、自動化ルール、指標、競合調査などに対応しています。

ブラウザでは時間がかかる作業に活用しましょう。たとえば、AIエージェントに広告パフォーマンスへのライブアクセスを提供したり、ファイルから数百件のキーワードを追加したり、複数のキャンペーンに同じ設定を適用したりする場合です。それ以外の作業は、ダッシュボードの方が速いです。

Warning

CLIでは削除操作はできません。キャンペーン、広告、自動化ルールはターミナルから作成・更新・一時停止できますが、削除はダッシュボードからのみ可能です。

始める前に

Ads Manager のコマンドは、CLI の他の機能と同じインストール・ログイン手順を使用します。まだ設定していない場合は、クイックスタートガイドのステップ 1 と 2 を参照してください。

前提条件

すべての adapty asa コマンドには、さらに次の2つの条件が必要です:

  • Apple Ads アカウントの接続: adapty asa connect を使うか、Adapty Ads Manager を始めるで説明されているダッシュボードから接続してください。
  • 有効な Ads Manager サブスクリプション: これがない場合、すべてのコマンドが 402 ads_manager_subscription_required で失敗します。

次のコマンドで両方を確認できます:

adapty asa whoami

CLIの他の部分との違い

  • --app フラグはありません: スコープはトークンが属する会社です。--app は一部の list コマンドにフィルターとしてのみ存在します。
  • 書き込みはAppleに直接届きます: アカウントを変更するコマンドはリクエスト本文を表示し、送信前に確認を求めます。ステージング手順はありません。
  • 読み取りは低コスト、書き込みは高コスト: list コマンドと --dry-run は自由に使用できます。それ以外はすべて不可逆的なものとして扱ってください。

確認プロンプトをスクリプト内でスキップするには、--yes を渡してください。--json モードまたはパイプ経由では、書き込みコマンドは応答を無限に待つ代わりに拒否するため、--yes が必要です。

必要なIDを確認する

各コマンドはUUIDを必要とし、すべてのUUIDはlistコマンドから取得します。階層に沿って順番に実行してください。

adapty asa orgs list
adapty asa campaigns list --campaign-group <campaign-group-id>
adapty asa ad-groups list --campaign <campaign-id>

各読み取りにはフィルターを指定してスコープを絞ってください。フィルターは表示されるページではなくクエリ自体を絞り込むため、スコープを指定した読み取りはコストが低く、指定しない場合はアカウント全体をページングします。--ad-groupを指定しないadapty asa keywords listは、このトピックの中で最も広範な読み取りです。

これらのリストはメタデータのみを返します。パフォーマンスの数値は asa metrics から取得できます。

キーワードの推奨を取得する

リサーチなしでキーワードリストを始めるには、アプリ向けのプールをそのまま取得します。adapty asa apps list から取得したアプリの adam_id と、プールの種類(brand、generic、または competitor)を指定してください。

adapty asa keywords recommend --adam-id <adam-id> --type generic --country US

プールにはビッドやマッチタイプがありません。それらは自分で選択し、一括でキーワードを追加するの説明に従ってキーワードを追加してください。出力に status: building と表示された場合は、約1分後に再試行してください。プールのタイプと制限については、Ads Manager コマンドを参照してください。

キーワードを一括追加する

キーワードを1件ずつ追加するのは、ダッシュボードを離れる主な理由です。テキストファイルに1行1キーワードで記述してください:

adapty asa keywords add --ad-group <ad-group-id> --from-file keywords.txt --bid 1.20 --match-type EXACT

キーワードは1回の呼び出しにつき最大100件のバッチとして適用されます。リストがそれ以上の場合は、複数回に分けて呼び出してください。

失敗には2種類あり、挙動が異なります。IDが無効な場合はAppleへのリクエスト前にバッチ全体が失敗し、何も適用されません。Appleが個々のキーワードを拒否した場合は、残りは追加され、各拒否の理由が報告されます。終了コードだけでなく、サマリー行を必ず確認してください。

まず少数のキーワードで試し、結果を確認してからファイル全体を送信してください。

MAX_CONVERSIONSキャンペーンを作成する

MAX_CONVERSIONSで入札するキャンペーンは、自動化された広告グループを所有して初めて配信されるため、両方を一緒に作成します:

adapty asa campaigns create --org <campaign-group-id> --name "Max Conv" --adam-id 123456 --country US --daily-budget 50 --bidding-strategy MAX_CONVERSIONS
adapty asa ad-groups create --campaign <campaign-id> --name "Automated Max Conv" --automated

そのアドグループが作成されるまで、キャンペーンは serving_status: NOT_RUNNING を報告し、serving_state_reasons に AUTOMATED_KEYWORDS_REQUIRED_AD_GROUP_MISSING が含まれます。また、campaigns create はその理由と解決するためのコマンドの両方を出力します。

要件を満たすのは --automated です。--automated-keywords を指定した通常のアドグループでは条件を満たしません。Apple が自動アドグループのスケジュールと運用を行うため、--start-time は不要で、--default-bid は任意項目です。またアドグループは有効な状態を維持します。支出を止めるには、キャンペーンを一時停止してください。

キャンペーンでは、--target-cpa を --daily-budget より低く設定してください。

クレジットライン請求の請求書オプションを設定する

Apple は、クレジットライン(line of credit)で請求する組織のすべてのキャンペーンに請求書オプションを必須としています。adapty asa orgs list は各組織の payment_model を表示し、LOC の場合は 5 つの --invoice-* フラグが適用されます。

adapty asa campaigns create --org <campaign-group-id> --name "LOC push" --adam-id 123456 --country US --daily-budget 50 --invoice-advertiser "Acme Inc" --invoice-order-number PO-42 --invoice-contact-name "Jane Doe" --invoice-contact-email jane@acme.com --invoice-billing-email billing@acme.com

5つすべてを1回の呼び出しで渡してください。一部のみを渡した場合、リクエストはAppleに届く前に拒否されます。これらがないと、キャンペーンは作成されますが、MISSING_BO_OR_INVOICING_FIELDS とともに serving_status: NOT_RUNNING が返されます。

同じ5つのフラグを adapty asa campaigns update で使用すると、既存のキャンペーンの請求オプションを設定できます。これらは保存済みのセットをまるごと置き換えるため、1つだけ変更する場合でも5つすべてを渡してください。

1回の操作でキャンペーン構造を作成する

campaigns bulk-create は、campaigns create と ad-groups create をループするスクリプトを置き換えるコマンドです。キャンペーン、広告グループ、キーワード、除外キーワード、広告を含むキャンペーン構造全体を1回の操作で送信できます:

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

入力はJSON形式で構造を記述します — フィールドの詳細は構造フォーマットを参照してください。JSONはAIエージェントにとって最適な形式です。AIが構造を生成してパイプで渡せます:

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

ネイティブの Apple Ads バルクテンプレート も入力として使用できます — サーバーが Campaign_And_Adgroup_Template.xlsx または キーワード .csv を構造に変換します。--org-id には adapty asa orgs list から取得した数値の org_id を指定します。作成前に変換内容を確認したい場合は --preview を追加します:

adapty asa campaigns bulk-create --from-file Campaign_And_Adgroup_Template.xlsx --org-id 1234567 --preview

変換の問題はシート、行、列とともに報告されます。出力された構造が正しければ、--preview を外して送信してください。

--preview の出力は、開始用の構造ファイルを素早く入手する方法でもあります。出力を保存して編集し、--file で送信してください — automations get がルールテンプレートを提供するのと同じ方法です。

構造全体が作成前に検証され、拒否された場合はすべての無効なノードが一覧表示されます。受け入れられると、オブジェクトがサーバー上に作成され、コマンドが進捗状況を報告します。最終レポートは success、partial、または failed のいずれかです。partial の結果には、作成されなかった各オブジェクトと Apple のエラーが一覧表示されます。

大規模な構造の場合は、--no-wait を渡すことで操作IDをすぐに取得し、後で進捗状況を確認できます:

adapty asa campaigns bulk-status <operation-id>

エージェントやスクリプトから指標を取得する

asa metrics は、日付範囲を指定してアカウントの任意のレベルのレポートを出力します。AI エージェントやスクリプトがそのまま処理できるよう、--json を追加してください:

adapty asa metrics --entity campaign --date-from 2026-07-01 --date-to 2026-07-31 --metric spend --metric roas --json

--metric は必須かつ繰り返し指定可能で、Ads Manager が追跡する指標名を指定します。完全な一覧については 指標 を参照してください。指定した各指標はページが切り出される前にエンティティレベル全体で計算されるため、カタログ全体ではなく実際に読む列のみを指定してください。

--app、--campaign、--ad-group はレポートのスコープを絞り込みます。スコープを絞ることが呼び出しを高速化する最も手軽な方法です。コストはページサイズではなく、集計するエンティティ数に比例するためです。subscribers、paid_subscribers、arppu、arpas の4つの指標はエンティティごとにユニークなプロファイルをカウントするため、どのエンティティレベルでもキャンペーンまたは広告グループのフィルターが必要です。

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

コホート指標は他の指標とは動作が異なります。ltv 指標は存在しません。ライフタイムバリューは日付ではなくリニューアルウィンドウで読み取られるためです。代わりにウィンドウを指定してください:

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 90

これにより、day-90 ROAS 順にランク付けされたキャンペーンが返されます。1 回の呼び出しで最大 16 個のウィンドウを指定できます。

各行は 1 つのエンティティを表し、サーバー側で集計・ソート済みです。「支出上位 5 件のキャンペーン」を調べる場合も、全ページをスキャンする必要はなく、1 回の呼び出しで完結します:

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

Metrics と検索語リストは、1社あたり1つの分析バジェット(1分あたり5回、10秒以内に最大2回)を共有します。ポーリングせず、絞り込んだ質問を1回で行ってください。

レポートには2つの上限が適用されます。レポート期間の上限はグループ化の粒度によって決まります — --group-by day の場合は28日、期間グループ化なしの場合は90日、週単位では180日、月単位では365日です。また、各ページは5000件のブレークダウン行が上限で、エンティティ × 国 × 期間の組み合わせで1行とカウントされます。そのため、レポートを複数のリクエストに分割するのではなく、--group-by を粗くすることでレポートの期間を広げてください。

競合アプリのキーワードを確認する

1回のコマンドで、App Storeの最大5つのアプリが入札しているキーワードを取得できます:

adapty asa competitors summary --app-ids 1668337467,6503873027 --json

期間と対象国はサーバー側で固定されており(直近の完全な月、全国対象)、フラグはアプリIDのみです。アプリのセットに対する初回の呼び出しは、数十秒かかる場合があります。

スケジュールに従って競合他社のキーワードデータをレポートに取り込む際に使用します。結果をフィルタリングしたり、国ごとに比較したり、見つかったキーワードをキャンペーンに直接追加したりするには、ダッシュボードの Market Intelligence を使用してください。

自動化ルールを実行する

CLIは指定したJSONを保存するため、有効な自動化ルールファイルを最速で取得するには、ダッシュボードで1つのルールを作成してから読み出す方法が一番です:

adapty asa automations get <automation-id> --json > rule.json

そのファイルを編集し、新しいルールのテンプレートとして使用します:

adapty asa automations create --file rule.json

ルールファイルには条件とアクションがそれぞれ1つずつ含まれており、これがAPIがルールごとに保持する内容です。ファイルをautomations updateに渡す場合は、最初にinternal_idフィールドを削除してください。このフィールドが存在すると更新が拒否されます。

フラグからの「キーワードとして追加」アクションの作成

Add as keyword アクションは、手書きの JSON が不要な唯一の例外です。このアクションは検索語句を昇格させるか、キーワードを別の広告グループにコピーするもので、ターゲットの広告グループ・入札額・マッチタイプをフラグから取得します。

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
Warning

このアクションの params はフラグから取得し、別のアクションのルールから流用しないでください。APIは名前付きバリアントではなく形状で params を解決するため、別のアクションのキーが含まれていると、そのアクションが選択されて残りが破棄され、200 を返しながらどの広告グループにもキーワードを追加しないルールが保存されてしまいます。

automations update に同じフラグを指定すると、誤った形状で保存されたルールを修正できます。CLIはルールを読み込み、アクションをゼロから再構築して書き戻し、Add as keyword アクションに適合する保存済み設定のみを残します。

adapty asa automations update <automation-id> --target-ad-group <ad-group-id> --match-type EXACT --cpt-bid-type search_term_current_cpt

不足していたルールの修正は、フラグで指定する必要があります。使用可能なフラグの一覧は Ads Manager コマンド を参照してください。

ルールが入札額を変更する前にテストするには:

adapty asa automations run <automation-id> --dry-run

ドライランは条件を評価し、Apple Ads を実際には変更せずにルールが何を行うかをログに記録します。実行はすぐには行われずキューに入れられるため、コマンドは実行 ID を表示し、結果は adapty asa automations runs に表示されます。

スクリプトを安全に再実行する

すべての書き込みにはべき等性キーが付与されます。CLIは呼び出しごとにキーを生成し、ネットワークエラー後に1回リトライするため、途中で失敗したリクエストが二重に適用されることはありません。

スクリプトでは、パイプライン全体を再実行できるよう、キーを自分で固定してください:

adapty asa campaigns create --org <campaign-group-id> --name "Winter push" --adam-id 123456 --country US --daily-budget 50 --idempotency-key winter-push-2026 --yes

Re-running the same command within 24 hours returns the stored result and prints Already applied earlier instead of creating a second campaign. The same key with a different body fails with 422, which catches an edited script that reuses a key by mistake.

次のステップ