Theo dõi lượt xem màn hình flow trong Kotlin Multiplatform SDK
Mỗi khi người dùng mở một màn hình trong flow, SDK sẽ báo cáo sự kiện flow_screen_showed tới ứng dụng của bạn. Hãy chuyển tiếp sự kiện này tới Amplitude, Mixpanel, hoặc bất kỳ công cụ phân tích sản phẩm nào bạn đang dùng, để có thể phân tích các màn hình flow cùng với toàn bộ sự kiện còn lại của ứng dụng.
Để xem người dùng đi được bao xa trong một flow, bạn không cần viết code — chỉ số flow đã hiển thị lượt xem, tỷ lệ hoàn thành và tỷ lệ thoát theo từng màn hình ngay trong Adapty Dashboard. Hãy dùng hướng dẫn này khi bạn cần dữ liệu đó trong hệ thống analytics của riêng mình, kết hợp với các sự kiện mà Adapty không theo dõi.
Trước khi bắt đầu
Bạn cần:
- Adapty Kotlin Multiplatform SDK v4 trở lên: Callback analytics của flow không tồn tại trong các phiên bản cũ hơn.
- Một phiên bản flow được publish sau khi tính năng này ra mắt: Adapty tạo ra các sự kiện màn hình khi publish một flow, vì vậy một flow bạn đã publish trước đó sẽ không báo cáo gì cả. Nếu không có sự kiện nào đến ứng dụng của bạn, hãy publish phiên bản mới của flow và thử lại.
Những gì bạn nhận được
Một flow báo cáo sự kiện flow_screen_showed mỗi khi người dùng mở một màn hình trong flow đó. Adapty đếm các sự kiện này trong phân tích flow của riêng mình và cũng gửi chúng đến ứng dụng của bạn, để bạn có thể xây dựng cùng một phễu trong hệ thống phân tích của riêng mình.
| Tham số | Mô tả |
|---|---|
instanceId | ID của màn hình mà người dùng đã mở. |
screen_order | Vị trí của màn hình trong flow. |
is_last_screen | true khi màn hình không có đường đi tiếp theo. Một flow có nhánh có thể kết thúc ở nhiều màn hình khác nhau, và mỗi màn hình đó đều báo cáo true. |
Cả isBackendEvent và isCustomerEvent đều là true cho sự kiện này: Adapty vẫn tiếp tục đếm sự kiện, và ứng dụng của bạn cũng nhận được nó.
Kotlin Multiplatform truyền các tham số này dưới dạng chuỗi JSON thô, vì vậy hãy decode paramsJsonString trước khi đọc bất kỳ tham số nào.
Lượt xem màn hình được ghi nhận trong cùng callback analytics với mọi sự kiện flow khác. Xem Xử lý sự kiện flow & paywall để biết nơi đăng ký callback.
Chuyển tiếp mọi lượt xem màn hình đến analytics của bạn
Kiểm tra tên sự kiện trước khi đọc bất cứ điều gì khác, vì một flow báo cáo các sự kiện khác thông qua cùng một callback.
override fun flowViewDidReceiveAnalyticEvent(
view: AdaptyUIFlowView,
name: String,
paramsJsonString: String,
) {
if (name != "flow_screen_showed") return
val params = Json.parseToJsonElement(paramsJsonString).jsonObject
val screenId = params["instanceId"]?.jsonPrimitive?.contentOrNull
val screenOrder = params["screen_order"]?.jsonPrimitive?.intOrNull
// Send screenId and screenOrder to your analytics provider here.
}
Chạy code khi người dùng đến màn hình cuối
is_last_screen là true khi flow không thể tiến thêm từ màn hình đó. Dùng nó để mở khóa nội dung, đánh dấu onboarding là đã hoàn thành, hoặc gửi sự kiện hoàn tất theo cách của bạn — mà không cần thêm hành động nút trong builder.
override fun flowViewDidReceiveAnalyticEvent(
view: AdaptyUIFlowView,
name: String,
paramsJsonString: String,
) {
if (name != "flow_screen_showed") return
val params = Json.parseToJsonElement(paramsJsonString).jsonObject
if (params["is_last_screen"]?.jsonPrimitive?.booleanOrNull != true) return
// The user reached the end of the flow.
}
Reaching the last screen is not the same as closing the flow. A user can see the final screen and dismiss the flow without acting on it, and a branching flow can end on several different screens. To know that the flow itself went away, use flowViewDidDisappear instead.