ÿÿ Observerモードã§ã®ãƒ•ローã®è¡¨ç¤º | Adapty ドキュメント

Capacitor SDKã®Observerモードã§ãƒ•ローを表示ã™ã‚‹

ビルダーを使用ã—ã¦ãƒ•ローやペイウォールをカスタマイズã—ãŸå ´åˆã€ãれをモãƒã‚¤ãƒ«ã‚¢ãƒ—リã®ã‚³ãƒ¼ãƒ‰ã§ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã—ã¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«è¡¨ç¤ºã™ã‚‹æ–¹æ³•ã‚’æ°—ã«ã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。ã“ã®ã‚ˆã†ãªãƒ•ローやペイウォールã«ã¯ã€è¡¨ç¤ºã™ã‚‹å†…容ã¨è¡¨ç¤ºæ–¹æ³•ã®ä¸¡æ–¹ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚

ã“ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã¯ã‚ªãƒ–ザーãƒãƒ¼ãƒ¢ãƒ¼ãƒ‰å°‚用ã§ã™ã€‚オブザーãƒãƒ¼ãƒ¢ãƒ¼ãƒ‰ã§ä½œæ¥­ã—ã¦ã„ãªã„å ´åˆã¯ã€ãƒ•ローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤ºã®ãƒˆãƒ”ックをå‚ç…§ã—ã¦ãã ã•ã„。

ã“ã®æ©Ÿèƒ½ã‚’使用ã™ã‚‹ã«ã¯ Adapty Capacitor SDK 4.0 以é™ãŒå¿…è¦ã§ã™ã€‚以å‰ã¯ãƒã‚¤ãƒ†ã‚£ãƒ–ã® iOS ãŠã‚ˆã³ Android SDK ã§ã®ã¿åˆ©ç”¨å¯èƒ½ã§ã—ãŸã€‚アップグレードã™ã‚‹ã«ã¯ç§»è¡Œã‚¬ã‚¤ãƒ‰ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

フローã®è¡¨ç¤ºã‚’å§‹ã‚ã‚‹å‰ã«ï¼ˆã‚¯ãƒªãƒƒã‚¯ã—ã¦å±•開)
  1. Adaptyã‚’App Storeã¨é€£æºã€ãŠã‚ˆã³Google Playã¨é€£æºã™ã‚‹ãŸã‚ã®åˆæœŸè¨­å®šã‚’行ã„ã¾ã™ã€‚ 2. Adapty SDKをインストールã—ã¦è¨­å®šã—ã¾ã™ã€‚observerModeパラメータをtrueã«è¨­å®šã—ã¦ãã ã•ã„。Capacitor SDKインストールガイドをå‚ç…§ã—ã¦ãã ã•ã„。 3. Adapty ダッシュボードã§ãƒ—ロダクトを作æˆã—ã¾ã™ã€‚ 4. ビルダーã§ãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’設定ã—ã€ãƒ—ロダクトを割り当ã¦ã¾ã™ã€‚ 5. プレースメントを作æˆã—ã€ãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’割り当ã¦ã¾ã™ã€‚ 6. モãƒã‚¤ãƒ«ã‚¢ãƒ—リã®ã‚³ãƒ¼ãƒ‰å†…ã§ãƒ•ローã¨ãã®è¨­å®šã‚’å–å¾—ã—ã¾ã™ã€‚

オブザーãƒãƒ¼ãƒ¢ãƒ¼ãƒ‰ã§ã¯ã€SDKãŒä»£ã‚りã«è³¼å…¥å‡¦ç†ã‚’行ã†ã“ã¨ã¯ã‚りã¾ã›ã‚“。ユーザーãŒAdaptyã§ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã•れãŸãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è³¼å…¥ãƒœã‚¿ãƒ³ã‚„復元ボタンをタップã™ã‚‹ã¨ã€SDKã¯è³¼å…¥ã‚„復元を実行ã™ã‚‹ä»£ã‚り㫠onObserverPurchaseInitiated ã¾ãŸã¯ onObserverRestoreInitiated イベントãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’呼ã³å‡ºã—ã¾ã™ã€‚ãã“ã§ç‹¬è‡ªã®ã‚³ãƒ¼ãƒ‰ã‚’使ã£ã¦è³¼å…¥ãƒ»å¾©å…ƒå‡¦ç†ã‚’行ã£ã¦ãã ã•ã„。

  1. ビューã«ã‚ªãƒ–ザーãƒãƒ¼ãƒ¢ãƒ¼ãƒ‰ã®ã‚¤ãƒ™ãƒ³ãƒˆãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’設定ã—ã¾ã™ã€‚ä»–ã®ãƒ—ラットフォームã¨ã¯ç•°ãªã‚Šã€ãƒªã‚¾ãƒ«ãƒãƒ¼ã‚ªãƒ–ジェクトã¯åˆ¥é€”存在ã›ãšã€ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã¯é€šå¸¸ã®ã‚¤ãƒ™ãƒ³ãƒˆãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã®ä¸€éƒ¨ã§ã™ã€‚ãã®ãŸã‚ã€ä½œæˆã™ã‚‹ã™ã¹ã¦ã®ãƒ“ューã«è¨­å®šã—ã¦ãã ã•ã„。
    import { adapty, createFlowView } from '@adapty/capacitor';
    
    const view = await createFlowView(flow);
    
    const unsubscribe = await view.setEventHandlers({
      onObserverPurchaseInitiated(product, onStartPurchase, onFinishPurchase) {
        onStartPurchase(); // the view shows its loading indicator
        myPurchaseApi(product.vendorProductId)
          .then((transactionId) =>
            adapty.reportTransaction({ transactionId, variationId: flow.variationId }),
          )
          .finally(() => onFinishPurchase()); // the view hides the loading indicator
        return false; // keep the flow open; dismiss it yourself after success
      },
      onObserverRestoreInitiated(onStartRestore, onFinishRestore) {
        onStartRestore();
        myRestoreApi().finally(() => onFinishRestore());
        return false;
      },
    });

