Xác định người dùng trong Kotlin Multiplatform SDK

Hướng dẫn này dành cho bạn nếu bạn có hệ thống xác thực riêng. Tại đây, bạn sẽ học cách làm việc với hồ sơ người dùng trong Adapty để đảm bảo nó phù hợp với hệ thống xác thực hiện có của bạn.

Cách bạn quản lý giao dịch mua của người dùng phụ thuộc vào mô hình xác thực của ứng dụng:

Các khái niệm chính:

  • Hồ sơ là các thực thể cần thiết để SDK hoạt động. Adapty tự động tạo chúng.
  • Chúng có thể là ẩn danh (không có customer user ID) hoặc đã xác định (có customer user ID).
  • Bạn cung cấp customer user ID để đối chiếu hồ sơ trong Adapty với hệ thống xác thực nội bộ của bạn.

Dưới đây là sự khác biệt giữa người dùng ẩn danh và người dùng đã xác định:

Người dùng ẩn danhNgười dùng đã xác định
Quản lý giao dịch muaKhôi phục giao dịch mua ở cấp cửa hàngDuy trì lịch sử giao dịch mua trên nhiều thiết bị thông qua customer user ID
Quản lý hồ sơHồ sơ mới sau mỗi lần cài đặt lạiCùng một hồ sơ trên các phiên và thiết bị
Lưu trữ dữ liệuDữ liệu của người dùng ẩn danh gắn với lần cài đặt ứng dụngDữ liệu của người dùng đã xác định tồn tại qua các lần cài đặt ứng dụng

Người dùng ẩn danh

Nếu bạn không có xác thực backend, bạn không cần xử lý xác thực trong mã ứng dụng:

  1. Khi SDK được kích hoạt lần đầu tiên ứng dụng khởi chạy, Adapty tạo một hồ sơ mới cho người dùng.
  2. Khi người dùng mua bất cứ thứ gì trong ứng dụng, giao dịch mua này được liên kết với hồ sơ Adapty và tài khoản cửa hàng của họ.
  3. Khi người dùng cài đặt lại ứng dụng hoặc cài đặt nó trên thiết bị mới, Adapty tạo một hồ sơ ẩn danh mới khi kích hoạt.
  4. Nếu người dùng đã thực hiện giao dịch mua trước đây trong ứng dụng của bạn, theo mặc định, các giao dịch mua của họ sẽ được tự động đồng bộ từ App Store khi SDK kích hoạt.

Vì vậy, với người dùng ẩn danh, các hồ sơ mới sẽ được tạo sau mỗi lần cài đặt, nhưng điều đó không phải là vấn đề vì trong phân tích của Adapty, bạn có thể cấu hình những gì sẽ được tính là lần cài đặt mới.

Với người dùng ẩn danh, bạn cần đếm số lần cài đặt theo ID thiết bị. Trong trường hợp này, mỗi lần cài đặt ứng dụng trên một thiết bị được tính là một lần cài đặt, bao gồm cả việc cài đặt lại.

Khôi phục bản sao lưu hoạt động khác với việc cài đặt lại. Theo mặc định, khi người dùng khôi phục từ bản sao lưu, SDK bảo toàn dữ liệu được lưu trong bộ nhớ cache và không tạo hồ sơ mới. Bạn có thể cấu hình hành vi này bằng cài đặt withAppleClearDataOnBackup. Tìm hiểu thêm.

Người dùng đã xác định

Bạn có hai lựa chọn để xác định người dùng trong ứng dụng:

Theo mặc định, khi Adapty nhận được một giao dịch mua từ Customer User ID hiện đang được liên kết với một Customer User ID khác, mức độ truy cập được chia sẻ, vì vậy cả hai hồ sơ đều có quyền truy cập trả phí. Bạn có thể cấu hình cài đặt này để chuyển quyền truy cập trả phí từ hồ sơ này sang hồ sơ khác hoặc tắt hoàn toàn việc chia sẻ. Xem bài viết để biết thêm chi tiết.

identify-diagram.webp

Trong quá trình đăng nhập/đăng ký

Nếu bạn đang xác định người dùng sau khi ứng dụng khởi chạy (ví dụ: sau khi họ đăng nhập vào ứng dụng hoặc đăng ký), hãy sử dụng phương thức identify để đặt customer user ID của họ.

  • Nếu bạn chưa sử dụng customer user ID này trước đây, Adapty sẽ tự động liên kết nó với hồ sơ hiện tại.
  • Nếu bạn đã sử dụng customer user ID này để xác định người dùng trước đây, Adapty sẽ chuyển sang làm việc với hồ sơ được liên kết với customer user ID này.

Customer user ID phải là duy nhất cho mỗi người dùng. Nếu bạn hardcode giá trị tham số, tất cả người dùng sẽ được coi là một người.

