Adapty Developer CLI コマンドリファレンス

この記事では、アカウントの設定(アプリ、アクセスレベル、プロダクト、ペイウォール、フロー、プレースメント、セグメント)に関する Adapty CLI コマンドを引数・フラグ・使用可能な値とともに紹介します。Apple 広告キャンペーンについては、Ads Manager コマンドを参照してください。

グローバルフラグ

これらのフラグはすべてのコマンドで使用できます。

フラグ説明
--jsonフォーマットテキストの代わりにJSONで出力する
--helpコマンドのヘルプを表示する

すべての list コマンドではページネーションフラグも使用できます:

フラグデフォルト説明
--page1ページ番号
--page-size201ページあたりのアイテム数(最大:100)

アプリ

Adaptyアカウント内のアプリを管理します。ダッシュボードベースの設定については、App settingsを参照してください。

adapty apps list

Adaptyアカウント内のすべてのアプリを一覧表示します。

adapty apps list

ページネーションフラグを使用できます。

adapty apps get

特定のアプリの詳細を取得します。

adapty apps get <app-id>
引数説明
app-idアプリID(UUID)

adapty apps create

新しいアプリを作成します。

adapty apps create --title "My App" --platform ios --apple-bundle-id com.example.app
フラグ必須説明
--titleはいアプリのタイトル
--platformはいプラットフォーム:ios または android。両方指定する場合は繰り返す:--platform ios --platform android
--apple-bundle-id--platform ios 指定時に必須AppleバンドルID
--google-bundle-id--platform android 指定時に必須GoogleバンドルID

adapty apps update

既存のアプリを更新します。

adapty apps update <app-id> --title "New Name"
引数説明
app-idアプリID(UUID)
フラグ説明
--title新しいアプリタイトル
--apple-bundle-id新しいAppleバンドルID
--google-bundle-id新しいGoogleバンドルID

少なくとも1つのフラグが必要です。--platform は作成後に変更できません。

アクセスレベル

adapty access-levels list

アプリのすべてのアクセスレベルを一覧表示します。

adapty access-levels list --app <app-id>
フラグ必須説明
--appはいアプリID(UUID)

ページネーションフラグを使用できます。

adapty access-levels get

特定のアクセスレベルの詳細を取得します。

adapty access-levels get --app <app-id> <access-level-id>
引数説明
access-level-idアクセスレベルID(UUID)
フラグ必須説明
--appはいアプリID(UUID)

adapty access-levels create

新しいアクセスレベルを作成します。

adapty access-levels create --app <app-id> --sdk-id "pro" --title "Pro"
フラグ必須説明
--appはいアプリID(UUID)
--sdk-idはいアプリコード内でアクセス確認に使用する識別子(例:"pro" や "premium")
--titleはいAdaptyダッシュボードに表示されるラベル

adapty access-levels update

既存のアクセスレベルを更新します。

adapty access-levels update --app <app-id> <access-level-id> --title "Pro Access"
引数説明
access-level-idアクセスレベルID(UUID)
フラグ必須説明
--appはいアプリID(UUID)
--titleはい新しい表示ラベル

--sdk-id は作成後に変更できません。

プロダクト

adapty products list

アプリのすべてのプロダクトを一覧表示します。

adapty products list --app <app-id>
フラグ必須説明
--appはいアプリID(UUID)

ページネーションフラグを使用できます。

adapty products get

特定のプロダクトの詳細を取得します。

adapty products get --app <app-id> <product-id>
引数説明
product-idプロダクトID(UUID)
フラグ必須説明
--appはいアプリID(UUID)

adapty products create

新しいプロダクトを作成します。

Important

ストアのプロダクトIDと価格IDは作成後に変更できません。別のストアIDを使用するには、新しいプロダクトを作成してください。

adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --ios-product-id com.example.monthly
フラグ必須説明
--appはいアプリ ID(UUID)
--titleはいプロダクトのタイトル
--access-level-idはいこのプロダクトがアンロックするアクセスレベル ID(UUID)
--periodはいサブスクリプション期間: weekly、monthly、two_months、trimonthly、semiannual、annual、lifetime
--ios-product-id少なくとも1つのストアが必要App Store Connect のプロダクト ID
--android-product-id少なくとも1つのストアが必要Google Play Console のプロダクト ID
--android-base-plan-id--period lifetime でない場合、--android-product-id と併用時に必須Google Play Console のベースプラン ID
--stripe-product-id少なくとも1つのストアが必要Stripe のプロダクト ID
--stripe-price-id--stripe-product-id と併用時に必須Stripe の価格 ID
--paddle-product-id少なくとも1つのストアが必要Paddle のプロダクト ID
--paddle-price-id--paddle-product-id と併用時に必須Paddle の価格 ID

