Kotlin Multiplatform SDKのペイウォールを使用してアプリ内課金を有効にする
アプリ内課金を有効にするには、3つの重要な概念を理解する必要があります:
- プロダクト – ユーザーが購入できるもの(サブスクリプション、消耗型アイテム、永続アクセスなど)
- ペイウォール – どのプロダクトを提供するかを定義する設定です。Adaptyでは、ペイウォールがプロダクトを取得する唯一の手段ですが、この設計によりアプリのコードを変更せずに商品内容、価格、プロダクトの組み合わせを変更できます。
- プレースメント – アプリ内でペイウォールを表示する場所とタイミング(
main、onboarding、settingsなど)。ダッシュボードでプレースメントにペイウォールを設定し、コード内ではプレースメントIDで取得します。これにより、A/B テストの実施やユーザーごとに異なるペイウォールの表示が簡単になります。
Adaptyでは、アプリ内課金を有効にする3つの方法を提供しています。アプリの要件に応じていずれかを選択してください:
| 実装方法 | 複雑さ | 適した場面 |
|---|---|---|
| Adapty ペイウォールビルダー | ✅ 簡単 | ノーコードビルダーで完全な購入対応のペイウォールを作成します。Adaptyが自動的にレンダリングし、複雑な購入フロー、レシート検証、サブスクリプション管理をすべて裏側で処理します。 |
| 手動作成のペイウォール | 🟡 中程度 | アプリコードでペイウォールUIを実装しますが、プロダクト提供の柔軟性を維持するためAdaptyからペイウォールオブジェクトを取得します。ガイドを参照してください。 |
| オブザーバーモード | 🔴 難しい | 既に独自の購入処理インフラを持っており、それを引き続き使用したい場合。オブザーバーモードにはAdaptyでの制限があります。記事を参照してください。 |
以下の手順は、Adaptyペイウォールビルダーで作成したペイウォールの実装方法を示しています。
ペイウォールビルダーを使用しない場合は、手動作成のペイウォールで購入を処理するガイドを参照してください。
Adaptyペイウォールビルダーで作成したペイウォールをアプリコードに表示するには、以下の手順だけが必要です:
- ペイウォールを取得する:AdaptyからペイウォールのPaywallオブジェクトを取得します。
- ペイウォールを表示し、Adaptyが購入を処理する:取得したペイウォールコンテナをアプリに表示します。
- ボタンアクションを処理する:ペイウォール上のユーザー操作と、アプリの応答を関連付けます。たとえば、ユーザーがボタンをクリックしたときにリンクを開いたり、ペイウォールを閉じたりします。
開始前の準備
開始前に、以下の手順を完了してください:
- Adapty ダッシュボードでアプリをApp StoreやGoogle Playに接続します。
- Adaptyでプロダクトを作成します。
- ペイウォールを作成してプロダクトを追加します。
- プレースメントを作成してペイウォールを追加します。
- アプリコードにAdapty SDKをインストールして有効化します。
これらの手順を最も素早く完了するには、クイックスタートガイドに従うか、Developer CLIを使用してペイウォールとプレースメントを作成してください。
1. ペイウォールを取得する
ペイウォールはダッシュボードで設定されたプレースメントに紐付けられています。プレースメントを使用することで、異なるオーディエンスに異なるペイウォールを表示したり、A/B テストを実施したりできます。
Adaptyペイウォールビルダーで作成したペイウォールを取得するには、以下の手順が必要です:
-
getPaywallメソッドを使用してプレースメントIDからpaywallオブジェクトを取得し、それがビルダーで作成されたペイウォールかどうかを確認します。 -
createPaywallViewメソッドを使用してペイウォールのビュー設定を取得します。ビュー設定にはペイウォールを表示するために必要なUI要素とスタイリングが含まれています。
ビュー設定を取得するには、ペイウォールビルダーで Show on device トグルをオンにする必要があります。オンにしないと空のビュー設定が返され、ペイウォールが表示されません。
Adapty.getPaywall("YOUR_PLACEMENT_ID")
.onSuccess { paywall ->
if (!paywall.hasViewConfiguration) {
return@onSuccess
}
val paywallView = AdaptyUI.createPaywallView(paywall = paywall)
paywallView?.present()
}
.onError { error ->
// handle the error
}
2. ペイウォールを表示する
ペイウォールの設定を取得したら、数行追加するだけでペイウォールを表示できます。
デバイス画面にビジュアルなペイウォールを表示するには、まず設定を行う必要があります。AdaptyUI.createPaywallView()メソッドを呼び出してください:
val paywallView = AdaptyUI.createPaywallView(paywall = paywall)
paywallView?.present()
ビューの作成が完了したら、デバイスの画面に表示できます。
ペイウォールの表示方法の詳細については、ガイドを参照してください。
3. ボタンアクションを処理する
ユーザーがペイウォール内のボタンをクリックすると、Kotlin Multiplatform SDKが購入、復元、ペイウォールのクローズ、リンクの開封を自動的に処理します。
ただし、カスタムまたは事前定義されたIDを持つボタンについては、コード内でアクションを処理する必要があります。または、デフォルトの動作をオーバーライドしたい場合もあります。
たとえば、以下は閉じるボタンのデフォルトの動作です。コードに追加する必要はありませんが、必要な場合にどのように実装するかを確認できます。
AdaptyUI.setPaywallsEventsObserver(object : AdaptyUIPaywallsEventsObserver {
override fun paywallViewDidPerformAction(view: AdaptyUIPaywallView, action: AdaptyUIAction) {
when (action) {
AdaptyUIAction.CloseAction, AdaptyUIAction.AndroidSystemBackAction -> view.dismiss()
}
}
})
次のステップ
ペイウォールをアプリに表示する準備ができました。App StoreサンドボックスまたはGoogle Play Storeでテスト購入を行い、ペイウォールからテスト購入が完了できることを確認してください。
次に、ユーザーのアクセスレベルを確認して、適切なユーザーにペイウォールを表示したり、有料機能へのアクセスを付与したりするようにしてください。
完全な例
以下は、これらの手順をアプリにまとめて統合する方法です。
// Set up the observer for handling paywall actions
AdaptyUI.setPaywallsEventsObserver(object : AdaptyUIPaywallsEventsObserver {
override fun paywallViewDidPerformAction(view: AdaptyUIPaywallView, action: AdaptyUIAction) {
when (action) {
is AdaptyUIAction.CloseAction -> view.dismiss()
}
}
})
// Get and display the paywall
Adapty.getPaywall("YOUR_PLACEMENT_ID")
.onSuccess { paywall ->
if (!paywall.hasViewConfiguration) {
// Use custom logic
return@onSuccess
}
val paywallView = AdaptyUI.createPaywallView(paywall = paywall)
paywallView?.present()
}
.onError { error ->
// handle the error
}