ÿÿ Adapty クイックスタートガイド | Adapty ドキュメント

React Native SDKã®ã‚«ã‚¹ã‚¿ãƒ ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã§è³¼å…¥ã‚’有効ã«ã™ã‚‹

ã“ã®ã‚¬ã‚¤ãƒ‰ã§ã¯ã€Adaptyをカスタムペイウォールã«çµ±åˆã™ã‚‹æ–¹æ³•を説明ã—ã¾ã™ã€‚ペイウォールã®å®Ÿè£…を完全ã«ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ã—ãªãŒã‚‰ã€Adapty SDKãŒãƒ—ロダクトã®å–å¾—ã€æ–°è¦è³¼å…¥ã®å‡¦ç†ã€éŽåŽ»ã®è³¼å…¥ã®å¾©å…ƒã‚’行ã„ã¾ã™ã€‚

ã“ã®ã‚¬ã‚¤ãƒ‰ã¯ã€ã‚«ã‚¹ã‚¿ãƒ ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’実装ã™ã‚‹é–‹ç™ºè€…å‘ã‘ã§ã™ã€‚ 購入機能を最も簡å˜ã«å°Žå…¥ã—ãŸã„å ´åˆã¯ã€Adapty フローBuilder ã‚’ã”利用ãã ã•ã„。フローBuilderを使ãˆã°ã€ãƒŽãƒ¼ã‚³ãƒ¼ãƒ‰ã®ãƒ“ジュアルエディターã§ãƒ•ローを作æˆã§ãã€è³¼å…¥ãƒ­ã‚¸ãƒƒã‚¯ã¯ã™ã¹ã¦AdaptyãŒè‡ªå‹•çš„ã«å‡¦ç†ã—ã¾ã™ã€‚ã¾ãŸã€ã‚¢ãƒ—リをå†å…¬é–‹ã™ã‚‹ã“ã¨ãªãã€ã•ã¾ã–ã¾ãªãƒ‡ã‚¶ã‚¤ãƒ³ã‚’テストã§ãã¾ã™ã€‚

å§‹ã‚ã‚‹å‰ã«

プロダクトã®è¨­å®š

アプリ内課金を有効ã«ã™ã‚‹ã«ã¯ã€3ã¤ã®é‡è¦ãªæ¦‚念をç†è§£ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚

  • プロダクト – ユーザーãŒè³¼å…¥ã§ãã‚‹ã‚‚ã®ï¼ˆã‚µãƒ–ã‚¹ã‚¯ãƒªãƒ—ã‚·ãƒ§ãƒ³ã€æ¶ˆè€—åž‹ã‚¢ã‚¤ãƒ†ãƒ ã€æ°¸ç¶šã‚¢ã‚¯ã‚»ã‚¹ï¼‰
  • ペイウォール – ã©ã®ãƒ—ロダクトをæä¾›ã™ã‚‹ã‹ã‚’定義ã™ã‚‹è¨­å®šã€‚Adapty ã§ã¯ã€ãƒ—ロダクトをå–å¾—ã™ã‚‹å”¯ä¸€ã®æ–¹æ³•ãŒãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã§ã™ã€‚ã“ã®è¨­è¨ˆã«ã‚ˆã‚Šã€ã‚¢ãƒ—リã®ã‚³ãƒ¼ãƒ‰ã‚’変更ã™ã‚‹ã“ã¨ãªãã€ãƒ—ロダクト・価格・オファーを修正ã§ãã¾ã™ã€‚
  • プレースメント – アプリ内ã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹å ´æ‰€ã¨ã‚¿ã‚¤ãƒŸãƒ³ã‚°ï¼ˆmainã€onboardingã€settings ãªã©ï¼‰ã€‚ダッシュボードã§ãƒ—レースメントã«ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’設定ã—ã€ã‚³ãƒ¼ãƒ‰å†…ã§ã¯ãƒ—レースメント ID を指定ã—ã¦ãƒªã‚¯ã‚¨ã‚¹ãƒˆã—ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€A/B テストã®å®Ÿæ–½ã‚„ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã”ã¨ã«ç•°ãªã‚‹ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤ºãŒç°¡å˜ã«è¡Œãˆã¾ã™ã€‚ ã“れらã®ã‚³ãƒ³ã‚»ãƒ—トã¯ã€ã‚«ã‚¹ã‚¿ãƒ ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’使ã†å ´åˆã§ã‚‚å¿…ãšæŠŠæ¡ã—ã¦ãŠã„ã¦ãã ã•ã„。è¦ã™ã‚‹ã«ã€ã‚¢ãƒ—リã§è²©å£²ã™ã‚‹ãƒ—ロダクトを管ç†ã™ã‚‹ãŸã‚ã®ä»•組ã¿ã§ã™ã€‚

カスタムペイウォールを実装ã™ã‚‹ã«ã¯ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’作æˆã—ã€ãƒ—レースメントã«è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ã“ã®è¨­å®šã«ã‚ˆã‚Šã€ãƒ—ロダクトをå–å¾—ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚ダッシュボードã§ä½•ã‚’ã™ã¹ãã‹ã‚’確èªã™ã‚‹ã«ã¯ã€ã“ã¡ã‚‰ã®ã‚¯ã‚¤ãƒƒã‚¯ã‚¹ã‚¿ãƒ¼ãƒˆã‚¬ã‚¤ãƒ‰ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

ユーザーã®ç®¡ç†

ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰èªè¨¼ã®æœ‰ç„¡ã«ã‹ã‹ã‚らãšä½¿ç”¨ã§ãã¾ã™ã€‚

