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

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

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

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

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

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

イベントの種類

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

カスタムアクションを処理する

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

ios-events-1.webp

このIDをコード内で使用し、カスタムアクションとして処理できます。たとえば、ユーザーがログイン通知を許可などのカスタムボタンをタップすると、ビルダーの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
    }
}

オンボーディングを閉じる

ユーザーが閉じるアクションが割り当てられたボタンをタップすると、オンボーディングが閉じられたと判断されます。

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
    }
}