ÿÿ フローアクションã¸ã®å¿œç­” - Android | Adapty ドキュメント

フローアクションã¸ã®å¿œç­” - Android

Adapty フロービルダーã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーを使ã£ã¦ãƒ•ローやペイウォールを構築ã—ã¦ã„ã‚‹å ´åˆã€ãƒœã‚¿ãƒ³ã‚’é©åˆ‡ã«è¨­å®šã™ã‚‹ã“ã¨ãŒé‡è¦ã§ã™ï¼š

  1. ビルダーã§ãƒœã‚¿ãƒ³ã‚’追加ã—ã€æ—¢å­˜ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’割り当ã¦ã‚‹ã‹ã€ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ ID を作æˆã—ã¾ã™ã€‚
  2. 割り当ã¦ãŸå„アクションをアプリã®ã‚³ãƒ¼ãƒ‰ã§å‡¦ç†ã™ã‚‹å‡¦ç†ã‚’実装ã—ã¾ã™ã€‚

ã“ã®ã‚¬ã‚¤ãƒ‰ã§ã¯ã€ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã¨æ—¢å­˜ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’コードã§å‡¦ç†ã™ã‚‹æ–¹æ³•を説明ã—ã¾ã™ã€‚

購入ã€å¾©å…ƒã€ãƒ•ロー/ペイウォールã®ã‚¯ãƒ­ãƒ¼ã‚ºã€URL ã®é–‹å°ã®ã¿è‡ªå‹•ã§å‡¦ç†ã•れã¾ã™ã€‚ ãã®ä»–ã™ã¹ã¦ã®ãƒœã‚¿ãƒ³ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã¯ã€ã‚¢ãƒ—リã®ã‚³ãƒ¼ãƒ‰ã§é©åˆ‡ãªãƒ¬ã‚¹ãƒãƒ³ã‚¹å®Ÿè£…ãŒå¿…è¦ã§ã™ã€‚

フローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’é–‰ã˜ã‚‹

フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’é–‰ã˜ã‚‹ãƒœã‚¿ãƒ³ã‚’追加ã™ã‚‹ã«ã¯ã€æ¬¡ã®æ‰‹é †ã‚’行ã„ã¾ã™ã€‚

  1. ビルダーã§ãƒœã‚¿ãƒ³ã‚’追加ã—ã€Close アクションを割り当ã¦ã¾ã™ã€‚
  2. アプリã®ã‚³ãƒ¼ãƒ‰ã§ close アクションã®ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’実装ã—ã¾ã™ã€‚

Android SDK ã§ã¯ã€close アクションã¯ãƒ‡ãƒ•ォルトã§ãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’é–‰ã˜ã‚‹å‹•作をã—ã¾ã™ã€‚ãŸã ã—ã€å¿…è¦ã«å¿œã˜ã¦ã‚³ãƒ¼ãƒ‰ã§ã“ã®å‹•作をオーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã§ãã¾ã™ã€‚ãŸã¨ãˆã°ã€ã‚るフローを閉ã˜ãŸã¨ãã«åˆ¥ã®ãƒ•ローを開ãã¨ã„ã£ãŸå‡¦ç†ãŒå¯èƒ½ã§ã™ã€‚

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
    when (action) {
        AdaptyUI.Action.Close -> (context as? Activity)?.onBackPressed() // default behavior
    }
}

フローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‹ã‚‰URLã‚’é–‹ã

リンクã®ã‚°ãƒ«ãƒ¼ãƒ—(利用è¦ç´„や購入ã®å¾©å…ƒãªã©ï¼‰ã‚’追加ã—ãŸã„å ´åˆã¯ã€ãƒ“ルダー㧠Link è¦ç´ ã‚’追加ã—ã€Open URL アクションをæŒã¤ãƒœã‚¿ãƒ³ã¨åŒã˜æ–¹æ³•ã§å‡¦ç†ã—ã¦ãã ã•ã„。

フローやペイウォールã‹ã‚‰ãƒªãƒ³ã‚¯ã‚’é–‹ãボタン(例:Terms of use ã‚„ Privacy policy)を追加ã™ã‚‹ã«ã¯ï¼š

  1. ビルダーã§ãƒœã‚¿ãƒ³ã‚’追加ã—ã€Open URL アクションを割り当ã¦ã¦ã€é–‹ããŸã„URLを入力ã—ã¾ã™ã€‚
  2. アプリã®ã‚³ãƒ¼ãƒ‰ã§ã€å—ã‘å–ã£ãŸURLをブラウザã§é–‹ã openUrl アクションã®ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’実装ã—ã¾ã™ã€‚

Android SDKã§ã¯ã€openUrlアクションã¯ãƒ‡ãƒ•ォルトã§URLã‚’é–‹ãã¾ã™ã€‚ãŸã ã—ã€å¿…è¦ã«å¿œã˜ã¦ã‚³ãƒ¼ãƒ‰å†…ã§ã“ã®å‹•作をオーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã§ãã¾ã™ã€‚

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {    
       is AdaptyUI.Action.OpenUrl -> {
           val intent = Intent(Intent.ACTION_VIEW, Uri.parse(action.url)) // default behavior
           context.startActivity(intent)
       }
   }
}

