ÿÿ Xá»­ lý Sá»± kiện Onboarding trong React Native | Tài liệu Adapty

Xử lý sự kiện onboarding trong React Native SDK

Onboarding đã bị deprecated trong SDK v4 và sẽ bị xóa trong phiên bản tương lai. Chúng không còn nhận được các bản sá»­a lá»—i hay cải tiến nữa. Hãy sá»­ dụng flows thay thế: không giống như onboarding chạy bên trong WebView, flow render trá»±c tiếp trên thiết bị — mang lại hoạt ảnh mượt mà hÆ¡n, giao diện native nhất quán, thá»i gian tải nhanh hÆ¡n và không phụ thuá»™c vào WebView runtime. Xem Lấy flows & paywalls và Hiển thị flows & paywalls để bắt đầu.

Các onboarding được cấu hình bằng builder sẽ tạo ra các sự kiện mà ứng dụng của bạn có thể xử lý. Cách xử lý những sự kiện này phụ thuộc vào phương pháp hiển thị bạn đang dùng:

  • Trình bày dạng Modal: Yêu cầu thiết lập các event handler để xá»­ lý sá»± kiện cho tất cả các onboarding view
  • React component: Xá»­ lý sá»± kiện thông qua các tham số callback trá»±c tiếp trong widget

Trước khi bắt đầu, hãy đảm bảo rằng:

  1. Bạn đã cài đặt Adapty React Native SDK phiên bản 3.8.0 trở lên.
  2. Bạn đã tạo một onboarding.
  3. Bạn đã thêm onboarding vào một placement.

Äể kiểm soát hoặc theo dõi các tiến trình xảy ra trên màn hình onboarding trong ứng dụng di động cá»§a bạn, hãy triển khai các event handler:

Các loại sự kiện

Các phần dưới đây mô tả các loại sự kiện khác nhau mà bạn có thể xử lý, bất kể phương thức hiển thị bạn đang dùng là gì.

Xử lý custom action

Trong builder, bạn có thể thêm action custom cho một nút và gán cho nó một ID.

ios-events-1.webp

Sau đó, bạn có thể sá»­ dụng ID này trong code và xá»­ lý nó như má»™t hành động tùy chỉnh. Ví dụ: nếu ngưá»i dùng nhấn vào má»™t nút tùy chỉnh như Login hay Allow notifications, event handler sẽ được kích hoạt vá»›i tham số actionId khá»›p vá»›i Action ID trong builder. Bạn có thể tá»± tạo ID theo ý muốn, chẳng hạn như “allowNotificationsâ€.

Ví dụ sự kiện (Nhấn để mở rộng)
{
  "actionId": "allow_notifications",
  "meta": {
    "onboardingId": "onboarding_123",
    "screenClientId": "profile_screen",
    "screenIndex": 0,
    "screensTotal": 3
  }
}

Hoàn tất tải onboarding

Khi một onboarding hoàn tất tải, sự kiện này sẽ được kích hoạt:

Ví dụ sự kiện (Nhấp để mở rộng)
{
    "meta": {
        "onboarding_id": "onboarding_123",
        "screen_cid": "welcome_screen",
        "screen_index": 0,
        "total_screens": 4
    }
}

Äóng onboarding

Onboarding được coi là đã đóng khi ngưá»i dùng nhấn vào má»™t nút có gán hành động Close.

ios-events-2.webp

Lưu ý rằng bạn cần tá»± xá»­ lý những gì xảy ra khi ngưá»i dùng đóng onboarding. Ví dụ, bạn cần dừng hiển thị chính onboarding đó.

Ví dụ sự kiện (Nhấn để mở rộng)
{
  "action_id": "close_button",
  "meta": {
    "onboarding_id": "onboarding_123",
    "screen_cid": "final_screen",
    "screen_index": 3,
    "total_screens": 4
  }
}

Mở một paywall

Xử lý sự kiện này để mở paywall nếu bạn muốn mở nó bên trong onboarding. Nếu bạn muốn mở paywall sau khi nó đã đóng, có cách đơn giản hơn – xử lý hành động đóng và mở paywall mà không cần dựa vào dữ liệu sự kiện.

Cách liá»n mạch nhất để làm việc vá»›i paywall trong onboarding là đặt action ID bằng vá»›i placement ID cá»§a paywall.

Ví dụ sự kiện (Nhấn để mở rộng)
{
    "action_id": "premium_offer_1",
    "meta": {
        "onboarding_id": "onboarding_123",
        "screen_cid": "pricing_screen",
        "screen_index": 2,
        "total_screens": 4
    }
}

Theo dõi Ä‘iá»u hướng

Bạn nhận được má»™t sá»± kiện analytics khi các sá»± kiện liên quan đến Ä‘iá»u hướng xảy ra trong flow onboarding:

Äối tượng event có thể là má»™t trong các kiểu sau:

LoạiMô tả
onboardingStartedKhi onboarding đã được tải
screenPresentedKhi bất kỳ màn hình nào được hiển thị
screenCompletedKhi má»™t màn hình hoàn tất. Bao gồm elementId tùy chá»n (định danh cá»§a phần tá»­ đã hoàn tất) và reply tùy chá»n (phản hồi từ ngưá»i dùng). ÄÆ°á»£c kích hoạt khi ngưá»i dùng thá»±c hiện bất kỳ hành động nào để thoát khá»i màn hình.
secondScreenPresentedKhi màn hình thứ hai được hiển thị
userEmailCollectedÄÆ°á»£c kích hoạt khi email cá»§a ngưá»i dùng được thu thập qua trưá»ng nhập liệu
onboardingCompletedÄÆ°á»£c kích hoạt khi ngưá»i dùng đến màn hình có ID final. Nếu bạn cần sá»± kiện này, hãy gán ID final cho màn hình cuối cùng.
unknownDành cho bất kỳ loại sự kiện không được nhận dạng nào. Bao gồm name (tên của sự kiện không xác định) và meta (siêu dữ liệu bổ sung)
Mỗi sự kiện bao gồm thông tin meta chứa:
Trưá»ngMô tả
onboardingIdMã định danh duy nhất của flow onboarding
screenClientIdMã định danh của màn hình hiện tại
screenIndexVị trí của màn hình hiện tại trong flow
screensTotalTổng số màn hình trong flow
Ví dụ vỠsự kiện (Nhấn để mở rộng)
// 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
    }
}
ÿÿÿÿ