すべてのプロダクトには、--ios-product-id、--android-product-id、--stripe-product-id、--paddle-product-id のいずれか少なくとも1つのストアが必要です。1つのプロダクトに複数のストアのIDを同時に設定することもできます。

Stripe または Paddle を通じてウェブでプロダクトを販売するには、まず決済プロバイダーを Adapty に連携してください。詳しくは Stripe および Paddle を参照してください。これらのストアでは、プロダクトIDと価格IDをセットで指定する必要があります。どちらか一方のみを指定した場合、コマンドは失敗します。

adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --stripe-product-id prod_xxx --stripe-price-id price_xxx

ウェブ専用のプロダクトも有効です。App Store や Google Play の ID を指定せず、Stripe または Paddle の ID だけでプロダクトを作成できます。

adapty products update

既存のプロダクトを更新します。

ストアのプロダクトIDおよび価格IDは作成後に変更できず、このコマンドでは利用できません。異なるストアIDを使用するには、新しいプロダクトを作成してください。

adapty products update --app <app-id> <product-id> --title "Monthly" --access-level-id <access-level-id>
引数説明
product-idプロダクトID(UUID)
フラグ必須説明
--appはいアプリID(UUID)
--titleいいえプロダクトタイトル
--access-level-idいいえこのプロダクトがアンロックするアクセスレベルID(UUID)

ペイウォール

adapty paywalls list

アプリのすべてのペイウォールを一覧表示します。

adapty paywalls list --app <app-id>
フラグ必須説明
--appはいアプリID(UUID)

ページネーションフラグを使用できます。

adapty paywalls get

特定のペイウォールの詳細を取得します。

adapty paywalls get --app <app-id> <paywall-id>
引数説明
paywall-idペイウォールID(UUID)
フラグ必須説明
--appはいアプリID(UUID)

adapty paywalls create

新しいペイウォールを作成します。

adapty paywalls create --app <app-id> --title "Default Paywall" --product-id <product-id>
フラグ必須説明
--appはいアプリID(UUID)
--titleはいペイウォールタイトル
--product-idはいプロダクトID(UUID)。複数指定する場合は繰り返す:--product-id <id1> --product-id <id2>

adapty paywalls update

既存のペイウォールのすべてのフィールドを置き換えます。

Important

ペイウォールがプレースメントに紐付けられると、そのプロダクトは変更できません。本番稼働中のペイウォールで異なるプロダクトを使用したい場合は、新しいペイウォールを作成し、プレースメントがそちらを参照するよう更新してください。

adapty paywalls update --app <app-id> <paywall-id> --title "Default Paywall" --product-id <product-id>

このコマンドはプロダクトリスト全体を含む、ペイウォールのすべてのフィールドを置き換えます。

引数説明
paywall-idペイウォールID(UUID)
フラグ必須説明
--appはいアプリID(UUID)
--titleはいペイウォールタイトル
--product-idはいプロダクトID(UUID)。複数指定する場合は繰り返す:--product-id <id1> --product-id <id2>

adapty paywalls placements

指定したペイウォールを現在使用しているすべてのプレースメントを一覧表示します。

adapty paywalls placements --app <app-id> <paywall-id>
引数説明
paywall-idペイウォール ID(UUID)
フラグ必須説明
--appはいアプリ ID(UUID)

ペイウォールを差し替える前にこのコマンドを使用すると、影響を受けるプレースメントを確認できます。

このリストの各アイテムには is_active フィールドが含まれていません。プレースメントのアクティベーション状態を確認するには、placements list または placements get を使用してください。

フロー

フローは、フロー&ペイウォールビルダーで作成したペイウォールやオンボーディングです。CLIはフローレコード、そのビルダーコンフィグ、および公開を管理します。ビルダーコンフィグはフロー&ペイウォールビルダーが通常生成する大きなJSONドキュメントで、CLIでは生成できません。ターミナルからコンフィグを作成・編集するには、これらのコマンドを実行するflow-generatorスキルを使用してください。公開前に、flow-auditスキルがフローが本番環境に対応しているか確認します。コマンドはここにリファレンスとして記載されています。

adapty flows list

アプリのすべてのフローを一覧表示します。

adapty flows list --app <app-id>
フラグ必須説明
--appはいアプリ ID(UUID)

ページネーションフラグを使用できます。

adapty flows get

特定のフローの詳細を取得します。

adapty flows get --app <app-id> <flow-id>
引数説明
flow-idフロー ID(UUID)
フラグ必須説明
--appYesアプリ ID(UUID)

