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

ユーザーが有料コンテンツにアクセスできるか、またはペイウォールを表示すべきかを判断するには、プロファイルのアクセスレベルを確認する必要があります。

この記事では、プロファイルの状態にアクセスして、ユーザーにペイウォールを表示するか有料機能へのアクセスを許可するかを判断する方法を説明します。

サブスクリプションステータスを取得する

ペイウォールを表示するか有料コンテンツを表示するかを決める際は、プロファイル内のユーザーのアクセスレベルを確認します。2つの方法があります:

  • 最新のプロファイルデータがすぐに必要な場合(アプリ起動時など)や強制的に更新したい場合は、getProfile を呼び出す。
  • 自動プロファイル更新を設定して、サブスクリプションステータスが変わるたびに自動で更新されるローカルコピーを保持する。

プロファイルを取得する

サブスクリプションステータスを取得する最も簡単な方法は、getProfile メソッドでプロファイルにアクセスすることです:

try {
    const profile = await adapty.getProfile();
} catch (error) {
  // handle the error
}

サブスクリプション更新を購読する

アプリでプロファイルの更新を自動的に受け取るには:

  1. adapty.addEventListener('onLatestProfileLoad') を使ってプロファイルの変更を監視します。ユーザーのサブスクリプションステータスが変わるたびに、Adaptyが自動的にこのメソッドを呼び出します。
  2. このメソッドが呼び出されたときに更新されたプロファイルデータを保存しておくと、追加のネットワークリクエストなしにアプリ全体で利用できます。
class SubscriptionManager {
    private currentProfile: any = null;
    
    constructor() {
        // Listen for profile updates
        adapty.addEventListener('onLatestProfileLoad', (profile) => {
            this.currentProfile = profile;
            // Update UI, unlock content, etc.
        });
    }
    
    // Use stored profile instead of calling getProfile()
    hasAccess(): boolean {
        return this.currentProfile?.accessLevels?.['premium']?.isActive ?? false;
    }
}

Adaptyはアプリ起動時に onLatestProfileLoad イベントリスナーを自動的に呼び出し、デバイスがオフラインの場合でもキャッシュされたサブスクリプションデータを提供します。

プロファイルとペイウォールのロジックを連携させる

ペイウォールの表示や有料機能へのアクセス許可をすぐに判断する必要がある場合は、ユーザーのプロファイルを直接確認できます。この方法は、アプリ起動時、プレミアムセクションへの移動時、特定コンテンツの表示前などのシナリオで役立ちます。

const checkAccessLevel = async () => {
  try {
    const profile = await adapty.getProfile();
    return profile.accessLevels['YOUR_ACCESS_LEVEL']?.isActive === true;
  } catch (error) {
    console.warn('Error checking access level:', error);
    return false; // Show paywall if access check fails
  }
};

const initializePaywall = async () => {
  try {
    await loadPaywall();
    
    const hasAccess = await checkAccessLevel();
    if (!hasAccess) {
      // Show paywall if no access
    }
  } catch (error) {
    console.warn('Error initializing paywall:', error);
  }
};

次のステップ

サブスクリプションステータスの追跡方法がわかったら、ユーザーが支払済みのコンテンツにアクセスできるようユーザープロファイルの操作について学びましょう。