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

Xác định ngưá»i dùng trong React Native SDK

Adapty tạo má»™t internal profile ID 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 mục Profiles và sá»­ dụng nó trong server-side API, vốn 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ó làm tham số customerUserId vào phương thức .activate():

adapty.activate("PUBLIC_SDK_KEY", {
    customerUserId: "YOUR_USER_ID"
});

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 trong 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(). Các trưá»ng hợp phổ biến nhất khi 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 ngưá»i dùng đã xác thá»±c.

try {
    await adapty.identify("YOUR_USER_ID");
    // successfully identified
} catch (error) {
    // handle the error
}

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, máy chá»§ Adapty đã có thông tin vá» ngưá»i dùng đó. Trong các 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 dữ liệu 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 cần gá»­i lại dữ liệu đó cho ngưá»i dùng đã được xác định.

Ngoài ra, bạn cÅ©ng cần gá»i lại tất 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 cứ lúc nào bằng cách gá»i phương thức .logout():

try {
    await adapty.logout();
    // successful logout
} catch (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)

appAccountToken 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 mình.
StoreKit gắn token này vào má»—i giao dịch, giúp backend cá»§a bạn có thể khá»›p dữ liệu App Store vá»›i ngưá»i dùng.

Hãy sá»­ dụng má»™t 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 lần mua và thông báo App Store luôn đượ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 appAccountToken cùng vá»›i customerUserId. Nếu chỉ truyá»n token mà không có customerUserId, nó sẽ không được đưa vào giao dịch.

// During configuration:
adapty.activate("PUBLIC_SDK_KEY", {
    customerUserId: "YOUR_USER_ID",
    ios: { appAccountToken: "YOUR_APP_ACCOUNT_TOKEN" },
});

// Or when identifying users
try {
    await adapty.identify("YOUR_USER_ID", {
        ios: {appAccountToken: 'YOUR_APP_ACCOUNT_TOKEN'}
    });
    // successfully identified
} catch (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 cho 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 ẩn danh, Ä‘iá»u này đặc biệt quan trá»ng để 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 phải tuân thá»§ các quy định vá» quyá»n riêng tư cụ thể. Các obfuscated ID cho phép Google Play theo dõi giao dịch mua mà không làm lá»™ định danh ngưá»i dùng thá»±c.

// During configuration:
adapty.activate("PUBLIC_SDK_KEY", {
    customerUserId: "YOUR_USER_ID",
    android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' }
});

// Or when identifying users
try {
    await adapty.identify("YOUR_USER_ID", {
        android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' }
    });
    // successfully identified
} catch (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.

ÿÿÿÿ