レスポンスには id、name、status、updated_at が含まれます。ステータスは次のいずれかです:

ステータス意味
draftフローが一度も公開されていない
published現在のバージョンが公開中
dirtyフローは以前に公開されており、現在のバージョンに未公開の変更がある。ユーザーには最後に公開されたバージョンが表示され続ける
publishing公開処理中
publication_failed最後の公開が失敗した。設定を修正して再度公開する
archivedフローがアーカイブされている

adapty flows create

フローを作成します。新しいフローにはフロー名があり、設定はありません。設定を追加するには、flows config update を使用してください。

adapty flows create --app <app-id> --name "Onboarding"
フラグ必須説明
--appはいアプリ ID(UUID)
--nameはいフロー名

adapty flows update

フローの名前を変更します。

adapty flows update --app <app-id> <flow-id> --name "Onboarding v2"
引数説明
flow-idフロー ID(UUID)
フラグ必須説明
--appYesアプリ ID(UUID)
--nameYes新しいフロー名

adapty flows publish

フローの現在のバージョンをユーザーに公開します。

adapty flows publish --app <app-id> <flow-id>
引数説明
flow-idフロー ID(UUID)
フラグ必須説明
--appYesアプリ ID(UUID)
--yes, -yNo確認なしで公開します。出力がパイプされている場合や --json を使用している場合に必要です

変更を公開するとユーザーへの表示が変わるため、コマンドはフロー名を表示して確認を求めます。y 以外の回答はすべてコマンドをキャンセルし、終了コード 1 を返します。--json オプション使用時またはパイプ経由では、回答待ちの代わりに終了コード 2 で拒否されます。スクリプトやエージェントセッションでは --yes を指定してください。

パブリッシュは非同期で行われます。レスポンスには status: publishing が返され、フローはまだライブ状態ではありません。flows get をポーリングして、ステータスが published または publication_failed になるまで待ちます。publication_failed の場合は、flows config get で原因を確認できます。

フローにコンフィグがない場合、コンフィグがパブリッシュ可能な状態でない場合、または現在のバージョンがすでにライブ状態の場合、パブリッシュは HTTP 400 で失敗します。パブリッシュ前にコンフィグを確認するには、flows config validate を使用してください。

adapty flows config get

フローのビルダー設定を読み取ります。

adapty flows config get --app <app-id> <flow-id>
引数説明
flow-idフロー ID(UUID)
フラグ必須説明
--appはいアプリ ID(UUID)

レスポンスには config、remote_configs、status、updated_at が含まれます。updated_at は最後にコンフィグが変更されたミリ秒単位のタイムスタンプです。同時編集による上書きを防ぐため、flows config update の --expected-updated-at に渡してください。コンフィグが一度も書き込まれていないフローは 404 を返します。

公開を試みた後、レスポンスにはその結果を示す 3 つのフィールドも含まれます。flows get が publication_failed を返した場合はこれらを確認してください。

フィールド説明
publication_statusこのフローバージョンの公開がどの段階まで進んだか:transforming、transformed、uploading、uploaded、published、または failed
transform_error変換失敗の詳細 — 問題をリストアップした JSON ペイロード、またはサマリー文字列
publication_error公開失敗時の読みやすいメッセージ

adapty flows config update

フローのビルダーコンフィグを書き込みます。

adapty flows config update --app <app-id> <flow-id> --config-file config.json
引数説明
flow-idフロー ID(UUID)
フラグ必須説明
--appはいアプリID(UUID)
--configどちらか一方JSON文字列形式のビルダーコンフィグ
--config-fileどちらか一方ビルダーコンフィグが記載されたJSONファイルへのパス。-を指定するとstdinから読み込む
--remote-configsいいえ{locale, data}エントリのJSON配列。dataはリモートコンフィグを文字列で指定する
--expected-updated-atいいえ事前にflows config getで取得したupdated_atの値。その読み取り後にコンフィグが変更されていた場合、上書きせずにコマンドが失敗する。無条件に上書きする場合は省略する

コンフィグの書き込みはドラフトを保存するだけで、公開はされません。公開済みのフローに対して書き込みを行うと、新しいバージョンが作成されます。フローのステータスは dirty になり、flows publish を実行するまで、ユーザーには公開済みのバージョンが表示され続けます。

adapty flows config validate

ビルダーコンフィグが公開可能かどうかを、保存せずに確認します。

adapty flows config validate --app <app-id> <flow-id> --config-file config.json
引数説明
flow-idフロー ID (UUID)
フラグ必須説明
--appはいアプリ ID (UUID)
--configどちらか一方JSON 文字列としてのビルダーコンフィグ
--config-fileどちらか一方ビルダーコンフィグが記述された JSON ファイルのパス。- を指定すると stdin から読み込みます

