React Native SDKでサブスクリプションステータスを確認する
Adaptyを使えば、サブスクリプションステータスの管理が簡単になります。プロダクトIDをコードに手動で記述する必要はありません。アクティブなアクセスレベルを確認するだけで、ユーザーのサブスクリプションステータスを手軽に把握できます。
サブスクリプションステータスの確認を始める前に(クリックして展開)
- iOSの場合、App Store Server Notificationsを設定してください
- Androidの場合、リアルタイムデベロッパー通知(RTDN)を設定してください
アクセスレベルとAdaptyProfileオブジェクト
アクセスレベルはAdaptyProfileオブジェクトのプロパティです。アプリ起動時(例:ユーザーを識別するタイミングなど)にプロファイルを取得し、変更があるたびに更新することをおすすめします。こうすることで、都度リクエストを送ることなくプロファイルオブジェクトを利用できます。
プロファイルの更新通知を受け取るには、以下のプロファイル更新(アクセスレベルを含む)のリッスンセクションで説明する方法でプロファイルの変更を監視してください。
Adapty SDK がモバイルアプリにどのように統合されているか、実際の例を見てみませんか?ペイウォールの表示、購入処理、その他の基本機能を含む完全なセットアップを実演しているサンプルアプリをご覧ください。
サーバーからアクセスレベルを取得する
サーバーからアクセスレベルを取得するには、.getProfile()メソッドを使用します。
try {
const profile = await adapty.getProfile();
} catch (error) {
// handle the error
}
レスポンスパラメーター:
| パラメーター | 説明 |
|---|---|
| Profile | AdaptyProfileオブジェクトです。通常、ユーザーがアプリのプレミアム機能にアクセスできるかどうかを判断するには、プロファイルのアクセスレベルステータスのみを確認すれば十分です。
|
.getProfile()メソッドはユーザープロファイルを返し、そこからアクセスレベルステータスを取得できます。1つのアプリに複数のアクセスレベルを設定することも可能です。例えば、ニュースアプリでトピックごとに独立したサブスクリプションを販売する場合、「sports」や「science」といったアクセスレベルを作成できます。ただし、ほとんどの場合はアクセスレベルは1つで十分なので、デフォルトの「premium」アクセスレベルをそのまま使用できます。
デフォルトの「premium」アクセスレベルを確認する例:
try {
const profile = await adapty.getProfile();
const isActive = profile.accessLevels?.["premium"]?.isActive;
if (isActive) {
// grant access to premium features
}
} catch (error) {
// handle the error
}
サブスクリプションステータスの更新をリッスンする
ユーザーのサブスクリプションに変更があると、Adaptyはイベントを発火します。
Adaptyからメッセージを受け取るには、追加の設定が必要です。
// Create an "onLatestProfileLoad" event listener
adapty.addEventListener('onLatestProfileLoad', profile => {
// handle any changes to subscription state
});
アプリ起動時にもAdaptyはイベントを発火します。この場合、キャッシュされたサブスクリプションステータスが渡されます。
サブスクリプションステータスのキャッシュ
Adapty SDKに実装されたキャッシュは、プロファイルのサブスクリプションステータスを保存します。そのため、サーバーが利用できない場合でも、キャッシュされたデータからプロファイルのサブスクリプションステータスを取得できます。
ただし、キャッシュからの直接データ取得はできません。SDKは1分ごとにサーバーへ定期的にクエリを送信し、プロファイルに関する更新や変更を確認します。新しいトランザクションやその他の更新といった変更があった場合、サーバーとの同期を保つためにキャッシュへ反映されます。