カスタムアクションã®å‡¦ç†

ボタンを追加ã—ã¦ä»»æ„ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’処ç†ã™ã‚‹ã«ã¯ã€æ¬¡ã®æ‰‹é †ã«å¾“ã„ã¾ã™ï¼š

  1. ビルダーã§ãƒœã‚¿ãƒ³ã‚’追加ã—ã€Custom アクションを割り当ã¦ã€IDを設定ã—ã¾ã™ã€‚
  2. アプリã®ã‚³ãƒ¼ãƒ‰ã§ã€ä½œæˆã—ãŸã‚¢ã‚¯ã‚·ãƒ§ãƒ³IDã®ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’実装ã—ã¾ã™ã€‚

ãŸã¨ãˆã°ã€åˆ¥ã®ã‚µãƒ–スクリプションオファーや買ã„切り購入ãŒã‚ã‚‹å ´åˆã€åˆ¥ã®ãƒ•ローやペイウォールを表示ã™ã‚‹ãƒœã‚¿ãƒ³ã‚’追加ã§ãã¾ã™ï¼š

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       is AdaptyUI.Action.Custom -> {
           if (action.customId == "openNewPaywall") {
               // Display another flow or paywall
           }
       }
   }
}

ペイウォールビルダーを使ã£ã¦ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’作æˆã™ã‚‹å ´åˆã€ãƒœã‚¿ãƒ³ã‚’é©åˆ‡ã«è¨­å®šã™ã‚‹ã“ã¨ãŒé‡è¦ã§ã™ï¼š

  1. ペイウォールビルダーã§ãƒœã‚¿ãƒ³ã‚’追加ã—ã€æ—¢å­˜ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’割り当ã¦ã‚‹ã‹ã€ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚¯ã‚·ãƒ§ãƒ³IDを作æˆã—ã¾ã™ã€‚
  2. 割り当ã¦ãŸå„アクションを処ç†ã™ã‚‹ã‚³ãƒ¼ãƒ‰ã‚’アプリã«è¨˜è¿°ã—ã¾ã™ã€‚

ã“ã®ã‚¬ã‚¤ãƒ‰ã§ã¯ã€ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ãŠã‚ˆã³æ—¢å­˜ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’コードã§å‡¦ç†ã™ã‚‹æ–¹æ³•を説明ã—ã¾ã™ã€‚

購入ã€å¾©å…ƒã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ã‚¯ãƒ­ãƒ¼ã‚ºã€URLã®é–‹å°ã¯è‡ªå‹•çš„ã«å‡¦ç†ã•れã¾ã™ã€‚ ãれ以外ã®ã™ã¹ã¦ã®ãƒœã‚¿ãƒ³ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã¯ã€ã‚¢ãƒ—リã®ã‚³ãƒ¼ãƒ‰ã§é©åˆ‡ãªå‡¦ç†ã‚’実装ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚

ペイウォールを閉ã˜ã‚‹

ペイウォールを閉ã˜ã‚‹ãƒœã‚¿ãƒ³ã‚’追加ã™ã‚‹ã«ã¯ï¼š

  1. ペイウォールビルダーã§ãƒœã‚¿ãƒ³ã‚’追加ã—ã€Close アクションを割り当ã¦ã¾ã™ã€‚
  2. アプリã®ã‚³ãƒ¼ãƒ‰ã§ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’é–‰ã˜ã‚‹ close アクションã®ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’実装ã—ã¾ã™ã€‚