onObserverPurchaseInitiated ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè³¼å…¥ã‚’é–‹å§‹ã—ãŸã“ã¨ã‚’ã€onObserverRestoreInitiated ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒãƒªã‚¹ãƒˆã‚¢ã‚’é–‹å§‹ã—ãŸã“ã¨ã‚’ãれãžã‚Œé€šçŸ¥ã—ã¾ã™ã€‚ã“れらをå—ã‘å–ã£ãŸã‚‰ã€ã‚«ã‚¹ã‚¿ãƒ ã®è³¼å…¥ã¾ãŸã¯ãƒªã‚¹ãƒˆã‚¢ãƒ•ローを実行ã—ã¦ãã ã•ã„。

ã¾ãŸã€è³¼å…¥ã‚„リストアã®å‡¦ç†çжæ³ã‚’ AdaptyUI ã«é€šçŸ¥ã™ã‚‹ãŸã‚ã«ã€ä»¥ä¸‹ã®ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯ã‚‚å¿…ãšå‘¼ã³å‡ºã—ã¦ãã ã•ã„。ローダーã®è¡¨ç¤ºãªã©ã€ãƒ•ãƒ­ãƒ¼ãŒæ­£ã—ã動作ã™ã‚‹ãŸã‚ã«å¿…è¦ã§ã™ã€‚

コールãƒãƒƒã‚¯èª¬æ˜Ž
onStartPurchase()購入ãŒé–‹å§‹ã•れãŸã“ã¨ã‚’ AdaptyUI ã«é€šçŸ¥ã™ã‚‹ãŸã‚ã«å‘¼ã³å‡ºã™ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯ã§ã™ã€‚
onFinishPurchase()購入ãŒå®Œäº†ã—ãŸã“ã¨ã‚’ AdaptyUI ã«é€šçŸ¥ã™ã‚‹ãŸã‚ã«å‘¼ã³å‡ºã™ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯ã§ã™ã€‚
onStartRestore()復元ãŒé–‹å§‹ã•れãŸã“ã¨ã‚’ AdaptyUI ã«é€šçŸ¥ã™ã‚‹ãŸã‚ã«å‘¼ã³å‡ºã™ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯ã§ã™ã€‚
onFinishRestore()復元ãŒå®Œäº†ã—ãŸã“ã¨ã‚’ AdaptyUI ã«é€šçŸ¥ã™ã‚‹ãŸã‚ã«å‘¼ã³å‡ºã™ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯ã§ã™ã€‚
  1. 通常通りフロービューを表示ã—ã¾ã™ï¼šãƒ•ローをå–å¾—ã—ã¦ãƒ“ューを作æˆã—ã€è¡¨ç¤ºã—ã¾ã™ã€‚追加ã®ãƒ‘ラメータã¯ä¸è¦ã§ã™ — ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã¯ SDK ㌠observerMode: true ã§èµ·å‹•ã•れãŸå ´åˆã«ã®ã¿å®Ÿè¡Œã•れã¾ã™ã€‚

トランザクションを報告ã—ã¦ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨é–¢é€£ä»˜ã‘ã‚‹ã“ã¨ã‚’忘れãªã„ã§ãã ã•ã„。ã“れを行ã‚ãªã„ã¨ã€Adapty ã¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’èªè­˜ã§ããšã€è³¼å…¥å…ƒã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’特定ã§ãã¾ã›ã‚“。

ÿÿÿÿ