ãŸã ã—ã€Adapty SDKã¯åŒ¿åユーザーã¨è­˜åˆ¥æ¸ˆã¿ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’ç•°ãªã‚‹æ–¹æ³•ã§å‡¦ç†ã—ã¾ã™ã€‚詳細を把æ¡ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’é©åˆ‡ã«æ‰±ã†ãŸã‚ã«ã€è­˜åˆ¥ã‚¯ã‚¤ãƒƒã‚¯ã‚¹ã‚¿ãƒ¼ãƒˆã‚¬ã‚¤ãƒ‰ã‚’ãŠèª­ã¿ãã ã•ã„。

ステップ 1. プロダクトをå–å¾—ã™ã‚‹

カスタムペイウォール用ã®ãƒ—ロダクトをå–å¾—ã™ã‚‹ã«ã¯ã€æ¬¡ã®æ‰‹é †ã«å¾“ã„ã¾ã™ã€‚

  1. プレースメント ID ã‚’ getFlow ãƒ¡ã‚½ãƒƒãƒ‰ã«æ¸¡ã—㦠flow オブジェクトをå–å¾—ã—ã¾ã™ã€‚
  2. getPaywallProducts メソッドを使用ã—ã¦ã€ã“ã®ãƒ•ローã®ãƒ—ロダクトé…列をå–å¾—ã—ã¾ã™ã€‚

async function loadPaywall() {
  try {
    const flow: AdaptyFlow = await adapty.getFlow('YOUR_PLACEMENT_ID');
    const products: AdaptyPaywallProduct[] = await adapty.getPaywallProducts(flow);
    
    // Use products to build your custom paywall UI
  } catch (error) {
    // Handle the error
  }
}

ステップ2:購入をå—ã‘付ã‘ã‚‹

ユーザーãŒã‚«ã‚¹ã‚¿ãƒ ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ä¸Šã§ãƒ—ロダクトをタップã—ãŸã‚‰ã€é¸æŠžã•れãŸãƒ—ロダクトを引数ã¨ã—㦠makePurchase メソッドを呼ã³å‡ºã—ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šè³¼å…¥ãƒ•ローãŒå‡¦ç†ã•ã‚Œã€æ›´æ–°ã•れãŸãƒ—ロファイルãŒè¿”ã•れã¾ã™ã€‚


async function purchaseProduct(product: AdaptyPaywallProduct) {
  try {
    const purchaseResult: AdaptyPurchaseResult = await adapty.makePurchase(product);
    
    switch (purchaseResult.type) {
      case 'success':
        // Purchase successful, profile updated
        break;
      case 'user_cancelled':
        // User canceled the purchase
        break;
      case 'pending':
        // Purchase is pending (e.g., user will pay offline with cash)
        break;
    }
  } catch (error) {
    // Handle the error
  }
}

ステップ 3. 購入を復元ã™ã‚‹

アプリストアã§ã¯ã€ã‚µãƒ–スクリプションをæä¾›ã™ã‚‹ã™ã¹ã¦ã®ã‚¢ãƒ—リã«å¯¾ã—ã¦ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè³¼å…¥ã‚’復元ã§ãる手段をæä¾›ã™ã‚‹ã“ã¨ã‚’義務付ã‘ã¦ã„ã¾ã™ã€‚

ユーザーãŒå¾©å…ƒãƒœã‚¿ãƒ³ã‚’タップã—ãŸã¨ãã« restorePurchases メソッドを呼ã³å‡ºã—ã¦ãã ã•ã„。ã“れã«ã‚ˆã‚Šã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è³¼å…¥å±¥æ­´ãŒ Adapty ã¨åŒæœŸã•ã‚Œã€æ›´æ–°ã•れãŸãƒ—ロファイルãŒè¿”ã•れã¾ã™ã€‚


async function restorePurchases() {
  try {
    const profile: AdaptyProfile = await adapty.restorePurchases();
    // Restore successful, profile updated
  } catch (error) {
    // Handle the error
  }
}

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

ã”質å•ã‚„ãŠå›°ã‚Šã®ã“ã¨ãŒã‚れã°ã€ã‚µãƒãƒ¼ãƒˆãƒ•ォーラムをã”覧ãã ã•ã„。よãã‚る質å•ã¸ã®å›žç­”を見ã¤ã‘ãŸã‚Šã€ã”自身ã®è³ªå•を投稿ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ãƒãƒ¼ãƒ ã¨ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãŒã‚µãƒãƒ¼ãƒˆã„ãŸã—ã¾ã™ï¼

ペイウォールをアプリã«è¡¨ç¤ºã™ã‚‹æº–å‚™ãŒæ•´ã„ã¾ã—ãŸã€‚App Store サンドボックスã¾ãŸã¯Google Play Storeã§ãƒ†ã‚¹ãƒˆè³¼å…¥ã‚’行ã„ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‹ã‚‰ãƒ†ã‚¹ãƒˆè³¼å…¥ãŒå®Œäº†ã§ãã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。本番環境ã«å¯¾å¿œã—ãŸå®Ÿè£…ã§ã©ã®ã‚ˆã†ã«å‹•作ã™ã‚‹ã‹ã‚’確èªã™ã‚‹ã«ã¯ã€ã‚µãƒ³ãƒ—ルアプリã®CustomPurchaseScreen.tsxã‚’å‚ç…§ã—ã¦ãã ã•ã„。エラー処ç†ã€ãƒ­ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°çŠ¶æ…‹ã€UI状態管ç†ã‚’å«ã‚€è³¼å…¥å‡¦ç†ã®å®Ÿè£…例ãŒç¢ºèªã§ãã¾ã™ã€‚ 次ã«ã€è³¼å…¥ãŒå®Œäº†ã—ã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’確èªã—ã¦ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹ã‹æœ‰æ–™æ©Ÿèƒ½ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ã™ã‚‹ã‹ã‚’判断ã—ã¾ã™ã€‚

ÿÿÿÿ