React Native SDKでオンボーディングイベントを処理する

オンボーディングは SDK v4 で非推奨となり、将来のリリースで削除される予定です。 バグ修正や機能改善は行われません。代わりに フロー をご利用ください。オンボーディングは WebView 上で動作しますが、フローはデバイス上でネイティブにレンダリングされるため、よりスムーズなアニメーション、一貫したネイティブの外観、高速な読み込み、WebView ランタイムへの依存がなくなります。まずは フローとペイウォールの取得 および フローとペイウォールの表示 をご覧ください。

オンボーディングをビルダーで設定すると、アプリが応答できるイベントが生成されます。これらのイベントの処理方法は、使用しているプレゼンテーション方式によって異なります。

  • モーダルプレゼンテーション: すべてのオンボーディングビューのイベントを処理するイベントハンドラーの設定が必要です
  • Reactコンポーネント: ウィジェット内のインラインコールバックパラメーターで直接イベントを処理します

始める前に、以下を確認してください:

  1. Adapty React Native SDK バージョン 3.8.0 以降をインストール済みであること。
  2. オンボーディングを作成済みであること。
  3. オンボーディングをプレースメントに追加済みであること。

モバイルアプリのオンボーディング画面で発生するプロセスを制御・監視するには、イベントハンドラーを実装してください:

イベントの種類

以下のセクションでは、使用するプレゼンテーション方式に関わらず処理できる各種イベントについて説明します。

カスタムアクションの処理

ビルダーでは、ボタンにカスタムアクションを追加してIDを割り当てることができます。

ios-events-1.webp

このIDをコード内で使用し、カスタムアクションとして処理できます。たとえば、ユーザーが LoginAllow 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
    }
}