Hãy chờ identify hoàn thành (trong callback onSuccess của nó) trước khi gọi các phương thức SDK khác. Các lệnh gọi đồng thời có thể rơi vào hồ sơ ẩn danh. Xem Thứ tự gọi trong Kotlin Multiplatform SDK.

Adapty.identify("YOUR_USER_ID") // Unique for each user
    .onSuccess {
        // successful identify
    }
    .onError { error ->
        // handle the error
    }

Trong quá trình kích hoạt SDK

Nếu bạn đã biết customer user ID khi kích hoạt SDK, bạn có thể gửi nó trong phương thức activate thay vì gọi identify riêng.

Nếu bạn biết customer user ID nhưng chỉ đặt nó sau khi kích hoạt, điều đó có nghĩa là khi kích hoạt, Adapty sẽ tạo một hồ sơ ẩn danh mới và chỉ chuyển sang hồ sơ hiện có sau khi bạn gọi identify.

Bạn có thể truyền customer user ID hiện có (cái bạn đã sử dụng trước đây) hoặc một cái mới. Nếu bạn truyền một cái mới, hồ sơ mới được tạo khi kích hoạt sẽ được tự động liên kết với customer user ID.

Theo mặc định, việc tạo hồ sơ ẩn danh không ảnh hưởng đến các dashboard phân tích, vì số lần cài đặt được tính dựa trên ID thiết bị.

ID thiết bị đại diện cho một lần cài đặt duy nhất của ứng dụng từ cửa hàng trên một thiết bị và chỉ được tạo lại sau khi ứng dụng được cài đặt lại.
Nó không phụ thuộc vào việc đây là lần cài đặt đầu tiên hay lần lặp lại, hoặc liệu customer user ID hiện có có được sử dụng hay không.

Việc tạo hồ sơ (khi kích hoạt SDK hoặc đăng xuất), đăng nhập hoặc nâng cấp ứng dụng mà không cài đặt lại ứng dụng sẽ không tạo thêm sự kiện cài đặt.

Nếu bạn muốn đếm số lần cài đặt dựa trên người dùng duy nhất thay vì thiết bị, hãy vào App settings và cấu hình Installs definition for analytics.

AdaptyConfig.Builder("PUBLIC_SDK_KEY")
    .withCustomerUserId("user123") // Customer user IDs must be unique for each user. If you hardcode the parameter value, all users will be considered as one.
    .build()

Đăng xuất người dùng

Nếu bạn có nút đăng xuất cho người dùng, hãy sử dụng phương thức logout.

Đăng xuất người dùng sẽ tạo một hồ sơ ẩn danh mới cho người dùng.

Adapty.logout()
    .onSuccess {
        // successful logout
    }
    .onError { error ->
        // handle the error
    }

Để đăng nhập lại người dùng vào ứng dụng, hãy sử dụng phương thức identify.

Cho phép mua hàng mà không cần đăng nhập

Nếu người dùng của bạn có thể thực hiện giao dịch mua cả trước và sau khi đăng nhập vào ứng dụng, bạn cần đảm bảo rằng họ sẽ vẫn giữ được quyền truy cập sau khi đăng nhập:

  1. Khi người dùng chưa đăng nhập thực hiện giao dịch mua, Adapty gắn nó với ID hồ sơ ẩn danh của họ.
  2. Khi người dùng đăng nhập vào tài khoản của họ, Adapty chuyển sang làm việc với hồ sơ đã xác định của họ.
    • Nếu đây là customer user ID mới (ví dụ: giao dịch mua đã được thực hiện trước khi đăng ký), Adapty sẽ gán customer user ID cho hồ sơ hiện tại, vì vậy toàn bộ lịch sử giao dịch mua được duy trì.
    • Nếu đây là customer user ID hiện có (customer user ID đã được liên kết với một hồ sơ), bạn cần lấy mức độ truy cập thực tế sau khi chuyển đổi hồ sơ. Bạn có thể gọi getProfile ngay sau khi xác định, hoặc lắng nghe các cập nhật hồ sơ để dữ liệu tự động đồng bộ.

Các bước tiếp theo

Xin chúc mừng! Bạn đã triển khai logic thanh toán trong ứng dụng! Chúc bạn thành công với việc kiếm tiền từ ứng dụng!

Để khai thác nhiều hơn từ Adapty, bạn có thể khám phá các chủ đề sau:

  • Kiểm thử: Đảm bảo rằng mọi thứ hoạt động như mong đợi
  • Tích hợp: Tích hợp với các dịch vụ attribution marketing và phân tích chỉ bằng một dòng code
  • Đặt thuộc tính hồ sơ tùy chỉnh: Thêm các thuộc tính tùy chỉnh vào hồ sơ người dùng và tạo phân khúc, để bạn có thể chạy A/B test hoặc hiển thị các paywall khác nhau cho những người dùng khác nhau