ÿÿ サブスクリプションステータスã®ç¢ºèª | Adapty ドキュメント

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);
  }
};

次ã®ã‚¹ãƒ†ãƒƒãƒ—

サブスクリプションステータスã®è¿½è·¡æ–¹æ³•ãŒã‚ã‹ã£ãŸã‚‰ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ”¯æ‰•済ã¿ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãるよã†ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ—ãƒ­ãƒ•ã‚¡ã‚¤ãƒ«ã®æ“作ã«ã¤ã„ã¦å­¦ã³ã¾ã—ょã†ã€‚

ÿÿÿÿ