Android SDK ã§ã¯ã€close アクションã¯ãƒ‡ãƒ•ォルトã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’é–‰ã˜ã‚‹å‹•作をã—ã¾ã™ã€‚ãŸã ã—ã€å¿…è¦ã«å¿œã˜ã¦ã‚³ãƒ¼ãƒ‰å†…ã§ã“ã®å‹•作をオーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã§ãã¾ã™ã€‚ãŸã¨ãˆã°ã€ã‚るペイウォールを閉ã˜ãŸã¨ãã«åˆ¥ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’é–‹ãã¨ã„ã£ãŸå‡¦ç†ãŒå¯èƒ½ã§ã™ã€‚

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
    when (action) {
        AdaptyUI.Action.Close -> (context as? Activity)?.onBackPressed() // default behavior
    }
}

ペイウォールã‹ã‚‰URLã‚’é–‹ã

リンクã®ã‚°ãƒ«ãƒ¼ãƒ—(利用è¦ç´„や購入ã®å¾©å…ƒãªã©ï¼‰ã‚’追加ã—ãŸã„å ´åˆã¯ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダー㧠Link è¦ç´ ã‚’追加ã—ã€Open URL アクションãŒè¨­å®šã•れãŸãƒœã‚¿ãƒ³ã¨åŒã˜æ–¹æ³•ã§å‡¦ç†ã—ã¦ãã ã•ã„。

ペイウォールã«ãƒªãƒ³ã‚¯ã‚’é–‹ãボタン(Terms of use ã‚„ Privacy policy ãªã©ï¼‰ã‚’追加ã™ã‚‹ã«ã¯ï¼š

  1. ペイウォールビルダーã§ãƒœã‚¿ãƒ³ã‚’追加ã—ã€Open URL アクションを割り当ã¦ã¦ã€é–‹ããŸã„URLを入力ã—ã¾ã™ã€‚
  2. <ÿÿli>アプリã®ã‚³ãƒ¼ãƒ‰ã«ã€å—ã‘å–ã£ãŸURLをブラウザã§é–‹ã openUrl アクションã®ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’実装ã—ã¾ã™ã€‚

Android SDK ã§ã¯ã€openUrl アクションã¯ãƒ‡ãƒ•ォルト㧠URL ã‚’é–‹ã動作をトリガーã—ã¾ã™ã€‚ãŸã ã—ã€å¿…è¦ã«å¿œã˜ã¦ã‚³ãƒ¼ãƒ‰å†…ã§ã“ã®å‹•作をオーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã§ãã¾ã™ã€‚

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {    
       is AdaptyUI.Action.OpenUrl -> {
           val intent = Intent(Intent.ACTION_VIEW, Uri.parse(action.url)) // default behavior
           context.startActivity(intent)
       }
   }
}

アプリã¸ã®ãƒ­ã‚°ã‚¤ãƒ³

ユーザーをアプリã«ãƒ­ã‚°ã‚¤ãƒ³ã•ã›ã‚‹ãƒœã‚¿ãƒ³ã‚’追加ã™ã‚‹ã«ã¯:

  1. ペイウォールビルダーã§ãƒœã‚¿ãƒ³ã‚’追加ã—ã€Login アクションを割り当ã¦ã¾ã™ã€‚
  2. アプリã®ã‚³ãƒ¼ãƒ‰å†…ã§ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’識別ã™ã‚‹ login アクションã®ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’実装ã—ã¾ã™ã€‚
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       AdaptyUI.Action.Login -> {
           val intent = Intent(context, LoginActivity::class.java)
           context.startActivity(intent)
       }
   }
}

カスタムアクションã®å‡¦ç†

ã»ã‹ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’処ç†ã™ã‚‹ãƒœã‚¿ãƒ³ã‚’追加ã™ã‚‹ã«ã¯:

  1. ペイウォールビルダーã§ãƒœã‚¿ãƒ³ã‚’追加ã—ã€Custom アクションを割り当ã¦ã€ID を設定ã—ã¾ã™ã€‚
  2. アプリã®ã‚³ãƒ¼ãƒ‰ã§ã€ä½œæˆã—ãŸã‚¢ã‚¯ã‚·ãƒ§ãƒ³ ID ã«å¯¾å¿œã™ã‚‹ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’実装ã—ã¾ã™ã€‚

ãŸã¨ãˆã°ã€åˆ¥ã®ã‚µãƒ–スクリプションオファーや買ã„切り購入ãŒã‚ã‚‹å ´åˆã€åˆ¥ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹ãƒœã‚¿ãƒ³ã‚’追加ã§ãã¾ã™:

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       is AdaptyUI.Action.Custom -> {
           if (action.customId == "openNewPaywall") {
               // Display another paywall
           }
       }
   }
}
ÿÿÿÿ