Android SDKでサブスクリプションステータスを確認する

Adaptyを使えば、サブスクリプションのステータス管理が簡単になります。プロダクトIDをコードに直接記述する必要はありません。アクティブなアクセスレベルを確認するだけで、ユーザーのサブスクリプションステータスを手軽に把握できます。

サブスクリプションステータスの確認を始める前に、リアルタイム デベロッパー通知(RTDN)を設定してください。

アクセスレベルとAdaptyProfileオブジェクト

アクセスレベルはAdaptyProfileオブジェクトのプロパティです。アプリ起動時(例:ユーザーを識別するタイミングなど)にプロファイルを取得し、変更があるたびに更新することをおすすめします。こうすることで、毎回リクエストを送らずともプロファイルオブジェクトを活用できます。

プロファイルの更新通知を受け取るには、以下のプロファイル更新(アクセスレベルを含む)をリッスンするセクションで説明している方法でプロファイルの変更を監視してください。

Adapty SDK がモバイルアプリにどのように統合されているか、実際の例を見てみませんか?ペイウォールの表示、購入処理、その他の基本機能を含む完全なセットアップを実演しているサンプルアプリをご覧ください。

サーバーからアクセスレベルを取得する

サーバーからアクセスレベルを取得するには、.getProfile()メソッドを使用します:

レスポンスパラメーター:

パラメーター説明
Profile

AdaptyProfileオブジェクト。通常、ユーザーがプレミアムアクセスを持っているかどうかを判断するには、プロファイルのアクセスレベルのステータスを確認するだけで十分です。

.getProfileメソッドは常にAPIへのクエリを試みるため、最新の結果を返します。何らかの理由(例:インターネット接続なし)でAdapty SDKがサーバーから情報を取得できない場合、キャッシュのデータが返されます。なお、Adapty SDKはAdaptyProfileのキャッシュを定期的に更新し、情報をできる限り最新の状態に保ちます。

.getProfile()メソッドはユーザープロファイルを返し、そこからアクセスレベルのステータスを取得できます。アプリごとに複数のアクセスレベルを設定することが可能です。たとえばニュースアプリで異なるトピックへのサブスクリプションを個別に販売する場合、「sports」や「science」といったアクセスレベルを作成できます。ただし、ほとんどの場合は1つのアクセスレベルで十分であり、その場合はデフォルトの「premium」アクセスレベルを使用するだけで問題ありません。

デフォルトの「premium」アクセスレベルを確認する例:

サブスクリプションステータスの更新をリッスンする

ユーザーのサブスクリプションが変更されるたびに、Adaptyはイベントを発火します。

Adaptyからメッセージを受け取るには、追加の設定が必要です:

Adaptyはアプリケーション起動時にもイベントを発火します。この場合、キャッシュされたサブスクリプションステータスが渡されます。

サブスクリプションステータスのキャッシュ

Adapty SDKに実装されているキャッシュは、プロファイルのサブスクリプションステータスを保存します。そのため、サーバーが利用できない状況でも、キャッシュされたデータからプロファイルのサブスクリプションステータスを取得できます。

ただし、キャッシュから直接データをリクエストすることはできません。SDKは1分ごとにサーバーへクエリを送り、プロファイルに関する更新や変更を確認します。新しいトランザクションやその他の更新があった場合、それらはサーバーとの同期を保つためにキャッシュデータへ反映されます。