Unity SDKでサブスクリプションステータスを確認する
Adaptyを使えば、サブスクリプションステータスの管理が簡単になります。プロダクトIDをコードに直接記述する必要はありません。アクティブなアクセスレベルを確認するだけで、ユーザーのサブスクリプションステータスを簡単に把握できます。
サブスクリプションステータスの確認を始める前に(クリックして展開)
- iOSの場合は、App Store Server Notificationsを設定してください
- Androidの場合は、リアルタイム デベロッパー通知(RTDN)を設定してください
アクセスレベルとAdaptyProfileオブジェクト
アクセスレベルはAdaptyProfileオブジェクトのプロパティです。アプリ起動時(例えばユーザーを識別するタイミングなど)にプロファイルを取得し、変更があれば都度更新することをおすすめします。こうすることで、毎回リクエストせずにプロファイルオブジェクトを利用できます。
プロファイルの更新通知を受け取るには、下記のサブスクリプションステータスの更新をリッスンするセクションに従って、プロファイルの変更を監視してください。
Adapty SDK がモバイルアプリにどのように統合されているか、実際の例を見てみませんか?ペイウォールの表示、購入処理、その他の基本機能を含む完全なセットアップを実演しているサンプルアプリをご覧ください。
サーバーからアクセスレベルを取得する
サーバーからアクセスレベルを取得するには、.GetProfile()メソッドを使用します。
Adapty.GetProfile((profile, error) => {
if (error != null) {
// handle the error
return;
}
// check the access
});
レスポンスのパラメータ:
| パラメータ | 説明 |
|---|---|
| Profile | AdaptyProfileオブジェクト。通常は、ユーザーがプレミアムアクセスを持っているかどうかを判断するために、プロファイルのアクセスレベルのステータスだけを確認すれば十分です。
|
.getProfile()メソッドはユーザープロファイルを返し、そこからアクセスレベルのステータスを取得できます。アプリごとに複数のアクセスレベルを設定することも可能です。たとえば、新聞アプリでさまざまなトピックへのサブスクリプションを独立して販売する場合、「sports」と「science」というアクセスレベルを作成できます。ただし、多くの場合はアクセスレベルは1つで十分であり、その場合はデフォルトの「premium」アクセスレベルを使うだけで問題ありません。
デフォルトの「premium」アクセスレベルを確認する例を示します。
Adapty.GetProfile((profile, error) => {
if (error != null) {
// handle the error
return;
}
// "premium" is an identifier of default access level
var accessLevel = profile.AccessLevels["premium"];
if (accessLevel != null && accessLevel.IsActive) {
// grant access to premium features
}
});
サブスクリプションステータスの更新をリッスンする
ユーザーのサブスクリプションが変更されるたびに、Adaptyはイベントを発火します。
Adaptyからメッセージを受け取るには、追加の設定が必要です。
// Extend `AdaptyEventListener ` with `OnLoadLatestProfile ` method:
public class AdaptyListener : MonoBehaviour, AdaptyEventListener {
public void OnLoadLatestProfile(AdaptyProfile profile) {
// handle any changes to subscription state
}
}
Adaptyはアプリケーション起動時にもイベントを発火します。この場合、キャッシュされたサブスクリプションステータスが渡されます。
サブスクリプションステータスのキャッシュ
Adapty SDKに実装されたキャッシュは、プロファイルのサブスクリプションステータスを保存します。そのため、サーバーにアクセスできない状況でも、キャッシュされたデータを使ってプロファイルのサブスクリプションステータスを確認できます。
ただし、キャッシュからデータを直接取得することはできない点に注意してください。SDKは1分ごとに定期的にサーバーへ問い合わせを行い、プロファイルに関する更新や変更がないかを確認します。新しいトランザクションやその他の更新といった変更があった場合は、サーバーと同期するためにキャッシュデータへ反映されます。