CLIからAds Managerを管理する

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

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

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 から取得できます。

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

キーワードを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が個々のキーワードを拒否した場合は、残りは追加され、各拒否の理由が報告されます。終了コードだけでなく、サマリー行を必ず確認してください。

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

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

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 が追跡する指標名を指定します。全一覧は指標を参照してください。

コホート指標は他の指標とは動作が異なります。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

指標と検索語リストは、1社あたり1つのアナリティクス予算を共有します:1分間に5回、10秒以内に最大2回のコール制限があります。ポーリングせず、必要な質問を1回で絞り込みましょう。レポート期間もグループ化の粒度によって上限が決まります — 日次で90日、週次で180日、月次で365日 — レポートの期間を広げるには、複数のコールに分割するのではなく、--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

automations update にファイルを渡す場合は、事前に internal_id フィールドを削除してください — このフィールドが含まれていると更新が拒否されます。

ルールを適用する前にテストする:

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.

次のステップ