valid フィールドと issues のリストが返されます。設定が公開できない状態の場合、コマンドはコード 1 で終了するため、スクリプトでゲート処理を行えます。

adapty flows config preview

ローカルの設定ファイルをブラウザでレンダリングします。このコマンドはAPIコールを行わず、--app フラグも使用しません。

adapty flows config preview ./config.json --screen <screen-id> --device iphone-14 --orientation portrait
引数説明
config-fileローカルのビルダー設定JSONファイルへのパス
フラグデフォルト説明
--screenフローの最初の画面レンダリングする画面ID
--deviceiphone-14レンダリングするデバイスフレーム
--orientationportraitportrait または landscape

ターミナルでは、コマンドがブラウザでプレビューを開きます。パイプまたは --json を使用すると、代わりにURLを出力します。URLには設定全体が含まれるため長くなります。画面に出力するのではなく、スクリーンショットツールにパイプして使用してください。約32 KBを超える設定はレンダリングが遅くなります。

adapty flows media upload

フローのコンフィグで使用する画像をアップロードします。

adapty flows media upload --app <app-id> ./hero.png
引数説明
file画像ファイルのパス
フラグ必須説明
--appYesApp ID(UUID)

対応フォーマット:GIF、HEIC、JPEG、PNG、SVG、WebP。レスポンスには画像の id、name、およびコンフィグから参照するための CDN url が含まれます。

プレースメント

プレースメントは、フロー、ペイウォール、オンボーディングをユーザーに届ける場所です。プレースメントのコンテンツタイプは作成時に固定されるため、アプリをペイウォールからフローへ移行する場合は既存のプレースメントを更新するのではなく、新しいプレースメントを作成する必要があります。migrate-placements スキルはこれらのコマンドを使って一括で処理します。

adapty placements list

アプリのすべてのプレースメントを一覧表示します。

adapty placements list --app <app-id>
フラグ必須説明
--appYesApp ID(UUID)

ページネーションフラグを使用できます。

各アイテムには id、developer_id、title、is_active が含まれます。is_active は有効なプレースメントの場合は true、無効の場合は false になります。

adapty placements get

特定のプレースメントの詳細を取得します。

adapty placements get --app <app-id> <placement-id>
引数説明
placement-idプレースメントID(UUID)
フラグ必須説明
--appはいアプリID(UUID)

レスポンスには id、developer_id、title、is_active、および audiences 配列が含まれます。is_active はライブ中のプレースメントでは true、非アクティブな場合は false になります。各オーディエンスエントリには content_type(paywall または flow)、segment_ids、priority、および paywall_id または flow_id のいずれかが含まれます。デフォルトオーディエンスは segment_ids: [] を持ち、優先度の値が最も高く(最後に評価されます)。オーディエンスの構造を参照してください。

adapty placements create

新しいプレースメントを作成します。

adapty placements create --app <app-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'
フラグ必須説明
--appはいアプリ ID(UUID)
--titleはいプレースメントのタイトル
--developer-idはいアプリコード内でこのプレースメントをリクエストする際に使用する文字列識別子
--audiencesどちらか一方オーディエンスエントリの JSON 配列。各エントリには明示的な content_type が必要です。オーディエンスの形式を参照
--paywall-idどちらか一方非推奨。 ペイウォール ID(UUID)。クライアント側で単一のデフォルトオーディエンスにラップされます

--audiences または --paywall-id のいずれか一方のみを指定してください。両方または両方とも指定しない場合はエラーになります。

Warning

--paywall-id は非推奨であり、今後削除される予定です。指定した場合、CLIはstderrに警告を出力し、値をデフォルトオーディエンスに変換します。新しい自動化処理では --audiences を使用してください。

adapty placements update

既存のプレースメントのすべてのフィールドを置き換えます。

adapty placements update --app <app-id> <placement-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'

このコマンドはオーディエンスリスト全体を含む、プレースメントのすべてのフィールドを置き換えます。

引数説明
placement-idプレースメントID(UUID)
フラグ必須説明
--appYesアプリID(UUID)
--titleYesプレースメントのタイトル
--developer-idYesアプリコードでこのプレースメントをリクエストする際に使用する文字列識別子
--audiencesどちらか一方オーディエンスエントリーのJSON配列。各エントリーには明示的なcontent_typeが必要です。オーディエンスの形式を参照
--paywall-idどちらか一方非推奨。 ペイウォールID(UUID)。すべてのオーディエンスを単一のデフォルトオーディエンスに置き換えます
Warning

