ÿÿ Xác định ngưá»i dùng trong Adapty | Tài liệu Adapty

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

Adapty tạo má»™t ID hồ sÆ¡ ná»™i bá»™ cho má»—i ngưá»i dùng. Tuy nhiên, nếu bạn có hệ thống xác thá»±c riêng, bạn nên đặt Customer User ID cá»§a mình. Bạn có thể tìm ngưá»i dùng theo Customer User ID trong phần Profiles và sá»­ dụng nó trong server-side API, thông tin này sẽ được gá»­i đến tất cả các tích hợp.

Äặt customer user ID khi cấu hình

Nếu bạn có user ID trong quá trình cấu hình, chỉ cần truyá»n nó vào tham số customerUserId cá»§a phương thức .activate():


Adapty.activate(
    AdaptyConfig.Builder("PUBLIC_SDK_KEY")
        .withCustomerUserId("YOUR_USER_ID")
        .build()
).onSuccess {
    // successful activation
}.onError { error ->
    // handle the error
    }
}

Muốn xem ví dụ thá»±c tế vá» cách tích hợp Adapty SDK vào ứng dụng di động? Hãy xem ứng dụng mẫu cá»§a chúng tôi, nÆ¡i minh há»a toàn bá»™ quá trình thiết lập, bao gồm hiển thị paywall, thá»±c hiện mua hàng và các chức năng cÆ¡ bản khác.

Äặt customer user ID sau khi cấu hình

Nếu bạn chưa có user ID khi cấu hình SDK, bạn có thể đặt nó sau bất kỳ lúc nào bằng phương thức .identify(). Trưá»ng hợp phổ biến nhất khi sá»­ dụng phương thức này là sau khi đăng ký hoặc đăng nhập, khi ngưá»i dùng chuyển từ trạng thái ẩn danh sang đã xác thá»±c.


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

Các tham số yêu cầu:

  • Customer User ID (bắt buá»™c): chuá»—i định danh ngưá»i dùng.

Gá»­i lại dữ liệu ngưá»i dùng quan trá»ng

Trong má»™t số trưá»ng hợp, chẳng hạn khi ngưá»i dùng đăng nhập lại vào tài khoản cá»§a há», máy chá»§ Adapty đã có thông tin vá» ngưá»i dùng đó. Trong những tình huống này, Adapty SDK sẽ tá»± động chuyển sang làm việc vá»›i ngưá»i dùng má»›i. Nếu bạn đã truyá»n bất kỳ dữ liệu nào cho ngưá»i dùng ẩn danh, chẳng hạn như thuá»™c tính tùy chỉnh hoặc attribution từ các mạng bên thứ ba, bạn nên gá»­i lại dữ liệu đó cho ngưá»i dùng đã được xác định.

Ngoài ra, hãy lưu ý rằng bạn nên yêu cầu lại tất cả các paywall và sản phẩm sau khi xác định ngưá»i dùng, vì dữ liệu cá»§a ngưá»i dùng má»›i có thể khác.

Äăng xuất và đăng nhập

Bạn có thể đăng xuất ngưá»i dùng bất kỳ lúc nào bằng cách gá»i phương thức .logout():


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

Sau đó, bạn có thể đăng nhập ngưá»i dùng bằng phương thức .identify().

Gán appAccountToken (iOS)

iosAppAccountToken là má»™t UUID cho phép bạn liên kết các giao dịch App Store vá»›i danh tính ngưá»i dùng ná»™i bá»™ cá»§a bạn. StoreKit gắn token này vá»›i má»i giao dịch, để backend cá»§a bạn có thể khá»›p dữ liệu App Store vá»›i ngưá»i dùng cá»§a bạn.

Hãy sá»­ dụng UUID ổn định được tạo cho má»—i ngưá»i dùng và tái sá»­ dụng nó cho cùng má»™t tài khoản trên nhiá»u thiết bị. Äiá»u này đảm bảo rằng các giao dịch mua và thông báo App Store được liên kết chính xác.

Bạn có thể đặt token theo hai cách – trong quá trình kích hoạt SDK hoặc khi xác định ngưá»i dùng.

Bạn phải luôn truyá»n iosAppAccountToken cùng vá»›i customerUserId. Nếu chỉ truyá»n token, nó sẽ không được đưa vào giao dịch.


// During configuration:
Adapty.activate(
    AdaptyConfig.Builder("PUBLIC_SDK_KEY")
        .withCustomerUserId(
            id = "YOUR_USER_ID",
            iosAppAccountToken = "YOUR_IOS_APP_ACCOUNT_TOKEN"
        )
        .build()
).onSuccess {
    // successful activation
}.onError { error ->
    // handle the error
}

// Or when identifying users
Adapty.identify(
    customerUserId = "YOUR_USER_ID",
    iosAppAccountToken = "YOUR_IOS_APP_ACCOUNT_TOKEN"
).onSuccess {
    // successful identify
}.onError { error ->
    // handle the error
}

Äặt obfuscated account ID (Android)

Google Play yêu cầu obfuscated account ID cho má»™t số trưá»ng hợp sá»­ dụng nhất định nhằm tăng cưá»ng quyá»n riêng tư và bảo mật ngưá»i dùng. Các ID này giúp Google Play xác định giao dịch mua trong khi vẫn giữ thông tin ngưá»i dùng ở dạng ẩn danh, Ä‘iá»u này đặc biệt quan trá»ng cho việc ngăn chặn gian lận và phân tích.

