購入結果への対応

購入が完了すると、Adapty SDK がアプリに結果を通知します。アプリが反応するまで画面は変わりません。ペイウォールを閉じる、再試行のために開いたままにする、または購入を確認する2つ目のフローを開くことができます。

ビルダーでは購入結果に基づく分岐はできません。購入完了時に発火するトリガーも、その結果を保持する変数も存在しないためです。そのため、この遷移は購入結果を受け取るアプリのコードで処理する必要があります。

作業は3つのパートに分かれます:

  • 購入後のフローを作成し、専用のプレースメントに割り当てる。
  • アプリのコードで購入結果に基づいて分岐する。
  • 成功時にペイウォールを閉じ、購入後のフローを表示する。

始める前に

1. 購入後のフローを作成する

フローを作成します。このフローは購入後に実行されるため、プロダクトは不要です。ユーザーをアプリ自身のUIに戻すには、最後の画面に Close Flow アクションを持つボタンを追加してください。

Post-purchase flow in the builder with a Thank you screen, the Start button selected, and its On Tap trigger set to the Close Flow action

カスタムアクションは、フローに複数の出口がある場合に使用してください。ボタンをそれぞれ独自のアクション IDで複数作成することで、アプリ側で Set up now と Set up later を区別できるようになります。

カスタムアクションを使用してください。

2. 購入後フローを専用プレースメントに追加する

アプリから購入後フローを取得するには、そのフロー専用のプレースメントに割り当てます。フローのプレースメントは別途必要です。1つのプレースメントは、1つのオーディエンスに対して1つのフローしか提供できません。

  1. フローを公開する。
  2. フローのプレースメントを作成する。Placement ID をメモしておきましょう。アプリはこのIDを使ってフローを取得します。
  3. 購入後フローを新しいプレースメントに割り当てます。

3. 購入結果に応じて処理を分岐する

アプリは2つのコールバックで購入結果を受け取ります。

  • Completion: 購入が完了しました — 成功、ユーザーによるキャンセル、または承認待ち(例:保護者の承認)のいずれかです。3つを区別するには、結果のタイプを確認してください。成功時には、更新された AdaptyProfile が結果に含まれます。
  • Failure: エラーにより購入が停止し、コールバックには AdaptyError が含まれます — 購入制限、無効なプロダクト、ネットワーク障害、またはトランザクション検証エラーが原因です。

コールバック名とシグネチャ: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor

結果に応じて処理を分岐してください:

  • 成功時はペイウォールを閉じ、購入後のフローを表示します。
  • キャンセル・保留中の支払い・失敗時はペイウォールを開いたままにします。
Note

リストア処理は専用のコールバックでレポートされ、再インストールや機種変更をしたユーザーにも対応しています。返されたプロファイルにアクセスレベルがアクティブになっていることを確認し、通常と同じようにフローを閉じて表示してください。このコールバックには別のフローを割り当てましょう — 購入のお礼を伝えるスクリーンはリストアには適していません。

4. 購入後フローの読み込みと表示

待ち時間なしで購入後フローを開くには、ハンドラーの内部ではなく、ペイウォールと同時にフェッチしてください。UIコンフィグのリクエストも忘れずに行いましょう。このリクエストによって、フローの画像がバックグラウンドでキャッシュされ始めます。

iOS および Android では、preloadFlows(SDK 4.1+)を使用すると、1回の呼び出しで複数のプレースメントをウォームアップできます。プレースメントの JSON のみをキャッシュするため、ReturnCacheDataElseLoad フェッチポリシーと組み合わせて使用し、UI 設定は事前にリクエストしてください。

フローとペイウォールの取得: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor

フローとペイウォールの表示: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor