adapty-cli について
adapty-cliは、adapty CLIを使ってAdaptyのアプリ、製品、ペイウォール、プレースメントの設定と管理を案内するエージェントスキルです。アプリ内サブスクリプションや関連する分析、移行を設定する開発者向けです。
主な機能
- 01アプリ、製品、ペイウォール、プレースメントの設定ガイド
- 02プロジェクトファイルからモバイル開発プラットフォームを検出
- 03CLIコマンドによる既存Adaptyエンティティの管理
- 04移行と分析のワークフロー
- 05Apple Ads運用のガイダンス
活用シーン
- 01新しいアプリ向けにAdapty製品とペイウォールを設定
- 02既存アプリのサブスクリプションとプレースメントを管理
- 03アプリ分析またはアトリビューション分析を確認
- 04Adaptyへの移行を計画・追跡
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ adaptyteam/ adapty-cli --skill adapty-cliインストール後、Claude Code で/adapty-cliを入力して読み込まれたか確認します。
同梱ファイルreferences/asa-agent-playbook.mdreferences/cli-commands.md
詳細
Adapty CLI スキル
インストール
npm install -g adapty
または、インストールせずに実行します。
npx adapty@latest
2 つのモードがあります。Setup(クイズ形式で進める新規ユーザー向け)と Manage(既存ユーザー向けの直接コマンド)です。
モード:Setup(Adapty を初めて使う方向け)
セットアップフローは 3 つのフェーズで構成されています。クイズ → 作成 → ガイド。まず必要な情報をすべて収集し、次にすべてを作成してから、次に行うことをユーザーに伝えます。
フェーズ 1:クイズ
何かを作成する前に、プラットフォームを検出してから、対話型クイズを実行して必要なデータをすべて収集します。
重要:クイズの質問には、すべて必ず AskUserQuestion ツールを使用してください。 質問を通常のテキスト出力として表示しないでください。ユーザーに対話型の入力プロンプトが表示されるよう、各質問ごとに個別の AskUserQuestion ツール呼び出しを行う必要があります。各回答を受け取ったら、次の AskUserQuestion に進みます。これは必須です。
手順 1:プラットフォームを検出する — コードベースをサイレントに glob で検索します。
| プラットフォーム | Glob パターン |
|---|---|
| iOS/Swift | **/*.swift, **/Package.swift, *.xcodeproj |
| Android/Kotlin | **/*.kt, **/build.gradle.kts |
| Flutter | **/pubspec.yaml(flutter: キーを確認) |
| React Native | **/react-native.config.js, RN の依存関係を含む **/app.json |
| Unity | **/ProjectSettings/ProjectSettings.asset |
| Capacitor | **/capacitor.config.ts, **/capacitor.config.json |
| KMP | kotlin("multiplatform") を含む **/build.gradle.kts |
手順 2:質問する — AskUserQuestion ツール呼び出しを使用します。関連するサブ質問を 1 回の AskUserQuestion にまとめて、やり取りの回数を減らします(例:アプリ名+プラットフォーム+バンドル ID を 1 つの質問にまとめる)。ユーザーがそのまま確認するか、番号を選べるようにデフォルト値を提案します。AskUserQuestion の呼び出しは、各項目ごとに 1 回ずつではなく、合計 2~3 回を目安にします。
2~3 回の AskUserQuestion 呼び出しにまとめます。
AskUserQuestion 1:アプリと製品 — アプリ情報と製品の選択をまとめます。
アプリ名:[package.json、Info.plist、または AndroidManifest から候補を提案] バンドル ID:[検出した設定ファイルから候補を提案] プラットフォーム:1. iOS のみ / 2. Android のみ / 3. 両方
製品:1. 月間(
monthly) / 2. 年間(annual) / 3. 月間+年間 / 4. 週間(weekly) / 5. 買い切り(lifetime) / 6. カスタム有効な
--period値:weekly、monthly、two_months、trimonthly、semiannual、annual、lifetimeです。month、year、yearlyやその他の別名は使用せず、これらの正確な API 値を使用してください。 製品名のプレフィックス:[アプリ名に基づく候補を提案。例:「Premium」]
この回答を受け取ったら、ストア製品 ID を生成するための情報がそろいます。<bundle_id>.<prefix>.<period> の規則に従ってあらかじめ入力し、次の質問に含めます。
AskUserQuestion 2:ストア ID、プレースメント、ペイウォールの方法 — 生成した ID を確認し、残りの情報を収集します。
ストア製品 ID — これらは、App Store Connect / Google Play Console で作成する(またはすでに作成した)ID と一致する必要があります。 提案された ID を確認または編集してください。
- iOS:
com.example.app.premium.monthly/com.example.app.premium.annual- Android の製品 ID:
premium_monthly/ ベースプラン:monthly-base(Android の場合)iOS と Android で ID が異なる場合は、それぞれ個別に入力してください(例:「iOS: com.app.monthly, Android: monthly_sub / base plan: monthly-bp」)。 まだストア製品を作成していない場合は、これらの提案をそのまま使えます。後で App Store Connect / Google Play Console で設定する際に、同じ ID を使用してください。
プレースメント:1. オンボーディング(
onboarding) / 2. 設定(settings) / 3. 機能ゲート(feature_gate) / 4. 上記すべて / 5. カスタムペイウォール UI:1. Paywall Builder(ビジュアルエディター。UI コードは不要) / 2. カスタム(独自の UI)
フェーズ 2:作成
すべての回答を収集したら、概要表で計画をユーザーに確認してから、順番にすべて作成します。作成中は質問しないでください。収集したデータを使用します。
重要:プロダクトとペイウォールは、作成後に完全には編集できません(期間、ストアのプロダクト ID、ベースプラン ID は変更できません)。このため、フェーズ 1 での確認が重要です。
実行順序(各ステップで前のステップの出力を使用します):
adapty auth login(まだ認証されていない場合は、adapty auth whoamiで確認します)adapty apps create --title "..." --platform ... --apple-bundle-id/--google-bundle-id ...→ 出力のid(--appに使用)、sdk_key(SDK で使用)、および作成後に表示されるデフォルトのアクセスレベルのidとsdk_idを保存します- 各プロダクトについて:
adapty products create --app <APP_ID> --title "..." --period ... --access-level-id <DEFAULT_AL_ID> --ios-product-id/--android-product-id ... [--android-base-plan-id ...]→ プロダクト ID を保存します。Android のサブスクリプション(買い切りではないもの)には--android-base-plan-idが必要です。Web プロダクトでは代わりに Stripe/Paddle を紐付けます:--stripe-product-id+--stripe-price-idまたは--paddle-product-id+--paddle-price-id(各ペアは両方とも必須です)。 adapty paywalls create --app <APP_ID> --title "..." --product-id <ID1> --product-id <ID2> ...→ ペイウォール ID を保存します- 各プレースメントについて:
adapty placements create --app <APP_ID> --title "..." --developer-id ... --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<PAYWALL_ID>","priority":0}]'--paywall-id <PAYWALL_ID>も従来の簡略記法として引き続き使用できますが、標準エラー出力に非推奨の警告が表示されます。標準的なデフォルトオーディエンスの形式には、--audiencesを使用してください。
進行状況を随時表示します(例:「アプリを作成しました ✓」、「プロダクト 'Monthly' を作成しました ✓」)。 ステップに失敗した場合は停止して、どのように進めるかをユーザーに確認してください。むやみに再試行しないでください。
フェーズ 3:ガイド(対話型ループ)
すべてのエンティティを作成したら、主要な値を含む簡潔な概要を表示します。
Dashboard: https://app.adapty.io
Your SDK key: <sdk_key from apps create>
Placement developer IDs: <list of developer_ids>
Access level SDK ID: <sdk_id from access level, e.g. "premium">
次に AskUserQuestion を使って、次に何をしたいか尋ねます。**ユーザーが終了すると言うまで、各サブガイドの後にこれを繰り返します。**セットアップ時の回答に基づいて、選択肢を動的に作成します。
次に何をしますか?
- SDK をコードベースに統合する
- Apple 側でアプリ/製品を設定する(iOS の場合のみ)
- Google 側でアプリ/製品を設定する(Android の場合のみ)
- Paywall Builder でペイウォールを設計する(Paywall Builder を選択した場合のみ)
- 今回はここまで
オプション 1:SDK の統合 — 使用するプラットフォームとペイウォール方式に対応するクイックスタートのリンクと、上記の主要な値を表示します。最新の SDK コード例には Context7 MCP を使用します。
resolve-library-id: "adaptyteam/adapty-docs"
query-docs: topic="<platform> <feature>"
Paywall Builder のクイックスタート:
- iOS:
https://adapty.io/docs/ios-quickstart-paywalls.md - Android:
https://adapty.io/docs/android-quickstart-paywalls.md - Flutter:
https://adapty.io/docs/flutter-quickstart-paywalls.md - React Native:
https://adapty.io/docs/react-native-quickstart-paywalls.md
カスタムペイウォールのクイックスタート:
- iOS:
https://adapty.io/docs/ios-quickstart-manual.md - Android:
https://adapty.io/docs/android-quickstart-manual.md - Flutter:
https://adapty.io/docs/flutter-quickstart-manual.md - React Native:
https://adapty.io/docs/react-native-quickstart-manual.md
オプション 2:Apple 側 — チェックリストを表示します。
- App Store Connect でサブスクリプション製品を作成し、ID に
<list ios_product_ids>を指定します - Adapty Dashboard → App Store Connect:In-App Purchase Key(.p8)をアップロードし、Key ID、Issuer ID、Bundle ID、App Apple ID を入力します →
https://adapty.io/docs/app-store-connection-configuration.md - App Store Connect → Server Notifications V2:Adapty Dashboard の URL を設定します →
https://adapty.io/docs/enable-app-store-server-notifications.md
オプション 3:Google 側 — チェックリストを表示します。
- Google Play Console でサブスクリプション製品を作成し、ID に
<list android_product_ids>、基本プランに<list base_plan_ids>を指定します - Adapty Dashboard → Google Play:サービスアカウントの JSON キーをアップロードし、Package Name を入力します →
https://adapty.io/docs/google-play-store-connection-configuration.md - Google Play Console → RTDN:Adapty Dashboard の Pub/Sub トピックを設定します →
https://adapty.io/docs/enable-real-time-developer-notifications-rtdn.md
オプション 4:Paywall Builder — ダッシュボードのペイウォールセクションとガイドへのリンクを表示します:https://adapty.io/docs/adapty-paywall-builder.md
いずれかのオプションのガイドを表示した後は、ループに戻り、同じ AskUserQuestion を使って再度「次は何をしますか?」と尋ねます(ユーザーが手順を完了したと伝えた場合は、完了した項目を除きます)。ユーザーが「今回はここまで」を選択した場合にのみ終了します。
モード:管理(既存の Adapty ユーザー)
すでに Adapty アプリを利用していて、エンティティを管理したいユーザーは、コマンドの全リファレンスとして references/cli-commands.md を参照してください。
主な注意事項:
- 製品、ペイウォール、プレースメント、アクセスレベル、セグメントの各コマンドには
--app <APP_ID>(UUID)が必要です apps get <app_id>とapps update <app_id>は位置引数を使用します(--appフラグは不要です)- 製品、ペイウォール、プレースメント、アクセスレベルでは、
get/updateに位置引数のリソース ID と--appの両方を使用します - これらのエンティティとアプリの一覧では
--pageと--page-sizeをサポートしますが、migrations listはサポートしません - すべてのコマンドで
--jsonを使用できます - アプリ、製品、ペイウォール、プレースメント、アクセスレベルには
--titleを使用します。migrations createでは--nameを使用します --apple-bundle-id/--google-bundle-idを使用します(ios/android は使用しません)
移行
Adapty への移行については、コマンドリファレンスの移行をお読みください。 サーバーから、利用可能なフロー、アクション ID、入力スキーマが提供されます。
- 新しいアプリの場合は
--nameを指定して作成します。既存のアプリの場合は、migrations listで提示される--flowと--appを併せて指定します - スクリプトでは
-mを明示的に指定してください。指定しない場合、CLI はまずADAPTY_MIGRATIONを使い、次にuseまたはcreateで保存された選択を使います - 共有のデフォルト設定を維持するには
create --no-selectを使います。currentで選択内容を確認でき、unuseで保存された選択を解除できます - 実行前に
status --jsonを使って、現在のアクションのreads、input_schema、confirmを確認します --yesを指定する前にconfirmを確認してください。移行コマンドでは対話型の確認プロンプトは表示されません- 各アクションの後、または待機後に
migration.stateを確認してください。終了コード 0 は移行の完了を意味しません
Apple Ads
adapty asa コマンドはこの CLI に含まれており、references/cli-commands.md の asa セクションに記載されています。
asa metrics は、アトリビューションの対応表における Apple が報告する側のデータです。Apple Ads キャンペーンを管理するためのエージェント向けガイダンス(書き込みルール、プレイブック、業界別ガイド)は、
adaptyteam/apple-ads-cli の apple-ads スキルにあります。読み取り操作(asa whoami、すべての list、asa metrics)はそのまま安全に実行できます。asa の書き込み操作を行う前に apple-ads を開いてください。書き込み操作では実際に費用が発生し、取り消すことはできません。
アプリ分析
Adapty ダッシュボードに表示される 1 つのアプリの分析データ(収益や MRR などのグラフ、コンバージョン、ファネル、継続率、LTV、コホート)は、読み取り専用の adapty analytics トピックにあります。references/cli-commands.md の analytics セクションを参照してください。クエリの前に、adapty analytics catalog --app <APP_ID> でデータを確認し、フィルタリングする場合は values を実行してから、データコマンドを 1 つ実行します。合計値は先に表示されます。null は値がないことを意味し、ゼロではありません。これらの数値を attribution の数値に決して加算しないでください。
アトリビューション分析
ネットワークを横断するアトリビューション分析(Adapty ダッシュボードに表示される広告費、インストール数、収益、ROAS、コホート値、予測)は、読み取り専用の adapty attribution トピックにあります。references/cli-commands.md の attribution セクションを参照してください。クエリの前に、adapty attribution metrics、次に dimensions、values、report の順に実行してデータを確認します。null 値は計算できないことを意味し、ゼロではありません。
Adapty の概念
- Product — ストアの商品 ID に対応付けられたサブスクリプションまたは買い切り購入です。期間を持ち、アクセスレベルを付与します。
- Paywall — 商品を表示する画面です。Paywall Builder(ビジュアルエディター)またはリモート設定(カスタム JSON)を使用できます。
- Placement — アプリ内でペイウォールを表示する場所です。
developer_idで識別されます。1 つ以上のオーディエンスを保持し、各オーディエンスは優先度に基づいてセグメントをペイウォールに振り分けます。デフォルトのオーディエンス(segment_ids: [])はフォールバックとして使用され、最も高い優先度である必要があります。 - Access Level — アクセスを制御する権限(例:「premium」)です。商品を購入すると、アクセスレベルが付与されます。
sdk_idで識別されます。 - Segment — フィルタールール(例:「VIP users」)です。
adapty segments list|get|create|update --app <APP_ID>を使用します。フィルターはfield:OPERATOR:value[,value...]の形式です(値を指定しないfield:IS NULL、またはage:>:18のようなプレーンな数値、あるいは型付きの値を指定する単一の JSON オブジェクト)。Apple Search Ads のキャンペーン、広告グループ、キーワードからセグメントを作成するには、adapty asa segments createを使用します(ダッシュボードの命名規則を使用し、Apple ID は自動で解決されます)。セグメントを組み合わせてプレースメントのオーディエンスを作成すると、同じプレースメントで異なるセグメントに異なるペイウォールを表示できます。 - Audience — プレースメント内の
(segments, content, priority)の組み合わせです。コンテンツにはペイウォール、フロー、実行中の A/B テストを指定できます。セグメントの組み合わせから自動的に作成されます。CLI では、placements create/updateの--audiencesJSON 形式でオーディエンスを指定できます。placements getにはすべてのオーディエンスが表示され、A/B テストのオーディエンスも含まれます(content_typeはab_testまたはflow_ab_testで、ab_test_idとab_test_titleが含まれます。プレースメントをまたぐテストは読み取り専用のcross_ab_test/flow_cross_ab_testとして表示されます)。変更する箇所だけを編集し、placements getのリストを書き戻してください。A/B テストのエントリを削除または置き換える書き込みを行うと、勝者なしでそのテストが停止します。優先度だけを変更する書き込みでは、テストは継続されます。
ドキュメント
- ドキュメントの完全なインデックス:
https://adapty.io/docs/llms.txt - 各ページ:
https://adapty.io/docs/<slug>.md - SDK のコード例:Context7 MCP の
adaptyteam/adapty-docs