Bạn có thể cần đặt các ID này nếu ứng dụng cá»§a bạn xá»­ lý dữ liệu ngưá»i dùng nhạy cảm hoặc nếu bạn cần tuân thá»§ các quy định vá» quyá»n riêng tư cụ thể. Các ID ẩn danh cho phép Google Play theo dõi giao dịch mua mà không tiết lá»™ định danh ngưá»i dùng thá»±c.

Bạn phải luôn truyá»n androidObfuscatedAccountId cùng vá»›i customerUserId. Nếu chỉ truyá»n obfuscated account ID, nó sẽ không được đưa vào giao dịch.


// During configuration:
Adapty.activate(
    AdaptyConfig.Builder("PUBLIC_SDK_KEY")
        .withCustomerUserId(
            id = "YOUR_USER_ID",
            androidObfuscatedAccountId = "YOUR_OBFUSCATED_ACCOUNT_ID"
        )
        .build()
).onSuccess {
    // successful activation
}.onError { error ->
    // handle the error
}

// Or when identifying users
Adapty.identify(
    customerUserId = "YOUR_USER_ID",
    androidObfuscatedAccountId = "YOUR_OBFUSCATED_ACCOUNT_ID"
).onSuccess {
    // successful identify
}.onError { error ->
    // handle the error
}

Phát hiện ngưá»i dùng trên nhiá»u thiết bị

Khi SDK được kích hoạt, nó tá»± động Ä‘á»c các quyá»n hiện có cá»§a ngưá»i dùng từ StoreKit (iOS) hoặc Google Play Billing (Android) và đồng bá»™ chúng vá»›i backend cá»§a Adapty. Má»™t gói đăng ký Ä‘ang hoạt động sẽ xuất hiện trên hồ sÆ¡ ngưá»i dùng Adapty mà không cần ứng dụng gá»i restorePurchases.

Äiá»u không xảy ra tá»± động là nhận diện rằng má»™t hồ sÆ¡ ngưá»i dùng trên thiết bị má»›i thuá»™c vá» cùng má»™t ngưá»i dùng như hồ sÆ¡ trên thiết bị ban đầu. Adapty khá»›p các hồ sÆ¡ ngưá»i dùng theo Customer User ID, vì vậy tính liên tục danh tính phụ thuá»™c vào những gì bạn sá»­ dụng làm CUID.

Những gì Adapty có thể phát hiện trên nhiá»u thiết bị

Cài đặt của bạnAdapty phát hiện được gìBạn phải làm gì
Customer User ID = device_id (không đăng nhập ứng dụng)Thiết bị má»›i nhận được CUID khác và do đó có hồ sÆ¡ ngưá»i dùng khác. Gói đăng ký đồng bá»™ vá»›i hồ sÆ¡ ngưá»i dùng má»›i thông qua sá»± kiện Access level updated, nhưng subscription_started không kích hoạt — hồ sÆ¡ ngưá»i dùng má»›i được coi là ngưá»i kế thừa cá»§a giao dịch mua ban đầu. Các phân tích dá»±a trên subscription_started sẽ đếm thiếu những ngưá»i dùng quay lại.Sá»­ dụng ID tài khoản ổn định làm Customer User ID để ngưá»i dùng quay lại khá»›p vá»›i hồ sÆ¡ ngưá»i dùng hiện có trên các thiết bị.
Customer User ID = ID tài khoản ổn định (đăng nhập trên má»i thiết bị)SDK tá»± động đồng bá»™ gói đăng ký khi activate(), và identify() khá»›p hồ sÆ¡ ngưá»i dùng hiện có theo CUID.Không cần cài đặt thêm — cả danh tính lẫn gói đăng ký Ä‘á»u được xá»­ lý tá»± động.
Ngưá»i kế thừa Apple Family SharingThành viên gia đình nhận gói đăng ký thông qua sá»± kiện Access level updated — subscription_started không kích hoạt.Lắng nghe sá»± kiện Access level updated. Xem Apple Family Sharing để biết ma trận sá»± kiện đầy đủ.
Cùng tài khoản Apple/Google, ngưá»i dùng khác nhau trong ứng dụngHồ sÆ¡ ngưá»i dùng đầu tiên ghi lại giao dịch mua trở thành hồ sÆ¡ cha. Các hồ sÆ¡ ngưá»i dùng tiếp theo thấy gói đăng ký thông qua chuá»—i kế thừa, vá»›i má»™t sá»± kiện Access level updated.Yêu cầu đăng nhập, sau đó chá»n chế độ chia sẻ phù hợp vá»›i mô hình cá»§a bạn.

Khôi phục giao dịch mua trên thiết bị mới

Hiển thị nút “Khôi phục giao dịch mua†do ngưá»i dùng khởi tạo trên paywall cá»§a bạn. Apple App Review (hướng dẫn 3.1.1) yêu cầu có nút này, và nó đóng vai trò dá»± phòng khi quá trình đồng bá»™ tá»± động bá» sót má»™t trưá»ng hợp đặc biệt. Nút này nên gá»i restorePurchases trên SDK cá»§a bạn.

Không cần gá»i restorePurchases theo chương trình khi khởi chạy lần đầu trong Ä‘iá»u kiện sá»­ dụng bình thưá»ng — SDK đã thá»±c hiện tương đương khi activate(). Chỉ dùng các lệnh gá»i theo chương trình để buá»™c kiểm tra biên lai má»›i, ví dụ khi debug trưá»ng hợp mất quyá»n truy cập sau khi activate() đã hoàn thành.

ÿÿÿÿ