mcpField
A
adapty-cli

adapty-cli

github.com/adaptyteamマーケティング・グロース25249 回インストール今日更新
リポジトリ

adapty-cli について

adapty-cliは、adapty CLIを使ってAdaptyのアプリ、製品、ペイウォール、プレースメントの設定と管理を案内するエージェントスキルです。アプリ内サブスクリプションや関連する分析、移行を設定する開発者向けです。

主な機能

  1. 01アプリ、製品、ペイウォール、プレースメントの設定ガイド
  2. 02プロジェクトファイルからモバイル開発プラットフォームを検出
  3. 03CLIコマンドによる既存Adaptyエンティティの管理
  4. 04移行と分析のワークフロー
  5. 05Apple Ads運用のガイダンス

活用シーン

  1. 01新しいアプリ向けにAdapty製品とペイウォールを設定
  2. 02既存アプリのサブスクリプションとプレースメントを管理
  3. 03アプリ分析またはアトリビューション分析を確認
  4. 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
KMPkotlin("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 での確認が重要です。

実行順序(各ステップで前のステップの出力を使用します):

  1. adapty auth login(まだ認証されていない場合は、adapty auth whoami で確認します)
  2. adapty apps create --title "..." --platform ... --apple-bundle-id/--google-bundle-id ... → 出力の id(--app に使用)、sdk_key(SDK で使用)、および作成後に表示されるデフォルトのアクセスレベルの id と sdk_id を保存します
  3. 各プロダクトについて: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(各ペアは両方とも必須です)。
  4. adapty paywalls create --app <APP_ID> --title "..." --product-id <ID1> --product-id <ID2> ... → ペイウォール ID を保存します
  5. 各プレースメントについて: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 を使って、次に何をしたいか尋ねます。**ユーザーが終了すると言うまで、各サブガイドの後にこれを繰り返します。**セットアップ時の回答に基づいて、選択肢を動的に作成します。

次に何をしますか?

  1. SDK をコードベースに統合する
  2. Apple 側でアプリ/製品を設定する(iOS の場合のみ)
  3. Google 側でアプリ/製品を設定する(Android の場合のみ)
  4. Paywall Builder でペイウォールを設計する(Paywall Builder を選択した場合のみ)
  5. 今回はここまで

オプション 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 の --audiences JSON 形式でオーディエンスを指定できます。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

コメント