ÿÿ React Nativeã§ã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚¤ãƒ™ãƒ³ãƒˆã‚’処ç†ã™ã‚‹ | Adapty ドキュメント

React Native SDKã§ã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚¤ãƒ™ãƒ³ãƒˆã‚’処ç†ã™ã‚‹

オンボーディング㯠SDK v4 ã§éžæŽ¨å¥¨ã¨ãªã‚Šã€å°†æ¥ã®ãƒªãƒªãƒ¼ã‚¹ã§å‰Šé™¤ã•れる予定ã§ã™ã€‚ ãƒã‚°ä¿®æ­£ã‚„機能改善ã¯è¡Œã‚れã¾ã›ã‚“。代ã‚り㫠フロー ã‚’ã”利用ãã ã•ã„。オンボーディング㯠WebView 上ã§å‹•作ã—ã¾ã™ãŒã€ãƒ•ローã¯ãƒ‡ãƒã‚¤ã‚¹ä¸Šã§ãƒã‚¤ãƒ†ã‚£ãƒ–ã«ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã•れるãŸã‚ã€ã‚ˆã‚Šã‚¹ãƒ ãƒ¼ã‚ºãªã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã€ä¸€è²«ã—ãŸãƒã‚¤ãƒ†ã‚£ãƒ–ã®å¤–観ã€é«˜é€Ÿãªèª­ã¿è¾¼ã¿ã€WebView ランタイムã¸ã®ä¾å­˜ãŒãªããªã‚Šã¾ã™ã€‚ã¾ãšã¯ フローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å–å¾— ãŠã‚ˆã³ フローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤º ã‚’ã”覧ãã ã•ã„。

オンボーディングをビルダーã§è¨­å®šã™ã‚‹ã¨ã€ã‚¢ãƒ—リãŒå¿œç­”ã§ãるイベントãŒç”Ÿæˆã•れã¾ã™ã€‚ã“れらã®ã‚¤ãƒ™ãƒ³ãƒˆã®å‡¦ç†æ–¹æ³•ã¯ã€ä½¿ç”¨ã—ã¦ã„るプレゼンテーション方å¼ã«ã‚ˆã£ã¦ç•°ãªã‚Šã¾ã™ã€‚

  • モーダルプレゼンテーション: ã™ã¹ã¦ã®ã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ãƒ“ューã®ã‚¤ãƒ™ãƒ³ãƒˆã‚’処ç†ã™ã‚‹ã‚¤ãƒ™ãƒ³ãƒˆãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã®è¨­å®šãŒå¿…è¦ã§ã™
  • Reactコンãƒãƒ¼ãƒãƒ³ãƒˆ: ウィジェット内ã®ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯ãƒ‘ラメーターã§ç›´æŽ¥ã‚¤ãƒ™ãƒ³ãƒˆã‚’処ç†ã—ã¾ã™

å§‹ã‚ã‚‹å‰ã«ã€ä»¥ä¸‹ã‚’確èªã—ã¦ãã ã•ã„:

  1. Adapty React Native SDK ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 3.8.0 以é™ã‚’インストール済ã¿ã§ã‚ã‚‹ã“ã¨ã€‚
  2. ã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’ä½œæˆæ¸ˆã¿ã§ã‚ã‚‹ã“ã¨ã€‚
  3. オンボーディングをプレースメントã«è¿½åŠ æ¸ˆã¿ã§ã‚ã‚‹ã“ã¨ã€‚

モãƒã‚¤ãƒ«ã‚¢ãƒ—リã®ã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ç”»é¢ã§ç™ºç”Ÿã™ã‚‹ãƒ—ロセスを制御・監視ã™ã‚‹ã«ã¯ã€ã‚¤ãƒ™ãƒ³ãƒˆãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’実装ã—ã¦ãã ã•ã„:

イベントã®ç¨®é¡ž

以下ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã§ã¯ã€ä½¿ç”¨ã™ã‚‹ãƒ—レゼンテーション方å¼ã«é–¢ã‚らãšå‡¦ç†ã§ãã‚‹å„種イベントã«ã¤ã„ã¦èª¬æ˜Žã—ã¾ã™ã€‚

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

ビルダーã§ã¯ã€ãƒœã‚¿ãƒ³ã«ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’追加ã—ã¦IDを割り当ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

ios-events-1.webp

ã“ã®IDをコード内ã§ä½¿ç”¨ã—ã€ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã¨ã—ã¦å‡¦ç†ã§ãã¾ã™ã€‚ãŸã¨ãˆã°ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒ Login ã‚„ Allow notifications ã®ã‚ˆã†ãªã‚«ã‚¹ã‚¿ãƒ ãƒœã‚¿ãƒ³ã‚’タップã™ã‚‹ã¨ã€ãƒ“ルダー㮠Action ID ã¨ä¸€è‡´ã™ã‚‹ actionId パラメーターã§ã‚¤ãƒ™ãƒ³ãƒˆãƒãƒ³ãƒ‰ãƒ©ãƒ¼ãŒå‘¼ã³å‡ºã•れã¾ã™ã€‚“allowNotifications†ã®ã‚ˆã†ãªç‹¬è‡ªã®IDを作æˆã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚

イベントã®ä¾‹ï¼ˆã‚¯ãƒªãƒƒã‚¯ã—ã¦å±•開)
{
  "actionId": "allow_notifications",
  "meta": {
    "onboardingId": "onboarding_123",
    "screenClientId": "profile_screen",
    "screenIndex": 0,
    "screensTotal": 3
  }
}

オンボーディングã®èª­ã¿è¾¼ã¿å®Œäº†

オンボーディングã®èª­ã¿è¾¼ã¿ãŒå®Œäº†ã™ã‚‹ã¨ã€æ¬¡ã®ã‚¤ãƒ™ãƒ³ãƒˆãŒç™ºç”Ÿã—ã¾ã™ã€‚

イベントã®ä¾‹ï¼ˆã‚¯ãƒªãƒƒã‚¯ã—ã¦å±•開)
{
    "meta": {
        "onboarding_id": "onboarding_123",
        "screen_cid": "welcome_screen",
        "screen_index": 0,
        "total_screens": 4
    }
}

オンボーディングを閉ã˜ã‚‹

ユーザーãŒCloseアクションãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸãƒœã‚¿ãƒ³ã‚’タップã™ã‚‹ã¨ã€ã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã¯é–‰ã˜ã‚‰ã‚ŒãŸã¨ã¿ãªã•れã¾ã™ã€‚

ios-events-2.webp

ユーザーãŒã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’é–‰ã˜ãŸã¨ãã®å‡¦ç†ã¯ã€ã”自身ã§å®Ÿè£…ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ãŸã¨ãˆã°ã€ã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°è‡ªä½“ã®è¡¨ç¤ºã‚’åœæ­¢ã™ã‚‹å‡¦ç†ãŒå¿…è¦ã§ã™ã€‚

イベントã®ä¾‹ï¼ˆã‚¯ãƒªãƒƒã‚¯ã—ã¦å±•開)
{
  "action_id": "close_button",
  "meta": {
    "onboarding_id": "onboarding_123",
    "screen_cid": "final_screen",
    "screen_index": 3,
    "total_screens": 4
  }
}

ペイウォールを開ã

オンボーディング内ã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’é–‹ããŸã„å ´åˆã¯ã€ã“ã®ã‚¤ãƒ™ãƒ³ãƒˆã‚’処ç†ã—ã¦ãã ã•ã„。ペイウォールを閉ã˜ãŸå¾Œã«é–‹ããŸã„å ´åˆã¯ã€ã‚ˆã‚Šç°¡å˜ãªæ–¹æ³•ãŒã‚りã¾ã™ã€‚クローズアクションを処ç†ã—ã€ã‚¤ãƒ™ãƒ³ãƒˆãƒ‡ãƒ¼ã‚¿ã«ä¾å­˜ã›ãšã«ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’é–‹ã„ã¦ãã ã•ã„。

オンボーディングã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’ã‚·ãƒ¼ãƒ ãƒ¬ã‚¹ã«æ‰±ã†æœ€å–„ã®æ–¹æ³•ã¯ã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ ID をペイウォールã®ãƒ—レースメント ID ã¨åŒã˜ã«ã™ã‚‹ã“ã¨ã§ã™ã€‚

イベントã®ä¾‹ï¼ˆã‚¯ãƒªãƒƒã‚¯ã—ã¦å±•開)
{
    "action_id": "premium_offer_1",
    "meta": {
        "onboarding_id": "onboarding_123",
        "screen_cid": "pricing_screen",
        "screen_index": 2,
        "total_screens": 4
    }
}

ナビゲーションã®ãƒˆãƒ©ãƒƒã‚­ãƒ³ã‚°

オンボーディングフロー中ã«ã•ã¾ã–ã¾ãªãƒŠãƒ“ゲーション関連イベントãŒç™ºç”Ÿã™ã‚‹ã¨ã€ã‚¢ãƒŠãƒªãƒ†ã‚£ã‚¯ã‚¹ã‚¤ãƒ™ãƒ³ãƒˆã‚’å—ã‘å–りã¾ã™ã€‚

event オブジェクトã¯ä»¥ä¸‹ã®ã„ãšã‚Œã‹ã®åž‹ã«ãªã‚Šã¾ã™ï¼š

タイプ説明
onboardingStartedオンボーディングãŒèª­ã¿è¾¼ã¾ã‚ŒãŸã¨ã
screenPresentedã„ãšã‚Œã‹ã®ç”»é¢ãŒè¡¨ç¤ºã•れãŸã¨ã
screenCompletedç”»é¢ãŒå®Œäº†ã—ãŸã¨ã。オプション㮠elementId(完了ã—ãŸè¦ç´ ã®è­˜åˆ¥å­ï¼‰ã¨ã‚ªãƒ—ション㮠reply(ユーザーã‹ã‚‰ã®å›žç­”)をå«ã‚€ã€‚ユーザーãŒç”»é¢ã‚’離れるæ“作を行ã£ãŸã¨ãã«ãƒˆãƒªã‚¬ãƒ¼ã•れる。
secondScreenPresented2番目ã®ç”»é¢ãŒè¡¨ç¤ºã•れãŸã¨ã
userEmailCollected入力フィールドã‹ã‚‰ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒåŽé›†ã•れãŸã¨ãã«ãƒˆãƒªã‚¬ãƒ¼ã•れる
onboardingCompletedユーザー㌠final IDã‚’æŒã¤ç”»é¢ã«åˆ°é”ã—ãŸã¨ãã«ãƒˆãƒªã‚¬ãƒ¼ã•れる。ã“ã®ã‚¤ãƒ™ãƒ³ãƒˆãŒå¿…è¦ãªå ´åˆã¯ã€æœ€å¾Œã®ç”»é¢ã« final IDを割り当ã¦ã¦ãã ã•ã„。
unknownèªè­˜ã§ããªã„イベントタイプã®å ´åˆã€‚nameï¼ˆä¸æ˜Žãªã‚¤ãƒ™ãƒ³ãƒˆã®åå‰ï¼‰ã¨ meta(追加ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ï¼‰ã‚’å«ã‚€
å„イベントã«ã¯ä»¥ä¸‹ã®ãƒ•ィールドをå«ã‚€ meta 情報ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ï¼š
フィールド説明
onboardingIdオンボーディングフローã®ä¸€æ„ã®è­˜åˆ¥å­
screenClientIdç¾åœ¨ã®ç”»é¢ã®è­˜åˆ¥å­
screenIndexフロー内ã«ãŠã‘ã‚‹ç¾åœ¨ã®ç”»é¢ã®ä½ç½®
screensTotalフロー内ã®ç”»é¢ã®ç·æ•°
イベントã®ä¾‹ï¼ˆã‚¯ãƒªãƒƒã‚¯ã—ã¦å±•開)
// onboardingStarted
{
  "name": "onboarding_started",
  "meta": {
    "onboarding_id": "onboarding_123",
    "screen_cid": "welcome_screen",
    "screen_index": 0,
    "total_screens": 4
  }
}

// screenPresented
{
    "name": "screen_presented",
    "meta": {
        "onboarding_id": "onboarding_123",
        "screen_cid": "interests_screen",
        "screen_index": 2,
        "total_screens": 4
    }
}

// screenCompleted
{
    "name": "screen_completed",
    "meta": {
        "onboarding_id": "onboarding_123",
        "screen_cid": "profile_screen",
        "screen_index": 1,
        "total_screens": 4
    },
    "params": {
        "element_id": "profile_form",
        "reply": "success"
    }
}

// secondScreenPresented
{
    "name": "second_screen_presented",
    "meta": {
        "onboarding_id": "onboarding_123",
        "screen_cid": "profile_screen",
        "screen_index": 1,
        "total_screens": 4
    }
}

// userEmailCollected
{
    "name": "user_email_collected",
    "meta": {
        "onboarding_id": "onboarding_123",
        "screen_cid": "profile_screen",
        "screen_index": 1,
        "total_screens": 4
    }
}

// onboardingCompleted
{
    "name": "onboarding_completed",
    "meta": {
        "onboarding_id": "onboarding_123",
        "screen_cid": "final_screen",
        "screen_index": 3,
        "total_screens": 4
    }
}
ÿÿÿÿ