--paywall-id を指定すると、プレースメントのすべてのオーディエンスが上書きされます。セグメント固有のオーディエンスは削除されます。それらを保持したい場合は --audiences を使用し、維持したいすべてのエントリを含めてください。

オーディエンスの形式

--audiences フラグはJSON配列を受け取ります。各エントリには以下のフィールドがあります:

フィールド型説明
content_typestring"paywall" または "flow"。すべてのエントリで必須。1つのプレースメント内のすべてのエントリは同じ値を持つ必要があります
segment_idsstring[]このオーディエンスが対象とするセグメント ID。長さは0または1。空の配列はデフォルトオーディエンス(他のセグメントにマッチしないユーザーのフォールバック)を示します
paywall_idstringこのオーディエンスのユーザーに表示されるペイウォール ID(UUID)。content_type が "paywall" の場合に必須
flow_idstringこのオーディエンスのユーザーに表示されるフロー ID(UUID)。content_type が "flow" の場合に必須
prioritynumber0始まりで、プレースメント内で一意。オーディエンスは値の低い順に評価され、デフォルトオーディエンスは最も高い値を持つ必要があります

プレースメントには、デフォルトのオーディエンスが必ず1つ必要です。

プレースメントのコンテンツタイプは作成時に固定されるため、placements update でペイウォールのプレースメントをフローに切り替えたり、その逆を行うことはできません。フロー専用のプレースメントを作成してください。詳しくはフロー用の新しいプレースメントを作成するをご覧ください。

CLIはリクエストを送信する前にすべてのエントリを検証します。content_type が不明または未設定のエントリ、あるいは content_type に必要なIDが指定されていないエントリがある場合は、コード2で終了し、何も送信されません。

フローをアタッチできるのは、公開済みの場合のみです。draft 状態のフロー、または初回公開がまだ進行中のフローはサーバーに拒否されます。CLIはその拒否を認識し、コード2で終了し、該当フローの flows publish コマンドを表示します。フローを公開するには、flows publish または フロー & ペイウォールビルダー を使用し、ステータスが published になるまで待ちます。

ターゲットオーディエンス1つとデフォルト1つを指定した例:

adapty placements update <placement-id> --app <app-id> --title "Main" --developer-id "main" \
  --audiences '[{"content_type":"paywall","segment_ids":["<vip-segment-id>"],"paywall_id":"<vip-paywall-id>","priority":0},{"content_type":"paywall","segment_ids":[],"paywall_id":"<default-paywall-id>","priority":1}]'

公開済みフローをすべてのユーザーに配信するプレースメントの例:

adapty placements create --app <app-id> --title "Onboarding" --developer-id "onboarding" \
  --audiences '[{"content_type":"flow","segment_ids":[],"flow_id":"<flow-id>","priority":0}]'

複数のプレースメントにわたってペイウォールをセグメント別ルーティングを維持しながら入れ替えるには:

  1. 影響を受けるプレースメントを探す:

    adapty paywalls placements --app <app-id> <old-paywall-id>
  2. それぞれについて、audiences 配列全体を取得する:

    adapty placements get --app <app-id> <placement-id> --json
  3. 対象の paywall_id の値をクライアント側で置き換える。

  4. 変更したペイロードを書き戻す:

    adapty placements update --app <app-id> <placement-id> --title "<title>" --developer-id "<developer-id>" --audiences '<modified-payload>'

セグメント

セグメントはCLI経由では読み取り専用です。作成・編集はAdaptyダッシュボードで行ってください。プレースメントのオーディエンスを構成する際にセグメントIDを調べるためにこれらのコマンドを使用します。

adapty segments list

アプリのすべてのセグメントを一覧表示します。

adapty segments list --app <app-id>
フラグ必須説明
--appはいアプリID(UUID)

ページネーションフラグを使用できます。

adapty segments get

特定のセグメントの詳細を取得します。

adapty segments get --app <app-id> <segment-id>
引数説明
segment-idセグメントID(UUID)
フラグ必須説明
--appはいアプリID(UUID)

レスポンスには id、title、description が含まれます。フィルタールールはこのAPIでは公開されていません。

認証

コマンド説明
adapty auth loginデバイスフローを使用してブラウザ経由で認証する
adapty auth logoutローカルに保存された認証情報を削除する
adapty auth whoamiサーバーでトークンを検証してユーザー情報を表示する
adapty auth statusサーバーへの問い合わせなしにローカルの認証状態を表示する
adapty auth revokeサーバー側でトークンを失効させ、ローカルからも削除する

各コマンドの詳細については認証を参照してください。